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模块中的parse类。Bio.SeqIO模块用于读写不同格式的序列文件,”parse “类用于解析序列文件的内容。
第2行 导入Bio.SeqRecord模块中的SeqRecord类。该模块用于操作序列记录,SeqRecord类用于表示序列文件中可用的特定序列。
第3行 “ 导入Bio.Seq模块中的Seq类。该模块用于操作序列数据,Seq类用于表示序列文件中可用的特定序列记录的序列数据。
第5行 使用常规的python函数open打开 “example.fasta “文件。
第7 行解析序列文件的内容并将内容作为SeqRecord对象的列表返回。
第9-15 行使用python for loop循环记录,并打印序列记录(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。这三个类提供了大部分的功能,我们将在接下来的章节中学习这些类。