Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: How can I count the number and kinds of letters at 1st, 2nd and 3rd positions of 3-letter words in a string?

by BillKSmith (Chaplain)
on Apr 27, 2012 at 03:37 UTC ( #967504=note: print w/ replies, xml ) Need Help??


in reply to How can I count the number and kinds of letters at 1st, 2nd and 3rd positions of 3-letter words in a string?

One more way to parse the sequence. The initialization statement is only needed if zero-counts must be defined.

use strict; use warnings; use Readonly; use Data::Dumper qw( Dumper ); Readonly::Scalar my $seq => "ATCGGCGCCTAT" ; my %count; @count{ qw(A1 A2 A3 T1 T2 T3 C1 C2 C3 G1 G2 G3 ) } = (0) x (3*4); foreach my $i (0 .. length($seq)-1 ) { my $pos = $i % 3 + 1; my $base = substr $seq, $i, 1; $count{$base.$pos}++; } $Data::Dumper::Sortkeys = 1; print Dumper \%count;

Or if you really want individual scalar counts and do not mind global variables or symbolic references.

use strict; use warnings; my $seq = 'ATCGGCGCCTAT' ; my %count; our( $A1, $A2, $A3, $T1, $T2, $T3, $C1, $C2, $C3, $G1, $G2, $G3 ) = (0) x 12; foreach my $i (0 .. length($seq)-1 ) { my $pos = $i % 3 + 1; my $base = substr $seq, $i, 1; {no strict 'refs'; ${$base.$pos}++;} } print $A1, $A2, $A3, $T1, $T2, $T3, $C1, $C2, $C3, $G1, $G2, $G3;


Comment on Re: How can I count the number and kinds of letters at 1st, 2nd and 3rd positions of 3-letter words in a string?
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://967504]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (14)
As of 2014-12-19 17:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (90 votes), past polls