2015-01-30 4 views
7

Mein Programm so weit ist:Vergleich von DNA-Sequenzen in Python 3

seq_a = "TGGAGGCAATGGCGGCCAGCA" 
seq_b = "GACTCCTCCTCCTCCTGCTCA"  
len_a = len(seq_a)  
len_b = len(seq_b)  
print("Length of Sequence A: " + str(len_a))  
print()  
print("Length of Sequence B: " + str(len_b)) 
print() 

def sequence_compare(seq_a, seq_b): 
     len1 = len(seq_a) 
     len2 = len(seq_b) 
     mismatches = [] 
     for pos in range (0, min(len1, len2)) : 
       if seq_a[pos] != seq_b[pos]: 
        mismatches.append('|') 
       else: 
        mismatches.append(' ') 
     print (seq_a) 
     print (mismatches) 
     print (seq_b) 
sequence_compare(seq_a,seq_b) 

Ich erwarte einen Ausgang entlang der Linien von:

TGGAGGCAATGGCGGCCAGCA 
||||||||| ||||||||| 
GACTCCTCCTCCTCCTGCTCA 

Aber anstatt die Ausgabe lautet:

TGGAGGCAATGGCGGCCAGCA 
['|', '|', '|', '|', '|', '|', '|', '|', '|', ' ', '|', '|', '|', '|', '|', '|', '|', '|', '|', ' ', ' '] 
GACTCCTCCTCCTCCTGCTCA 

Antwort

6

Sie sind ziemlich nah ..

print ("".join(mismatches)) 

den Trick und je nach Bedarf drucken, die

||||||||| ||||||||| 
+0

Dank Mann ist, der Super gearbeitet! Nicht sicher warum, aber immer noch Python 3 lernen – luanswan2002

+2

Alles, was es tut, ist sagen, "Nehmen Sie die Liste der nicht übereinstimmenden Zeichen in der Reihenfolge und verbinden Sie sie zu einer einzigen Zeichenfolge, getrennt durch nichts." Wenn Sie '", ". Join (Mismatches) gemacht hätten, hätten Sie die gleiche Ausgabe mit Kommatrennung erhalten, anstatt sie zu zerquetschen. –