in reply to Re: Equation - code review
in thread Equation - code review
Thanks in advance. - kulls#!c:\perl\bin\perl use strict; use warnings; use Math::BigInt; use Data::Dumper; my %index_val = ( A=> 2, C => 3, D => 4, N => 2, M => 2, T => 1, G => 4); my $sequence="ACTGACN"; my $distance_index= int(rand(4)); my $window=int(rand(3)); my $arr_ref = alpha_index({ sequence => $sequence, distance => $distance_index, aa_index => \%index_val, window_size => $window }); print STDERR Dumper($arr_ref); sub alpha_index { my $self=shift; my $sequence=$self->{sequence}; my $distance=$self->{distance}; my $aa_index=$self->{aa_index}; my @carbon_index; my $window_size= $self->{window_size}; if($self->{window_size} ==1) { $window_size=1;} elsif($self->{window_size} > 1 ) { $window_size = int(($self->{window_size}-1)/2); } else { $window_size=0; } foreach (0.. (length($sequence)-1)) { my %carbon_aa; my ($left,$middle,$right) = $sequence =~ m/(\w{$_})?(\w{1} +)?(\w*)/; $carbon_aa{$middle}=$aa_index->{$middle} if($middle); $left=reverse($left); my $initial_index=2; my $length_index= ($window_size) ? $window_size:length($left); if($self->{window_size} ==1 ) { push @carbon_index, \%carbon_aa if(%carbon_aa); next; } foreach my $increment (0..$length_index-1) { my $left_aa=substr($left,$increment,1); next if not exists $aa_index->{$left_aa}; my $power=Math::BigInt->new($initial_index); my $distance_index=($power->bpow($distance))->numify() +; $carbon_aa{$middle}+= ( $aa_index->{$left_aa} * (1/$distance_index)); $initial_index++; } $initial_index=2; $length_index= ($window_size)?$window_size:length($right); foreach my $increment (0..$length_index-1) { my $right_aa=substr($right,$increment,1); next if not exists $aa_index->{$right_aa}; my $power=Math::BigInt->new($initial_index); my $distance_index=($power->bpow($distance))->numify() +; $carbon_aa{$middle}+= ( $aa_index->{$right_aa} * ( 1/$distance_index)); $initial_index++; } push @carbon_index, \%carbon_aa if(%carbon_aa); } return \@carbon_index; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Equation - code review
by imp (Priest) on Aug 16, 2006 at 08:53 UTC | |
|
Re^3: Equation - code review
by GrandFather (Saint) on Aug 16, 2006 at 11:13 UTC |