Biopython SeqIO 读取序列文件,读取信息,写入序列

摘要:
Biopython 1.序列分配转录(逆转录)翻译-反向互补2.读取序列文件以识别序列属性信息。关键是信息的类型,而值包含信息特征。它是SeqFeature对象的列表。2.1读取序列文件。生物等效性。索引()位于中间级别,类似于只读字典。必要时,它将序列解析为SeqRecord对象。例如:˃˃˃fromBioimportSeqIO˃˃˃兰花_迪克特=SeqIO.index˃˃˃len94BioSeqIO。index_Db()也类似于只读字典,但它将文件中的ID和文件偏移值存储到硬盘,这意味着它只需要很少的内存,但速度会慢一些。例如:˃˃˃fromBioimportSeqIO˃˃˃兰花_迪克特=SeqIO。to_Dict2.5来自Bio.SeqIO的字典状对象。index()以SeqRecord对象的形式返回序列条目。

Biopython
1.序列赋值 转录(反转录) 翻译 反向互补
2.读取序列文件,识别序列的属性信息。SeqRecord提供序列及其注释的容器
属性:
seq :一条生物序列
id:基本ID,标识这条序列
name:常用分子的名称
description:序列分子的描述
letter_annotation:是一个有给每个碱基注释的字典,键是注释类型,值是每个残基序列注释的列表
annotations:序列附件信息的字典。键是信息的类型,值包含信息
features:是SeqFeature对象的列表

2.1 读取序列文件 。
只包含一个序列条目的文件,Bio.SeqIO.read(文件句柄,序列格式) #最新版都可以直接用文件,不过用with 句柄也可以更加规范 如:
>>> from Bio import SeqIO
>>> record = SeqIO.read("Fasta/f001", "fasta")
>>> print("%s %i" % (record.id, len(record)))
gi|3318709|pdb|1A91| 79
多条序列的文件,Bio.SeqIO.parse(文件句柄,序列格式),返回SeqRecord 对象迭代器如:
from Bio import SeqIO
for seq_record in SeqIO.parse("ls_orchid.fasta", "fasta"):
print seq_record.id
print repr(seq_record.seq)
print len(seq_record)
还可以用next() 遍历序列条目
如:from Bio import SeqIO
record_iterator = SeqIO.parse("ls_orchid.fasta", "fasta")

first_record = record_iterator.next()
print first_record.id
print first_record.description

second_record = record_iterator.next()
print second_record.id
print second_record.description

保存为序列条目列表 list()即可
from Bio import SeqIO
records = list(SeqIO.parse("ls_orchid.gbk", "genbank"))

print "Found %i records" % len(records)

print "The last record"
last_record = records[-1]

2.2 提取序列条目信息
annotations 属性 得到序列条目的注释信息如:
print first_record.annotations

2.3 gzip文件提取,先gzip模块得句柄,再操作
>>> import gzip
>>> from Bio import SeqIO
>>> handle = gzip.open("ls_orchid.gbk.gz", "r")
>>> print sum(len(r) for r in SeqIO.parse(handle, "gb"))
67518
>>> handle.close()

2.4 保存序列文件到字典,默认序列id作为key,value是序列的Seq对象
Bio.SeqIO.to_dict()内存占用大,每个条目以 SeqRecord 对象形式存储在内存中,你修改这些条目。
Bio.SeqIO.index() 处于中间水平,类似于只读字典,当需要时解析序列到 SeqRecord 对象。
Bio.SeqIO.index() ,工作原理上略有不同。尽管仍然是返回一个类似于字典的对象,它并不将所有的信息存储在内存中。相反,它仅仅记录每条序列条目在文件中的位置 - 当你需要读取某条特定序列条目时,它才进行解析。注:index()只接受文件名,不接受句柄。如:
>>> from Bio import SeqIO
>>> orchid_dict = SeqIO.index("ls_orchid.gbk", "genbank")
>>> len(orchid_dict)
94
Bio.SeqIO.index_db() 也类似于只读字典,但是将文件中的ID和文件偏移值存储到硬盘(SQLite3数据库),这意味着它对内存需求很低(请见第 5.4.3 节),但会慢一点。
如:>>> from Bio import SeqIO
>>> orchid_dict = SeqIO.to_dict(SeqIO.parse("ls_orchid.gbk", "genbank"))

2.5 来自 Bio.SeqIO.index() 的字典样对象以 SeqRecord 对象形式返回序列条目。但是,有时候从文件中直接获取原始数据非常有用。对于此种情况,使用 get_raw() 方法获取文件原始数据,方便选择序列再写入

>>> from Bio import SeqIO
>>> uniprot = SeqIO.index("uniprot_sprot.dat", "swiss")
>>> handle = open("selected.dat", "w")
>>> for acc in ["P33487", "P19801", "P13689", "Q8JZQ5", "Q9TRC7"]:
... handle.write(uniprot.get_raw(acc))
>>> handle.close()

2.6 序列写入,序列文件格式转换
Bio.SeqIO.write() 输出序列(写入文件)。该函数需要三个参数:某些 SeqRecord 对象,要写入的句柄或文件名,和序列格式
from Bio import SeqIO
records = SeqIO.parse("ls_orchid.gbk", "genbank")
count = SeqIO.write(records, "my_example.fasta", "fasta")
print "Converted %i records" % count
或:
from Bio import SeqIO
count = SeqIO.convert("ls_orchid.gbk", "genbank", "my_example.fasta", "fasta")
print "Converted %i records" % count

免责声明:文章转载自《Biopython SeqIO 读取序列文件,读取信息,写入序列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇接口性能测试方案python字典实现按照自定义顺序排序下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

磁盘IO读写流程图

  对于read系统调用在内核的处理,如上图所述,经过了VFS、具体文件系统,如ext2、页高速缓冲存层、通用块层、IO调度层、设备驱动层、和设备层。其中,VFS主要是用来屏蔽下层具体文件系统操作的差异,对上提供一个统一接口,正是因为有了这个层次,所以可以把设备抽象成文件。具体文件系统,则定义了自己的块大小、操作集合等。引入cache层的目的,是为了提高I...

openssl之BIO系列之24---SSL类型的BIO

SSL类型的BIO     ---依据openssl doccryptoio_f_ssl.pod翻译和自己的理解写成     (作者:DragonKing, Mail: wzhah@263.net ,公布于:http://openssl.126.com之 openssl专业论坛)     从名字就能够看出,这是一个很重要的BIO类型,它封装了openss...