Biopython 简明教程

Biopython - Creating Simple Application

让我们创建一个简单的 Biopython 应用程序来解析生物信息学文件并打印其内容。这将帮助我们理解 Biopython 的一般概念以及它如何在生物信息学领域发挥作用。

Step 1 - 首先,创建一个示例序列文件 “example.fasta”,并将以下内容放入其中。

>sp|P25730|FMS1_ECOLI CS1 fimbrial subunit A precursor (CS1 pilin)
MKLKKTIGAMALATLFATMGASAVEKTISVTASVDPTVDLLQSDGSALPNSVALTYSPAV
NNFEAHTINTVVHTNDSDKGVVVKLSADPVLSNVLNPTLQIPVSVNFAGKPLSTTGITID
SNDLNFASSGVNKVSSTQKLSIHADATRVTGGALTAGQYQGLVSIILTKSTTTTTTTKGT

>sp|P15488|FMS3_ECOLI CS3 fimbrial subunit A precursor (CS3 pilin)
MLKIKYLLIGLSLSAMSSYSLAAAGPTLTKELALNVLSPAALDATWAPQDNLTLSNTGVS
NTLVGVLTLSNTSIDTVSIASTNVSDTSKNGTVTFAHETNNSASFATTISTDNANITLDK
NAGNTIVKTTNGSQLPTNLPLKFITTEGNEHLVSGNYRANITITSTIKGGGTKKGTTDKK

扩展名 fasta 指序列文件的格式。FASTA 来源于生物信息学软件 FASTA,因此得名。FASTA 格式有多个序列逐个排列,每个序列都有自己的 id、name、description 和实际序列数据。

Step 2 - 创建一个新的 Python 脚本 *simple_example.py",输入以下代码并保存。

from Bio.SeqIO import parse
from Bio.SeqRecord import SeqRecord
from Bio.Seq import Seq

file = open("example.fasta")

records = parse(file, "fasta") for record in records:
   print("Id: %s" % record.id)
   print("Name: %s" % record.name)
   print("Description: %s" % record.description)
   print("Annotations: %s" % record.annotations)
   print("Sequence Data: %s" % record.seq)
   print("Sequence Alphabet: %s" % record.seq.alphabet)

让我们对代码进行更深入的了解 -

Line 1 导入 Bio.SeqIO 模块中可用的 parse 类。Bio.SeqIO 模块用于读写不同格式的序列文件,`parse' 类用于解析序列文件的内容。

Line 2 导入 Bio.SeqRecord 模块中可用的 SeqRecord 类。此模块用于处理序列记录,SeqRecord 类用于表示序列文件中可用的特定序列。

*Line 3" 导入 Seq 类,该类在 Bio.Seq 模块中可用。此模块用于处理序列数据,Seq 类用于表示序列文件中可用特定序列记录的序列数据。

Line 5 使用常规 python 函数 open 打开 "example.fasta" 文件。

Line 7 解析序列文件的内容,并以 SeqRecord 对象的列表形式返回内容。

Line 9-15 使用 python for 循环遍历记录,并打印序列记录(SqlRecord)的属性,例如 id、name、description、sequence data 等。

Line 15 使用 Alphabet 类打印序列的类型。

Step 3 - 打开命令提示符并转到包含序列文件 “example.fasta” 的文件夹并运行以下命令 -

> python simple_example.py

Step 4 — Python 运行脚本并打印“example.fasta”示例文件中所有可用的序列数据。输出将类似于以下内容。

Id: sp|P25730|FMS1_ECOLI
Name: sp|P25730|FMS1_ECOLI
Decription: sp|P25730|FMS1_ECOLI CS1 fimbrial subunit A precursor (CS1 pilin)
Annotations: {}
Sequence Data: MKLKKTIGAMALATLFATMGASAVEKTISVTASVDPTVDLLQSDGSALPNSVALTYSPAVNNFEAHTINTVVHTNDSD
KGVVVKLSADPVLSNVLNPTLQIPVSVNFAGKPLSTTGITIDSNDLNFASSGVNKVSSTQKLSIHADATRVTGGALTA
GQYQGLVSIILTKSTTTTTTTKGT
Sequence Alphabet: SingleLetterAlphabet()
Id: sp|P15488|FMS3_ECOLI
Name: sp|P15488|FMS3_ECOLI
Decription: sp|P15488|FMS3_ECOLI CS3 fimbrial subunit A precursor (CS3 pilin)
Annotations: {}
Sequence Data: MLKIKYLLIGLSLSAMSSYSLAAAGPTLTKELALNVLSPAALDATWAPQDNLTLSNTGVSNTLVGVLTLSNTSIDTVS
IASTNVSDTSKNGTVTFAHETNNSASFATTISTDNANITLDKNAGNTIVKTTNGSQLPTNLPLKFITTEGNEHLVSGN
YRANITITSTIKGGGTKKGTTDKK
Sequence Alphabet: SingleLetterAlphabet()

我们在这个示例中看到了三个类:parse、SeqRecord 和 Seq。这三个类提供了大部分的功能,我们将在即将到来的部分中学习这些类。