我想使用以下腳本從大的fasta文件中提取特定的fasta序列,但輸出爲空。從大的fasta文件中提取特定的fasta序列
transcripts.txt
文件包含我想從assembly.fasta
到selected_transcripts.fasta
導出的列表轉錄本ID(ID和序列)。 例如:
- transcripts.txt:
Transcript_00004|5601 Transcript_00005|5352
- assembly.fasta:
>Transcript_00004|5601 GATCTGGCGCTGAGCTGGGTGCTGATCGACCCGGCGTCCGGCCGCTCCGTGAACGCCTCGAGTCGGCGCCCGGTGTGCGTTGACCGGAGATCGCGATCTGGGGAGACCGTCGTGCGGTT >Transcript_00004|5360 CGATCTGGCGCTGAGCTGGGTGCTGATCGACCCGGCGTCCGGCCGCTCCGTGAACGCCTCGAGTCGGCGCCCGGTGTGCGTTGACCGGAGATCGCGATCTGGGGAGACCGTCGTGCGGTT
的ID由>
符號開頭:>Transcripts_00004|5601
。
我要讀的assembly.fasta
文件,如果在assembly.fasta
成績單ID是transcripts.txt
相同的寫的,我必須寫這份成績單ID及其selected_transcripts.fasta
序列。所以,在上面的例子中,我只需要寫第一個成績單。
有什麼建議嗎? 謝謝。
from Bio import SeqIO
my_list = [line.split(',') for line in open("/home/universita/transcripts.txt")]
fin = open('/home/universita/assembly.fasta', 'r')
fout = open('/home/universita/selected_transcripts.fasta', 'w')
for record in SeqIO.parse(fin,'fasta'):
for item in my_list:
if item == record.id:
fout.write(">" + record.id + "\n")
fout.write(record.seq + "\n")
fin.close()
fout.close()
請參閱https://www.biostars.org/p/68718/ – Pierre
您可以[編輯]您的問題,幷包括一些'transcripts.txt'以及'assembly.fasta'的一部分,所以我們有一些數據可以使用? – MattDMo
你在每個冒號後分開你的成績單行,但它是空格分開的。這是故意的嗎? –