0
我是python的新手,試圖通過所有與我想要但尚未得到答案相關的問題。我想在具有特定fasta ID的文件中提取連續fasta序列的塊,並將這些序列寫入單獨的文件中。文件內容是異構的(在某些地方,fasta ID後面沒有序列)。輸入文件是爲這樣:提取具有特定fasta ID的fasta序列塊
>ENS00000004062_species1
>ENS00000004062_species2
>ENS00000004062_species3
ATGGGCTTTTCCACAGAGCTTGCAT
>ENS00000004062_species4
ATGGGCTTTTCCACAGAGCTTGCAAC
>ENS00000006504_species2
CTCTTTGACCCTCCCCATCAGGTTCA
>ENS00000006504_species3
CTCTGACCCTCCCCACCAGGTTCAGGG
CTGGGAGGTGCACTCCAGGGATTC
>ENS00000006504_species4
....加上許多其他序列 和不同IDS但物種和FASTA ID的相同 圖案。例如,如果我想要使用ENS00000006504提取序列,我希望將它們的整個fasta描述與隨後的序列一起使用,但是當它識別出新的fasta ID時,它應該停止。我有這個代碼,但它沒有做任何有意義的事情。它識別包含標誌ID的第一行,但之後會打印所有內容。
flag = 'ENSBTAT00000006504'
with open(file_name) as file:
for line in file:
if flag in line:
lines = file.readlines()
print(lines)
我希望我已經說清楚了,但我打開更多的澄清,如果必要的。謝謝。
我總是推薦閱讀FASTA文件的第三方Biopython庫 - 特別是它的SeqIO模塊:http://biopython.org/wiki/SeqIO。如果你自己做,基本上你想要逐行瀏覽文件,用一個布爾值跟蹤你是否在一個有趣的記錄。積累序列,直到您找到新的描述行,然後重新測試新描述是否有趣。但是,真的,只要使用該庫,除非你的環境不允許你安裝它。 –
另外,Biopython有很棒的教程和文檔 – Stedy
謝謝你會做後續。 – user3014974