docParser.pm package docParser; use strict; sub new { my $class = shift; my $self = bless {}, $class; my $seqname=shift; my $sequence=shift; $self->{_seqname}=$seqname; $self->{_sequence}=$sequence; return $self; } sub CAG_count { my ($self)=shift; my $seqname=$self->{_seqname}; my $sequence=$self->{_sequence}; my $count_of_CAG=0; my @seq=split(//,$sequence); my $aa=''; my @position; my $len; my $amino_acid_number; for (my $index=0; $index<$#seq-2; $index+=3) { if ($sequence=~m/((CAG){6,})/g){ $count_of_CAG++; @position=index($sequence,$1); $len=length($1)/3; $amino_acid_number=shift(@position); } } print "For the sequence ".$seqname." we found a CAG string "; print "with $len\n repeats "; print "at amino acid number ".$amino_acid_number."\n\n"; if ($len<35) { print "Risk Evaluation: Normal"."\n\n"; } elsif ($len>36||$len<48) { print "Risk Evaluation: Warning"."\n\n"; } elsif ($len>48) { print "Risk Evaluation: Dangerous"."\n\n"; } } 1;