2015-01-30 12 views
7

Il mio programma finora è:Confrontando sequenze di DNA 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) 

mi aspetto un'uscita lungo le linee di:

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

Ma invece l'output è:

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

risposta

6

Sei abbastanza vicino ..

print ("".join(mismatches)) 

farà il trucco e stampare come richiesto che è

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

Grazie uomo che ha lavorato super! Non sono sicuro del perché, tuttavia, stiamo ancora imparando Python 3 – luanswan2002

+2

Tutto ciò che fa è dire: "Prendi l'elenco dei caratteri non corrispondenti in ordine e unisciti a loro per essere una singola stringa, separata da nulla". Se avessi fatto "", "join (disadattamenti)" avresti ottenuto lo stesso risultato con la separazione delle virgole invece che schiacciati insieme. –