Biopython - 创建简单的应用程序

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

第 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、名称、描述和实际序列数据。

第 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)

让我们更深入地研究一下代码 −

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

第 2 行 导入 Bio.SeqRecord 模块中可用的 SeqRecord 类。 该模块用于操作序列记录,SeqRecord 类用于表示序列文件中可用的特定序列。

*第 3 行 导入 Bio.Seq 模块中可用的Seq类。该模块用于操作序列数据,Seq类用于表示序列文件中可用的特定序列记录的序列数据 .

第 5 行 使用常规 python 函数打开"example.fasta"文件,打开。

第 7 行 解析序列文件的内容,并将内容作为 SeqRecord 对象的列表返回。

9-15 行 使用python for循环遍历记录并打印序列记录(SqlRecord)的属性,如id、名称、描述、序列数据等。

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

第 3 步 − 打开命令提示符并转到包含序列文件"example.fasta"的文件夹并运行以下命令 −

> python simple_example.py

第 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。 这三个类提供了大部分功能,我们将在下一节中学习这些类。