让我们创建一个简单的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行导入Se可在Bio.SeqRecord模块中使用qRecord类.此模块用于操作序列记录,SeqRecord类用于表示序列文件中可用的特定序列.
*第3行"导入可用的Seq类在Bio.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()
我们见过thr在这个例子中有ee类,parse,SeqRecord和Seq.这三个类提供了大部分功能,我们将在下一节中学习这些类.