Angenommen, die folgende Bedgraph-Datei wird gelesen und einige Verarbeitungen werden nur in dem angegebenen Bereich ausgeführt.
example.bedgraph
chr1	10084	10104	2
chr1	10104	10124	4
chr1	10124	10164	6
chr1	10164	10184	11
chr1	10184	10204	14
chr1	10204	10224	16
chr1	10224	10244	14
chr1	10244	10264	15
chr1	10264	10284	14
chr1	10284	10304	17
Um beispielsweise den Durchschnittswert in dem Bereich zu berechnen, wird das folgende Skript angewendet.
averageBedgraph.py (korrigierte Version)
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
"""
Berechnen Sie den Durchschnittswert des angegebenen Bereichs aus der Bedgraph-Datei.
"""
__version__ = "1.00"
__date__ = "7 Jun 2017"
import sys
def averageBedgraph(filename, chromosome, start, end):
    """
    @function   averageBedgraph();
Berechnen Sie den Durchschnittswert des angegebenen Bereichs aus der Bedgraph-Datei.
    @param  {string} filename :Geben Sie den Dateinamen ein
    @param  {string} chromosome :Chromosomenzahl
    @param  {int}    start :Startposition
    @param  {int}    end :Endposition
    """
    total = 0
    with open(filename) as lines:
        for line in lines:
            c, s, e, v = line.split()
            if c != chromosome:
                continue
            s, e, v = int(s), int(e), int(v)
            if s <= start and end <= e:
                total += (end - start) * v
            elif s <= start < e:
                total += (e - start) * v
            elif start < s and e <= end:
                total += (e - s) * v
            elif s < end <= e:
                total += (end - s) * v
            elif end < s:
                break
    print('average : %s' % (total / (end - start)))
    print('done')
if __name__ == '__main__':
    argvs = sys.argv
    argc = len(argvs)
    if (argc != 5):   # Checking input
        print("USAGE : python3 averageBedgraph.py <INPUT_FILE> <CHROMOSOME> <START> <END>")
        quit()
    averageBedgraph(str(argvs[1]),str(argvs[2]),int(argvs[3]),int(argvs[4]))
quit()
Ausführungsbeispiel
Berechnen Sie den Durchschnittswert des angegebenen Bereichs der Bettdatei
$ python3 averageBedgraph.py example.bedgraph chr1 10150 10250
Standardausgabe
average : 12.74
done
Es gibt nichts Besonderes zu erwähnen, aber bitte verwenden Sie es, wenn Sie Probleme beim Zusammenbau haben.
Wenn Sie ein Werkzeug haben, das sich gut verarbeiten lässt, wie z. B. Bedgraph, würde ich es begrüßen, wenn Sie mich unterrichten könnten. Es macht keinen Sinn, die Räder neu zu erfinden ... Vielen Dank.
das ist alles. Vielen Dank.
2017/06/09 Nachtrag Der Code, der veröffentlicht wurde, wurde korrigiert. Wir möchten shiracamus unseren tiefen Dank für die Korrektur aussprechen.