如果基因名稱存儲在文本文件中,使用biopython如何從fasta文件中剪切我感興趣的基因?python - 從fasta文件中選擇性地選擇核苷酸序列?
#extract genes
f1 = open('ortholog1.txt','r')
f2 = open('all.fasta','r')
f3 = open('ortholog1.fasta','w')
genes = [line.rstrip('\n') for line in f1.readlines()]
i=0
for seq_record in SeqIO.parse(f2, "fasta"):
if genes[i] == seq_record.id:
print genes[i]
f3.write('>'+genes[i])
i=i+1
if i==18:
break
f3.write('\n')
f3.write(str(seq_record.seq))
f3.write('\n')
f2.close()
f3.close()
我正在嘗試上面的代碼。但它有一些錯誤,不是通用的,因爲像ortholog1.txt
(其中包含基因名稱)還有5個更類似的文件。此外,每個文件中的基因數量也不盡相同(並非始終如此)。這裏all.fasta
是包含所有基因的文件。 ortholog1.fasta
必須包含剪切的核苷酸序列。
有什麼辦法進行排序,根據在ortholog1基因相同的順序輸出的fasta文件基因順序。文本? –
讓他們保持秩序的一種方法是將記錄讀入字典中,然後逐句通過orthologs。查看更新後的答案 – iayork