Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Biopython(Python)从FASTA文件中提取序列_Python_Python 2.7_Biopython_Fasta - Fatal编程技术网

使用Biopython(Python)从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

好的,所以我需要使用python(biopython,)从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对象基本上是一个数组,因此您可以指定其中的子部分,并将其传递到新的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