Perl语言的强项就在于文本处理(当然主要是纯文本),而恰好大多数生物信息学数据都是以纯文本的形式存放的(包括蛋白质、核酸等序列文件,序列比对文件,进化树文件等),BioPerl是为了分析、处理这些文本数据文件。生物大分子序列的书写有好多种格式,如Fasta, Genbank, EMBL, SwissProt等。
Fasta是最简单的序列格式,由于BioPerl一般是把从大于号开始一直到第一个空格出现的字段认为是“名称”,所以序列的名字中不要出现空格。eg:>gi|357167855|ref|XM_003581317.1| PREDICTED NAC domain-containing protein 100-like (LOC100841810), mRNA
用BioPerl构造序列
#!/usr/bin/perl -w use Bio::Seq; #加载Bio::Seq模块。 $seq_obj = Bio::Seq->new; #调用Bio::Seq模块的new方法,可以建立一个序列对象,命名为$seq_obj。 #给这个新建的$seq_obj对象赋予三个属性的值:dispaly_name(序列的名称),desc(序列的描述)以及seq(序列的内容) $seq_obj->display_name("gi|357167855|ref|XM_003581317.1| PREDICTED"); $seq_obj->desc("NAC domain-containing protein 100-like (LOC100841810), mRNA"); $seq_obj->seq("atgggagacc ");
调用了Bio::Seq模块中的new方法。对于调用面向对象的模块的方法(以前说“函数”,在OO术语中称“方法”)要使用“全名”的方式来调用,语法是:模块名(Bio::Seq)+瘦箭头(->)+方法名(new)。所有面向对象的模块都有一个叫做“new”的方法,它的功能简单且重要:创建一个新的对象。
#!/usr/bin/perl -w use Bio::Seq; $seq_obj = Bio::Seq->new( -display_name => "gi|357167855|ref|XM_003581317.1| PREDICTED", -desc => "NAC domain-containing protein 100-like (LOC100841810), mRNA", -seq => "atgggagacc" );
三个属性:display_name, desc, seq,即所谓fasta序列的“三要素”:名称、描述和序列。