[Bioperl-l] get the sequence of a column in a multiple alignment

Mathieu Rouard mrouard at gmail.com
Wed Feb 14 06:23:47 EST 2007

Dear all,

I am starting to use the bioperl API to parse multiple alignments and I am
wondering what is the most effective way to splice all the columns from an
alignment (all the AA at the postion 1, position 2 etc.). I quickly
implemented this simple code but it becomes quite slow when the length of
sequences increases.

my $stream  = Bio::AlignIO->new(-file => $inputfilename,
                        '-format' => 'stockholm');

my $aln = $stream->next_aln();

my $length = $aln->length();
my %column;

for (my $i=1;$i<=$length;$i++) {
       my $aa;
        foreach my $seq ($aln->each_seq()) {
          my $obj = $seq->trunc($i,$i);
          $aa .=$obj->seq;
     # need to track the column number and the sequence of the column
     push $column,  $aa;

Would you have any other suggestion?


More information about the Bioperl-l mailing list