Ich versuche, die Dinuc Anzahl und Frequenzen aus einer Sequenz in einer Textdatei zu finden, aber mein Code gibt nur einzelne Nukleotid zählt.Dinukleotid Anzahl und Häufigkeit
e = "ecoli.txt"
ecnt = {}
with open(e) as seq:
for line in seq:
for word in line.split():
for i in range(len(seqr)):
dinuc = (seqr[i] + seqr[i:i+2])
for dinuc in seqr:
if dinuc in ecnt:
ecnt[dinuc] += 1
else:
ecnt[dinuc] = 1
for x,y in ecnt.items():
print(x, y)
Probeneingabe: "AAATTTCGTCGTTGCCC"
Beispielausgabe: AA: 2 TT: 3 TC: 2 CG: 2 GT: 2 GC: 1 CC: 2
Im Moment bekomme ich nur einzelne Nukleotide für meine Ausgabe:
C 83550600 A 60342100 T 88.192.300 G 92834000
Für die Nukleotide, die also „AAA“ zu wiederholen, hat die Zählung alle möglichen Kombinationen von aufeinander folgenden ‚AA‘ zurückzukehren, so sollte der Ausgang 2 eher als 1. Es spielt keine Rolle, was die Bestellung Dinukleotide sind aufgeführt, ich brauche nur alle Kombinationen und für den Code die korrekte Anzahl für die wiederholten Nukleotide zurückzugeben. Ich fragte meine TA und sie sagte, dass mein einziges Problem darin bestand, meine "for" -Schleife dazu zu bringen, die Dinukleotide zu meinem Wörterbuch hinzuzufügen, und ich denke, dass meine Reichweite falsch ist oder nicht. Die Datei ist sehr groß, daher ist die Sequenz in Zeilen aufgeteilt.
Vielen Dank im Voraus !!!
zeigen einen kurzen Abschnitt der Probeneingabe und den entsprechenden gewünschten Ausgang. – John1024
was ist 'seqr'? Es ist nicht in dem Snippet definiert, das Sie gepostet haben –
Ihr Code ist auf viele Arten kaputt. Was ist 'Seqr'? Warum teilst du hier die Zeile durch Leerzeichen? 'Für word in line.split():', soll es nicht eine DNA-Sequenz oder etwas sein? Sie entfernen das Newline-Symbol nicht. –