使用Biopython(Python)从FASTA文件中提取序列
好的,所以我需要使用python(biopython,)从FASTA文件中提取序列的一部分 我需要从每个序列中获得前10个碱基,并将它们放在一个文件中,保留FASTA格式中的序列信息。最糟糕的是,如果没有办法保存序列信息,我可以使用碱基。下面是一个例子:使用Biopython(Python)从FASTA文件中提取序列,python,python-2.7,biopython,fasta,Python,Python 2.7,Biopython,Fasta,好的,所以我需要使用python(biopython,)从FASTA文件中提取序列的一部分 我需要从每个序列中获得前10个碱基,并将它们放在一个文件中,保留FASTA格式中的序列信息。最糟糕的是,如果没有办法保存序列信息,我可以使用碱基。下面是一个例子: >gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGA
>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对象基本上是一个数组,因此您可以指定其中的子部分,并将其传递到新的Seq对象中。假设您已将这些内容读入seqrecord(字典),然后使用以下代码只需指定开始-结束位置
SeqRecords[Seq][start:end].seq
这将为您提供SeqRecord的起始位置和结束位置之间的序列对象,它们是整数。从记忆中可以看出,开始/结束索引有一些有趣之处,但要想了解这一点,不妨尝试一下。您还应该能够指定:
SeqRecords[Seq][:end].seq
从SeqRecord的开头获取序列
为了完整性,请阅读以下文件:
inputSeqFile = open(filename, "rU")
SeqDict = SeqIO.to_dict(SeqIO.parse(inputSeqFile, "fasta"))
inputSeqFile.close()
希望能有所帮助。Biopython非常适合这些任务。
Seq
-对象存储序列及其相关信息。读取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