Ich habe ein Programm, das Allel-Sequenzen analysiert. Ich versuche, einen Code zu schreiben, der bestimmt, ob das Allel vollständig ist oder nicht. Dazu muss ich die Anzahl der Brüche in der Referenzsequenz zählen. Eine Pause wird durch eine Kette von '-' angezeigt. Wenn es mehr als eine Pause gibt, möchte ich, dass das Programm "Unvollständiges Allel" sagt.Finden Sie die Anzahl der Brüche in einer Sequenz
Wie kann ich herausfinden, wie die Anzahl der Brüche in der Sequenz gezählt wird? Hier
ist ein Beispiel für eine „gebrochene“ Sequenz:
>DQB1*04:02:01
------------------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
--ATGTCTTGGAAGAAGGCTTTGCGGAT-------CCCTGGAGGCCTTCGGGTAGCAACT
GTGACCTT----GATGCTGGCGATGCTGAGCACCCCGGTGGCTGAGGGCAGAGACTCTCC
CGAGGATTTCGTGTTCCAGTTTAAGGGCATGTGCTACTTCACCAACGGGACCGAGCGCGT
GCGGGGTGTGACCAGATACATCTATAACCGAGAGGAGTACGCGCGCTTCGACAGCGACGT
GGGGGTGTATCGGGCGGTGACGCCGCTGGGGCGGCTTGACGCCGAGTACTGGAATAGCCA
GAAGGACATCCTGGAGGAGGACCGGGCGTCGGTGGACACCGTATGCAGACACAACTACCA
GTTGGAGCTCCGCACGACCTTGCAGCGGCGA-----------------------------
-----------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
---GTGGAGCCCACAGTGACCATCTCCCCATCCAGGACAGAGGCCCTCAACCACCACAAC
CTGCTGGTCTGCTCAGTGACAGATTTCTATCCAGCCCAGATCAAAGTCCGGTGGTTTCGG
AATGACCAGGAGGAGACAACTGGCGTTGTGTCCACCCCCCTTATTAGGAACGGTGACTGG
ACCTTCCAGATCCTGGTGATGCTGGAAATGACTCCCCAGCGTGGAGACGTCTACACCTGC
CACGTGGAGCACCCCAGCCTCCAGAACCCCATCATCGTGGAGTGGCGGGCTCAGTCTGAA
TCTGCCCAGAGCAAGATGCTGAGTGG----CATTGGAGGCTTCGTGCTGGGGCTGATCTT
CCTCGGGCTGGGCCTTATTATC--------------CATCACAGGAGTCAGAAAGGGCTC
CTGCACTGA---------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
------------------------------------------------------------
Der Code, den ich bisher haben sich wie folgt:
idx=[]
for m in range(len(sequence)):
for n in re.finditer('-',sequence[0]):
idx.append(n.start())
counter=0
min_val=[]
for n in range(len(idx)):
if counter==idx[n]:
counter=counter+1
elif counter !=0:
min_val.append(idx[n-1])
counter=0
Meine Argumentation für den obigen Code wurde, wenn ich finden konnte, die Startpositionen des '-' dann kann ich sehen, wie oft sie innerhalb der Sequenz erscheinen und ob sie die Sequenz überhaupt unterbrechen. Ich weiß jedoch, dass es in dem obigen Code einige Fehler gibt.
Was definiert "eine Sequenz"? Wie viele Sequenzen und wie viele Pausen sind in Ihrem Beispiel? –
Sie verwenden nicht 'm' in Ihrer Schleife, sondern testen nur' sequence [0] 'für' m' Iterationen; meinst du "sequenz [m]"? Außerdem nehme ich an: idx [n ['sollte' idx [n] 'sein? –
@ Two-BitAlchemist Das obige Beispiel ist eine Sequenz und es gibt fünf Unterbrechungen. Der Teil meines Programms, den ich nicht gezeigt habe, liest Dateien und ordnet sie einem Sequenz-Array zu. Ich suche nur nach Brüchen innerhalb der ersten Sequenz, die die Referenzsequenz ist oder "> DQB1 * 04: 02: 01". Da ich nur die erste Sequenz betrachte, teste ich deshalb die Sequenz [0] für m Iterationen. –