Biopython 配备了一个内置的 Bio.SeqIO 模块,它为我们提供了从文件读取序列或将序列写入文件的功能。Bio.SeqIO 几乎支持生物信息学中使用的所有文件处理格式。Biopython 严格遵循单一的方法,通过 SeqRecord 对象向用户展示解析后的数据序列。
SeqRecord
由 Bio.SeqRecord 模块提供的 SeqRecord 对象,不仅保存了序列的元数据,还包含了关于序列本身的信息。以下列出了一些主要的数据信息:
Description
—
需要被解析的实际序列。
序列的主要标识符,默认情况下为字符串类型。
序列的名称,默认情况下为字符串类型。
以人类可读的格式显示有关序列的信息。
包含与序列相关的附加信息的字典。## 读取序列:
Biopython 的 Seq 模块有一个内置的 read() 方法,该方法接收一个序列文件,并根据文件格式将其转换为单个 SeqRecord 对象。它只能解析恰好包含一条记录的序列文件,如果文件中没有记录或包含多于一条记录,则会引发异常。read() 方法的语法和参数如下:
Bio.SeqIO.read(handle, format, alphabet=None)
Description
—
文件句柄或作为字符串的文件名(旧版本仅接受句柄)。
文件格式,以字符串表示。
可选参数,当无法从文件中自动推断序列类型时使用(例如 format = "fasta")。Python3
CODEBLOCK_66fb2d00
Output:
解析序列:
当我们必须从句柄中读取多条记录时,可以使用 Bio.Seq 模块提供的 Parse() 方法。它基本上将序列文件转换为返回 SeqRecords 的迭代器。如果文件包含字符串数据,则必须将其转换为句柄才能进行解析。对于无法确定字母表的文件格式,显式指定字母表非常有用(例如 FASTA)。parse() 方法的语法和参数如下:
Bio.SeqIO.parse(handle, format, alphabet=None)
Description
—
文件句柄或作为字符串的文件名(旧版本仅接受句柄)。
文件格式,以字符串表示。
可选参数,当无法从文件中自动推断序列类型时使用(例如 format = "fasta")。Python3
CODEBLOCK_e2510d80
Output :
写入序列:
要将数据写入文件,Bio.Seq 模块提供了一个 write() 方法,该方法将序列集写入文件并返回一个表示写入记录数的整数。请确保在调用句柄后关闭句柄,否则数据将被刷新到磁盘。write() 方法的语法和参数如下:
Bio.SeqIO.write(sequences, handle, format)
Description
—
SeqRecord 对象的列表或迭代器(在 Biopython 1.54 或更高版本中也可以是单个 SeqRecord)。
文件句柄或作为字符串的文件名(旧版本仅接受句柄)。
要写入的文件格式,以小写字符串表示。注意: 要下载示例文件,请点击 这里
Python3
“
导入库
from Bio import SeqIO
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
rec1 = SeqRecord(Seq("MMYQQGCFAGGTVLRLAKDLAENNRGARVLVVCSEITAVTFRGPSETHLDSMVGQALFGD"
+ "GAGAVIVGSDPDLSVERPLYELVWTGATLLPDSEGAIDGHLREVGLTFHLLKDVPGLISK"
+ "NIEKSLKEAFTPLGISDWNSTFWIAHPGGPAILDQVEAKLGLKEEKMRATREVLSEYGNM"),
id="gi
gb
AF376133_1",
description="chalcone synthase [Cucumis sativus]")
rec2 = SeqRecord(Seq("MVTVEEFRRAQCAEGPATVMAIGTATPSNCVDQSTYPDYYFRITNSEHKVELKEKFKRMC"
+ "EKSMIKKRYMHLTEEILKENPNICAYMAPSLDARQDIVVVEVPKLGKEAAQKAIKEWGQP"
+ "KSKITHLVFCTTSGVDMPGCDYQLTKLLGLRPSVKRFMMYQQGCFAGGTVLRMAKDLAEN"
+ "NKGARVLVVCSEITAVTFRGPNDTHLDSLVGQALFGDGAAAV