Bioperl输出序列文件(Bioperl HOWTO翻译3)

输出序列文件

英文原文

下面将展示如何利用两个模块创建一个序列文件。上例中,已经有了一个序列对象$seq_obj,然后需要创建另一个用于读写文件的对象,SeqIO对象。IO表示Input-Output(输入输出)。Bio::SeqIO可用于读取和输出各种Bioperl支持的序列格式文件(支持的序列格式列表详见SeqIO HOWTO)。创建Bio::SeqIO对象和前述使用new()创建序列对象的方法类似,如下所示:

  1. use Bio::SeqIO;
  2. $seqio_obj = Bio::SeqIO->new(-file => '>sequence.fasta', -format => 'fasta' );

注:在-file参数中,“>”符号表示要创建一个名字为“sequence.fasta”的文件用于内容输出。这和一般Perl脚本中,使用函数open()来写文件也是用“>”。(译者注:< 输入、> 输出)。在“-format”参数中声明序列格式是“fasta”,所以创建的会是一个fasta格式的序列文件。

现在来把刚才的两个例子放在一起:

  1. #!/bin/perl -w
  2. use Bio::Seq;
  3. use Bio::SeqIO;
  4. $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt",
  5. -display_id => "#12345",
  6. -desc => "example 1",
  7. -alphabet => "dna" );
  8. $seqio_obj = Bio::SeqIO->new(-file => '>sequence.fasta', -format => 'fasta' );
  9. $seqio_obj->write_seq($seq_obj);

最后一行write_seq()是个新东西,是不?在这一行中,序列对象$seq_obj作为write_seq()的参数传递给了SeqIO对象。从另一个角度看,SeqIO对象能够识别并处理序列对象,并将此序列对象以fasta格式输出到一个文件中。来试着运行一下这个脚本:

  1. perl seqio.pl

在同一文件夹下会有一个新的文件,“sequence.fasta”,内容如下:

  1. >#12345 example 1
  2. aaaatgggggggggggccccgtt

SeqIO非常聪明,比如我们把-format参数设置为“genbank”,序列文件会变成这样:

  1. LOCUS       #12345                    23 bp    dna     linear   UNK
  2. DEFINITION  example 1
  3. ACCESSION   unknown
  4. FEATURES             Location/Qualifiers
  5. BASE COUNT        4 a      4 c     12 g      3 t
  6. ORIGIN       1 aaaatggggg ggggggcccc gtt
  7. //

本文来源:http://bioops.info/2011/09/bioperl-howto-write-seq-to-file/

发表评论

匿名网友

拖动滑块以完成验证
加载中...