2つのファイルがあります。
ファイル1:次の例のようにフォーマットされた遺伝子配列を含むFASTAファイル:
>PITG_00002 | Phytophthora infestans T30-4 conserved hypothetical protein (426 nt)
ATGCATCGCTCGGGTTCCGCACGGAAAGCCCAAGGTCTGGGATTACGGGGTGGTGGTCGG
TTACACTTGGAATAACCTCGCAAATTCAGAATCTCTACAGGCTACGTTCGCGGATGGAAC
>PITG_00003 | Phytophthora infestans T30-4 protein kinase (297 nt)
ATGACGGCTGGGGTCGGTACGCCCTACTGGATCGCACCGGAGATTCTTGAAGGCAAACGG
TACACTGAGCAAGCGGATATTTACTCGTTCGGAGTGGTTTTATCCGAGCTGGACACGTGC
AAGATGCCGTTCTCTGACGTCGTTACGGCAGAGGGAAAGAAACCCAAACCAGTTCAGATC
>PITG_00004 | Phytophthora infestans T30-4 protein kinase, putative (1969 nt)
ATGCGCGTGTCTGGTCTCCTTTCAATTCTTGCAGCCACTTTGACCACGGCCCAAGACTAC
ファイル2:遺伝子のアクセッションIDだけを含む単純なテキストファイル。そのようです。
PITG_00003
PITG_00005
PITG_00023
ファイル2のすべてのエントリはファイル1のどこかにありますが、ファイル1のすべてのエントリがファイル2にあるわけではありません。ファイル2にないすべてのエントリをファイル1から削除する必要があります。私を助けることができるモジュール、私はただ何を知らない。たとえば、もともとSeqIO.parse
この関数を使用してFASTAファイルからアクセッションだけを抽出できると思っていましたが、これでは実際にはアクセッション番号の2つのファイルが表示されます。他のファイルにあるアクセッションを選択的に抽出する方法がわかりません。たぶん、ファイル2のすべてのエントリを辞書に読み込んでから、そのエントリをファイル1の一致するエントリに関連付けて、SeqIO.parse
シーケンス全体を抽出するために使用するようなものです...しかし、私は本当に知りません....誰かが与えることができる助けはありません私は非常に感謝しています!