コード例 #1
0
ファイル: generate_heatmap.py プロジェクト: cschu/mu-rat
def main():
    scaffoldData, homHetRatios = readScaffoldData(sys.argv[1], delimiter=",")

    # print each row with data in scaffoldData
    print "\t".join(["Marker", "Chr", "Start", "End", "Pheno", "Color"])
    for chrBin, row in readMutationData(sys.argv[2], scaffoldData, delimiter=","):
        out = [row[0], chrBin[0], chrBin[1], chrBin[1], row[7], 2 if row[7] == "het" else 1]
        print "\t".join(map(str, out))
    pass
コード例 #2
0
ファイル: generate_heatmap.py プロジェクト: cschu/mu-rat
def main():
    scaffoldData, homHetRatios = readScaffoldData(sys.argv[1], delimiter=',')

    # print each row with data in scaffoldData
    print '\t'.join(['Marker', 'Chr', 'Start', 'End', 'Pheno', 'Color'])
    for chrBin, row in readMutationData(sys.argv[2],
                                        scaffoldData,
                                        delimiter=','):
        out = [
            row[0], chrBin[0], chrBin[1], chrBin[1], row[7],
            2 if row[7] == 'het' else 1
        ]
        print '\t'.join(map(str, out))
    pass
コード例 #3
0
def processMutationData(fn, scaffoldData, homHetRatios, delimiter=" "):
    """
    Counts the number of hom/het mutations per bin, and
    calculates het/hom ratio. The hom/het counts are stored in another dictonary per bin
    such that we can directly count the number of occurrences of "het" and "hom".
    """
    for chrBin, row in readMutationData(fn, scaffoldData, delimiter=delimiter):
        homHetRatios[chrBin][row[7]] += 1

    # Finished reading data, now calculate ratios.
    for chrBin in homHetRatios:
        if homHetRatios[chrBin]["hom"] > 0:
            homHetRatios[chrBin]["ratio"] = homHetRatios[chrBin]["het"] / homHetRatios[chrBin]["hom"]
        else:
            # if hom-count is zero, no ratio can be calculated
            homHetRatios[chrBin]["ratio"] = "NA"
        # convert dictionaries to lists [hom, het, ratio]
        homHetRatios[chrBin] = [homHetRatios[chrBin]["hom"], homHetRatios[chrBin]["het"], homHetRatios[chrBin]["ratio"]]

    return homHetRatios
コード例 #4
0
def processMutationData(fn, scaffoldData, homHetRatios, delimiter=' '):
    """
    Counts the number of hom/het mutations per bin, and
    calculates het/hom ratio. The hom/het counts are stored in another dictonary per bin
    such that we can directly count the number of occurrences of "het" and "hom".
    """
    for chrBin, row in readMutationData(fn, scaffoldData, delimiter=delimiter):
        homHetRatios[chrBin][row[7]] += 1

    # Finished reading data, now calculate ratios.
    for chrBin in homHetRatios:
        if homHetRatios[chrBin]['hom'] > 0:
            homHetRatios[chrBin]['ratio'] = homHetRatios[chrBin][
                'het'] / homHetRatios[chrBin]['hom']
        else:
            # if hom-count is zero, no ratio can be calculated
            homHetRatios[chrBin]['ratio'] = 'NA'
        # convert dictionaries to lists [hom, het, ratio]
        homHetRatios[chrBin] = [
            homHetRatios[chrBin]['hom'], homHetRatios[chrBin]['het'],
            homHetRatios[chrBin]['ratio']
        ]

    return homHetRatios