Biopython - 序列的输入与输出详解

Biopython 配备了一个内置的 Bio.SeqIO 模块,它为我们提供了从文件读取序列或将序列写入文件的功能。Bio.SeqIO 几乎支持生物信息学中使用的所有文件处理格式。Biopython 严格遵循单一的方法,通过 SeqRecord 对象向用户展示解析后的数据序列。

SeqRecord

Bio.SeqRecord 模块提供的 SeqRecord 对象,不仅保存了序列的元数据,还包含了关于序列本身的信息。以下列出了一些主要的数据信息:

Record

Description

seq

需要被解析的实际序列。

id

序列的主要标识符,默认情况下为字符串类型。

name

序列的名称,默认情况下为字符串类型。

description

以人类可读的格式显示有关序列的信息。

annotations

包含与序列相关的附加信息的字典。## 读取序列:

Biopython 的 Seq 模块有一个内置的 read() 方法,该方法接收一个序列文件,并根据文件格式将其转换为单个 SeqRecord 对象。它只能解析恰好包含一条记录的序列文件,如果文件中没有记录或包含多于一条记录,则会引发异常。read() 方法的语法和参数如下:

Bio.SeqIO.read(handle, format, alphabet=None)
Arguments

Description

handle

文件句柄或作为字符串的文件名(旧版本仅接受句柄)。

format

文件格式,以字符串表示。

alphabet

可选参数,当无法从文件中自动推断序列类型时使用(例如 format = "fasta")。Python3

CODEBLOCK_66fb2d00

Output:

!image

解析序列:

当我们必须从句柄中读取多条记录时,可以使用 Bio.Seq 模块提供的 Parse() 方法。它基本上将序列文件转换为返回 SeqRecords 的迭代器。如果文件包含字符串数据,则必须将其转换为句柄才能进行解析。对于无法确定字母表的文件格式,显式指定字母表非常有用(例如 FASTA)。parse() 方法的语法和参数如下:

Bio.SeqIO.parse(handle, format, alphabet=None)
Arguments

Description

handle

文件句柄或作为字符串的文件名(旧版本仅接受句柄)。

format

文件格式,以字符串表示。

alphabet

可选参数,当无法从文件中自动推断序列类型时使用(例如 format = "fasta")。Python3

CODEBLOCK_e2510d80

Output :

!image

写入序列:

要将数据写入文件,Bio.Seq 模块提供了一个 write() 方法,该方法将序列集写入文件并返回一个表示写入记录数的整数。请确保在调用句柄后关闭句柄,否则数据将被刷新到磁盘。write() 方法的语法和参数如下:

Bio.SeqIO.write(sequences, handle, format)
Arguments

Description

sequences

SeqRecord 对象的列表或迭代器(在 Biopython 1.54 或更高版本中也可以是单个 SeqRecord)。

handle

文件句柄或作为字符串的文件名(旧版本仅接受句柄)。

format

要写入的文件格式,以小写字符串表示。注意: 要下载示例文件,请点击 这里

Python3


导入库

from Bio import SeqIO

from Bio.Seq import Seq

from Bio.SeqRecord import SeqRecord

rec1 = SeqRecord(Seq("MMYQQGCFAGGTVLRLAKDLAENNRGARVLVVCSEITAVTFRGPSETHLDSMVGQALFGD"

+ "GAGAVIVGSDPDLSVERPLYELVWTGATLLPDSEGAIDGHLREVGLTFHLLKDVPGLISK"

+ "NIEKSLKEAFTPLGISDWNSTFWIAHPGGPAILDQVEAKLGLKEEKMRATREVLSEYGNM"),

id="gi

14150838

gb

AAK54648.1

AF376133_1",

description="chalcone synthase [Cucumis sativus]")

rec2 = SeqRecord(Seq("MVTVEEFRRAQCAEGPATVMAIGTATPSNCVDQSTYPDYYFRITNSEHKVELKEKFKRMC"

+ "EKSMIKKRYMHLTEEILKENPNICAYMAPSLDARQDIVVVEVPKLGKEAAQKAIKEWGQP"

+ "KSKITHLVFCTTSGVDMPGCDYQLTKLLGLRPSVKRFMMYQQGCFAGGTVLRMAKDLAEN"

+ "NKGARVLVVCSEITAVTFRGPNDTHLDSLVGQALFGDGAAAV

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/28100.html
点赞
0.00 平均评分 (0% 分数) - 0