python中txt文件的过滤

2024-10-03 23:23:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有太多这样的台词:

>ENSG00000100206|ENST00000216024|DMC1|2371|38568257;38570043|38568289;38570286
CTCAGACGTCGGGCCGACGCAAGGCCACGCGCGCGAACACACAGGTGCGGCCCCGGGCCA
CACGCACACCGTACAC
>ENSG00000001630|ENST00000003100|CYP51A1|3210|92134365|92134530
TATATCACAGTTTCTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGAGTTTTGCTCTTGTT
GCCCAGGCTGGAGTACAGTGACGCAATCTCGGCTCACTGCAACCTTTGCCTCCCAGGTTC
>ENSG00000100206|ENST00000216024|DMC1|2371|38568257;38570043|38568289;38570286
TTAACTATAATCCCACTGCCTATTTTTTTATTTCTAAAAATATCATAAAAAGACACAAAA

第一行(从>开始)是identifier,其他行是sequence,而且每个identifier都有自己的序列。在上述示例中,ENSG00000100206是名称,ENST00000216024是异构体。在我的文件中,有一些标识符行具有相同的名称,但其他所有内容都不同。 我想得到最长的序列为每个名字,使一个新的文件。这意味着每个名字只有一次重复(但顺序最长)。 对于上述示例,结果如下所示:

>ENSG00000100206|ENST00000216024|DMC1|2371|38568257;38570043|38568289;38570286
CTCAGACGTCGGGCCGACGCAAGGCCACGCGCGCGAACACACAGGTGCGGCCCCGGGCCA
CACGCACACCGTACAC
>ENSG00000001630|ENST00000003100|CYP51A1|3210|92134365|92134530
TATATCACAGTTTCTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGAGTTTTGCTCTTGTT
GCCCAGGCTGGAGTACAGTGACGCAATCTCGGCTCACTGCAACCTTTGCCTCCCAGGTTC

你们知道用python怎么做吗?你知道吗


Tags: 文件名称示例序列identifierensg00000100206dmc1enst00000003100
1条回答
网友
1楼 · 发布于 2024-10-03 23:23:52

您可以从使用Biopython获得适当的FASTA格式解析器开始:http://biopython.org/wiki/SeqIO

然后遍历这些记录,并对它们执行所需的操作。这不仅可以节省您编写解析器的时间,还可以防止您完全出错。你知道吗

这一页的例子:

from Bio import SeqIO
for record in SeqIO.parse("example.fasta", "fasta"):
    print(record.id)

不要打印,而是创建一个dict{record.id: record.length},只有当长度较长时才更新它。你知道吗

相关问题 更多 >