次のようなヘッダーを持つ複数のシーケンスを含む fasta ファイルがあります。
>1016BSA34080.1
MTHSVRIITVTVNFLQHRFFIDYMSEIGLLDGEIEQMVSALQEQVHIVARARTLPEMKNLERDTHVIVKT
LKKQLTAFHSEVKKIADSTQRSRYEGKHQTYEAKVKDLEKELRTQIDPPPKSVSEKHMEDLMGEGGPDGS
GFKTTDQVLRAGIRIQNDA
>1038BSA81955.1
MQQQQARRRMEEPTAAAATASSTTSFAAQPLLSRSVAPQAASSPQASARLAESAGFRSAAVFGSAQAAVG
GRGRGGFGAPPGRGGFGAPPAAGFGAAPAFGAPPTLQAFSAAPAPGGFGAPPAPQGFGAPRAAGFGAPPA
PQAFSAVAPASSTAIPLDVTTYLGDTFGSAPTRGPP
ヘッダーの先頭にある 4 桁の数字は、シーケンスの一意の ID です。
4 桁の ID (1 行に 1 つの ID を持つテキスト ファイル) でシーケンスを抽出する Python スクリプトを作成するのを手伝ってくれませんか?
このスクリプトを変更してみました (私はこのウェブサイトで見つけました:別のファイルのエントリに基づいて FASTA ファイルからシーケンスを抽出します) 目的に合わせて (無駄に):
f2 = open('accessionids.txt','r')
f1 = open('fasta.txt','r')
f3 = open('fasta_parsed.txt','w')
AI_DICT = {}
for line in f2:
AI_DICT[line[:-1]] = 1
skip = 0
for line in f1:
if line[0] == '>':
_splitline = line.split('|')
accessorIDWithArrow = _splitline[0]
accessorID = accessorIDWithArrow[1:-1]
# print accessorID
if accessorID in AI_DICT:
f3.write(line)
skip = 0
else:
skip = 1
else:
if not skip:
f3.write(line)
f1.close()
f2.close()
f3.close()
私はPythonが初めてです。どんな助けでも大歓迎です! ありがとう -Divya