예제 #1
0
def _buildParameterSet(parameterSetName, nameValuePairs):
    chem, modelName = parameterSetName.split(".")[:2]
    if    modelName == "AllQVsModel":    model = AllQVsModel
    elif  modelName == "NoMergeQVModel": model = NoMergeQVModel
    elif  modelName == "NoQVsModel":     model = NoQVsModel
    elif  modelName == "AllQVsMergingByChannelModel": model = AllQVsMergingByChannelModel
    elif  modelName == "NoQVsMergingByChannelModel":  model = NoQVsMergingByChannelModel
    else:
        logging.error("Found parameter set for unrecognized model: %s" % modelName)
        return None

    if map(fst, nameValuePairs) != model.parameterNames:
        die("Malformed parameter set file")

    qvModelParams = cc.QvModelParams(chem, modelName,
        *[ float(snd(pair)) for pair in nameValuePairs ])

    #
    # Dirty hack for --diploid support, diploid model is scaled
    # differently.  Needs further work.
    #
    if parameterSetName == "unknown.NoQVsModel":
        bandingOptions     = cc.BandingOptions(4, 24)
        fastScoreThreshold = -50
    else:
        bandingOptions     = cc.BandingOptions(4, 6)
        fastScoreThreshold = -12.5

    quiverConfig = cc.QuiverConfig(qvModelParams,
                                   cc.ALL_MOVES,
                                   bandingOptions,
                                   fastScoreThreshold)
    return ParameterSet(parameterSetName, model, chem, quiverConfig)
예제 #2
0
파일: model.py 프로젝트: lpp1985/lpp_Script
def _buildParameterSet(parameterSetName, nameValuePairs):
    chem, modelName = parameterSetName.split(".")[:2]
    if modelName == "AllQVsModel": model = AllQVsModel
    elif modelName == "NoMergeQVModel": model = NoMergeQVModel
    elif modelName == "NoQVsModel": model = NoQVsModel
    elif modelName == "AllQVsMergingByChannelModel":
        model = AllQVsMergingByChannelModel
    elif modelName == "NoQVsMergingByChannelModel":
        model = NoQVsMergingByChannelModel
    else:
        logging.error("Found parameter set for unrecognized model: %s" %
                      modelName)
        return None

    if map(fst, nameValuePairs) != model.parameterNames:
        die("Malformed parameter set file")

    qvModelParams = cc.QvModelParams(
        chem, modelName, *[float(snd(pair)) for pair in nameValuePairs])

    #
    # Dirty hack for --diploid support, diploid model is scaled
    # differently.  Needs further work.
    #
    if parameterSetName == "unknown.NoQVsModel":
        bandingOptions = cc.BandingOptions(4, 24)
        fastScoreThreshold = -50
    else:
        bandingOptions = cc.BandingOptions(4, 6)
        fastScoreThreshold = -12.5

    quiverConfig = cc.QuiverConfig(qvModelParams, cc.ALL_MOVES, bandingOptions,
                                   fastScoreThreshold)
    return ParameterSet(parameterSetName, model, chem, quiverConfig)