[Bioperl-l] Bio::SimpleAlign, uniq_seq

Mark A. Jensen maj at fortinbras.us
Thu Apr 2 04:15:06 UTC 2009


Thanks Weigang-- I didn't look carefully enough--
I'll make a change to the POD. 

so Tristan, in your code below, add

 $aln->verbose(1);

before you invoke uniq_seq(). The ST's should
then be sent to stderr (as "warns").

MAJ
----- Original Message ----- 
From: "Weigang Qiu" <weigangq at gmail.com>
To: "Mark A. Jensen" <maj at fortinbras.us>
Cc: "BioPerl List" <bioperl-l at lists.open-bio.org>; <tristan.lefebure at gmail.com>
Sent: Wednesday, April 01, 2009 11:57 PM
Subject: Re: [Bioperl-l] Bio::SimpleAlign, uniq_seq


> Mark and Tristan,
> 
> I am the original instigator of the uniq_seq method. The STDERR
> implementation was used so that STDOUT could be piped. But it did not
> conform to bioperl convention of using the $self->debug() method. I think
> that's why these lines were commented out and re-implemented using the
> $self->debug method. So, turning on the debug option should give the
> intended ST mapping for each sequence in stderr.
> 
> weigang
> 
> On Wed, Apr 1, 2009 at 10:28 PM, Mark A. Jensen <maj at fortinbras.us> wrote:
> 
>> Tristan--
>> Strange: it looks like the prints to stderr have been commented out in the
>> source (back in revision 10242; 1.6 is rev 15582). The
>> two statements are easy to find in the SimpleAlign.pm uniq_seq() source;
>> you can
>> uncomment them to work around this.
>> You are right, this is rather an unconventional way to specify an output
>> option-- can Chris comment?
>> Mark
>> ----- Original Message ----- From: "Tristan Lefebure" <
>> tristan.lefebure at gmail.com>
>> To: "BioPerl List" <bioperl-l at lists.open-bio.org>
>> Sent: Wednesday, April 01, 2009 11:11 PM
>> Subject: [Bioperl-l] Bio::SimpleAlign, uniq_seq
>>
>>
>>
>>  Hi there,
>>>
>>> I'm trying to use the uniq_seq function from the Bio::SimpleAlign module.
>>> Here is the description:
>>>
>>> Title     : uniq_seq
>>> Usage     : $aln->uniq_seq():  Remove identical sequences in
>>>            in the alignment.  Ambiguous base ("N", "n") and
>>>            leading and ending gaps ("-") are NOT counted as
>>>            differences.
>>> Function  : Make a new alignment of unique sequence types (STs)
>>> Returns   : 1. a new Bio::SimpleAlign object (all sequences renamed as
>>> "ST")
>>>            2. ST of each sequence in STDERR
>>> Argument  : None
>>>
>>> What I'm trying to obtain is the ST composition (i.e. what is supposed to
>>> go
>>> to STDERR), but I see nothing...
>>>
>>> An example:
>>>
>>> --------test.fasta:
>>>
>>>> seq1
>>>>
>>> AAATTTC
>>>
>>>> seq2
>>>>
>>> CAATTTC
>>>
>>>> seq3
>>>>
>>> AAATTTC
>>> -------
>>>
>>>
>>> ----------test.pl:
>>> #! /usr/bin/perl
>>>
>>> use strict;
>>> use warnings;
>>> use Bio::AlignIO;
>>> use Bio::SimpleAlign;
>>> use Getopt::Long;
>>>
>>> my $in  = Bio::AlignIO->new(-file   => 'test.fasta' ,
>>>                            -format => 'fasta');
>>>
>>> my $out = Bio::AlignIO->new(-file   => ">test.out" ,
>>>                            -format => 'fasta');
>>>
>>> while ( my $aln = $in->next_aln() ) {
>>> my $red_aln = $aln->uniq_seq;
>>>       $out->write_aln($red_aln);
>>>   }
>>> -------------
>>>
>>> If you run:
>>>
>>> ./test.pl &> log
>>>
>>> you will get nothing written into the log file... (but the test.out is OK)
>>>
>>> Am I missing something?
>>> By the way, wouldn't it be more convenient to have the ST composition
>>> returned
>>> in an array?
>>>
>>> Thanks,
>>>
>>> --Tristan
>>> (BioPerl 1.6)
>>>
>>>
>>>
>>> _______________________________________________
>>> Bioperl-l mailing list
>>> Bioperl-l at lists.open-bio.org
>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>
>>>
>>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
> 
> 
> 
> -- 
> Weigang Qiu
> Department of Biological Sciences
> Hunter College, City University of New York
> 695 Park Avenue
> New York, NY 10065
> _______________________________________________
> 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