[Bioperl-l] Fasta counting script?

Roy Chaudhuri roy.chaudhuri at gmail.com
Tue Nov 22 15:50:31 UTC 2011


Hi Kylie,

I suspect the error you get is actually "Can't call method length on an 
undefined value" (please in future report the exact text of any error 
messages). You declare $seq_obj with "my" in the while loop, but then 
try to access it outside of the loop. Try printing out the length of 
each $seq_obj within the while loop.

You should always include "use strict;" at the top of your program, that 
helps to catch errors like this.

Cheers,
Roy.

On 22/11/2011 13:00, Kylie Goodyear wrote:
> Thank you for your help. It keeps telling me that it can't find
> "length" do you think it has to do with the way I am coding it?
>
> #!/usr/bin/perl -w
> #Defines perl modules
>
> #Bio::Seq deal with sequences and their features
> use Bio::Seq;
>
> #Bio::SeqIO handles reading and parsing of sequences of many different
> formats
> use Bio::SeqIO;
>
>
> #Read FASTA file
> $seqio_obj = Bio::SeqIO->new(-file =>  "DNA_sequences.fasta", -format
> =>  "fasta" );
>
>
> #Count how many sequences are present in file
> my $countseq=0;
> while (my $seq_obj = $seqio_obj->next_seq, ) {
>      $countseq++;
>      }
> #Display the number of sequences present
> print "There are $countseq sequences present.\n";
>
> #Count number of charcaters in file
> my $seq_length = $seq_obj->length ;
> print $seq_length
>
>
> On Nov 22, 5:08 am, Dave Messina<David.Mess... at sbc.su.se>  wrote:
>> Hi Kylie,
>>
>> You can use the length method for this.
>>
>> my $seq_length = $seq_obj->length();
>>
>> Have you taken a look at the beginner's HOWTO? There's a nice table of
>> sequence methods as well lots of other good information in there.
>>
>> http://www.bioperl.org/wiki/HOWTO:Beginners
>>
>> Dave
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Tue, Nov 22, 2011 at 03:23, Kylie Goodyear<goodyea... at gmail.com>  wrote:
>>> Hi,
>>> This may seem like a stupid question but I am just learning bioperl
>>> and I am trying to figure out how to get a count of all the characters
>>> in my FASTA file. I manged to get the number of sequences using the
>>> following. Is there a way to tell bioperl to count the characters?
>>
>>> #!/usr/bin/perl -w
>>> #Defines perl modules
>>> #Bio::Seq deal with sequences and their features
>>> use Bio::Seq;
>>> #Bio::SeqIO handles reading and parsing of sequences of many different
>>> formats
>>> use Bio::SeqIO;
>>> #Read FASTA file
>>> $seqio_obj = Bio::SeqIO->new(-file =>  "DNA_sequences.fasta", -format
>>> =>  "fasta" );
>>> #Count how many sequences are present in file
>>> my $count=0;
>>> while (my $seq_obj = $seqio_obj->next_seq) {
>>>     $count++;
>>> }
>>> #Display the number of sequences present
>>> print "There are $count sequences present.\n";
>>
>>> _______________________________________________
>>> Bioperl-l mailing list
>>> Bioper... at lists.open-bio.org
>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioper... at lists.open-bio.orghttp://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




More information about the Bioperl-l mailing list