使用Biopython(Python)从FASTA文件中提取序列

好的,我需要使用python(biopython,http://biopython.org/DIST/docs/tutorial/Tutorial.html)从FASTA文件中提取序列的一部分

我需要从每个序列中获取前10个碱基并将它们放在一个文件中,保留FASTA格式的序列信息.最糟糕的是,如果没有办法保留序列信息,我可以使用基数.所以这是一个例子:

>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG

>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG

>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG

我需要一些方法来获得前10个基地(然后我计划在最后10个基地再做一次).该教程网站非常详尽,但我是新手,因为它没有涉及到这一点,我甚至不确定它是否可能.谢谢你提供的所有帮助.

解决方法:

Biopython非常适合这类任务. Seq-Object存储序列和有关它的信息.读取fasta文件格式是直截了当的.您可以像简单列表一样访问序列,因此也可以直接访问某些位置:

from Bio import SeqIO

with open("outfile.txt","w") as f:
        for seq_record in SeqIO.parse("infile.fasta", "fasta"):
                f.write(str(seq_record.id) + "\n")
                f.write(str(seq_record.seq[:10]) + "\n")  #first 10 base positions
                f.write(str(seq_record.seq[-10:]) + "\n") #last 10 base positions
上一篇:python – 将列表中的每个项目添加到FASTA文件中特定行的末尾


下一篇:fasta序列操作神器——seqkit