0
業餘Python編碼器試圖在這裏學習,所以我想問我的腳本怎麼回事。我真的不知道哪裏出了問題。 (考慮第24行或difference = "%s-%s [%d]" %(seq1[i], seq2[i], i)
)。序列比較功能沒有按預期工作
該函數用於載入序列,重命名它們(此位正在工作),然後將每個序列與參考序列(此處僅爲文件中的第一個序列)進行比較,如果序列中的某個字母不匹配參考打印的差異和位置。但是,你可以看到下面這不工作
下面是一個實物模型輸入文件 - http://pastebin.com/AH2zxdBn
import re
from Bio.Alphabet import generic_dna, generic_protein
from Bio import SeqIO
def compare_seqs(seq1, seq2):
similar = 0
diff = 0
diff_positions = []
for i in range(0, len(seq1)):
if (seq1[ i ] != seq2[ i ]):
difference = "%s-%s [%d]" %(seq1[i], seq2[i], i)
diff_positions.append(difference)
# else:
# similar += 1
return ",".join(diff_positions)
new_seq = []
reference_sequence = ""
reference_name = ""
outfile = open("test_out.csv", 'w')
for record in SeqIO.parse(open('test.fa', 'ru'), 'fasta', generic_protein):
record_id = re.sub(r'\d+_(\d+_\d\#\d+)_\d+', r'\1', record.id)
if (not reference_sequence):
reference_sequence = record.seq
reference_name = record_id
#continue
print "\t".join([reference_name, record_id, compare_seqs(reference_sequence, record.seq)])
這是我得到的輸出,這是不正確的,POS機454 7065_8#4其實= P
7065_8#1 7065_8#1
7065_8#1 7065_8#2
7065_8#1 7065_8#3
7065_8#1 7065_8#4 E-G [245]
7065_8#1 7065_8#5
感謝你們,經過了一番,它似乎是輸入文件而不是編碼的問題。 – user3234810 2014-09-18 17:46:37