我有两个文件。
文件 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:一个简单的文本文件,仅包含基因的登录标识。像这样。
PITG_00003
PITG_00005
PITG_00023
文件 2 中的每个条目都在文件 1 中的某个位置,但并非文件 1 中的每个条目都在文件 2 中。我需要从文件 1 中删除不在文件 2 中的所有条目。我觉得 biopython 中必须有一些东西可以帮助我的模块,我只是不知道是什么。例如,我最初认为我可以使用该SeqIO.parse
函数从我的 FASTA 文件中仅提取入藏,但这实际上只是让我得到两个入藏号文件。我不知道如何有选择地提取另一个文件中的加入。也许就像将文件 2 中的所有条目读入字典,然后将该条目与其在文件 1 中的匹配条目相关联,并用于SeqIO.parse
提取整个序列......但我真的不知道......任何人都可以提供的帮助我非常感激!