[Bioperl-l] SimpleAlign Question

Brian Osborne osborne1 at optonline.net
Mon Apr 10 23:32:59 EDT 2006


Iain,

You can pass a third argument to slice(), it tells the method to keep
sequences with no valid characters, e.g.:

$aln2 = $aln1->slice(22,33,1);

I'll document this a bit more...


Brian O.

On 4/8/06 12:29 PM, "Iain Wallace" <iain.m.wallace at gmail.com> wrote:

> Hi all,
> 
> I am trying to extract slices out of an alignment, but sometimes the
> slice I am trying to take contains a sequence that has no residues. I
> would still like to add this sequence, unfortunately I am getting this
> error
> 
> ------------- EXCEPTION  -------------
> MSG: Got a sequence with no letters in it cannot guess alphabet []
> STACK Bio::PrimarySeq::_guess_alphabet
> /usr/lib/perl5/site_perl/5.8.0/Bio/PrimarySeq.pm:837
> STACK Bio::PrimarySeq::seq
> /usr/lib/perl5/site_perl/5.8.0/Bio/PrimarySeq.pm:279
> STACK Bio::SimpleAlign::slice
> /usr/lib/perl5/site_perl/5.8.0/Bio/SimpleAlign.pm:794
> 
> Is there a simple way I can override this behaviour, which I think is
> just validating the sequence before it adds it to the alignment.
> 
> The code I am usinge is below followed by a test alignment,
> 
> Thanks for any help
> 
> Iain
> --script
> use strict;
> 
> use Bio::AlignIO;
> #read in the initial alignment from the command line.
> 
> my $in = $ARGV[0];
> 
> my $alignio = Bio::AlignIO->new(-file=> $in);
> my $out = Bio::AlignIO->new(-file=> ">test.fasta");
> 
>        my $aln = $alignio->next_aln;
>        my $new_aln = new Bio::SimpleAlign;
>        $new_aln=$aln->slice(1,10);
>        $out->write_aln($new_aln);
> 
> --sample file
> 
>> 1huma/1-7
> APMGSDP---
>> 1b3aa/1-5
> -PYSS-D---
>> 2eot/1-5
> -----GPASV
>> 1rhpa/1-1
> ---------D
>> 1mgsa/1-6
> ----ASVATE
>> 1mi2a/1-6
> ----AVVASE
>> 1roda/1-4
> ------SAKE
>> 1il8a/1-3
> -------AKE
>> 1sdf/1-6
> ----KPVSLS
> 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l




More information about the Bioperl-l mailing list