之前的文章《 Bioperl-开源生命科学工具套件 》介绍了BioPerl的整个蓝图,Bio::SeqIO是其一个子模块,可以根据输入文件类型抽取出所需要的信息,其相关模块Bio::Seq则可以按照格式要求储存数据信息,一般处理常用的生信文件格式会调用到。

下面我们利用Bio::SeqIO来快速解析fasta文件格式,示例如下:


#!/usr/bin/perl -w
use warnings;
use strict;
use autodie;
# 载入关键包,安装:`cpan Bio::SeqIO`
use Bio::SeqIO;
# 载入demo序列信息
# 文件状态
#'file'       # 打开只读文件
#'>file'      # 写入文件
#'>>file'     # 向文件追加内容
#'+<file'     # 可以读写操作文件
my $in  = Bio::SeqIO->new(-file => "demo.fasta" ,
                          -format => 'Fasta');
# 读取序列
while ( my $seq = $in->next_seq() ) {
    # 获取ID
    print "ID: ", $seq->display_id, "\n";
    # Accession number
    print "Accession number: ", $seq->accession_number(), "\n";
    # 判断序列是DNA、RNA、Protein
    print "Is DNA? ", ($seq->alphabet eq 'dna') ? "True":"False", "\n";
    print "Is Protein? ", ($seq->alphabet eq 'protein') ? "True":"False", "\n";
    # 获取序列
    print "Seq > \n", $seq->seq(), "\n";
    # 获取物种信息