concepts.html
##
concepts2.pl
#!/usr/bin/perl
use strict;
use CGI;
my $cgi=new CGI;
print $cgi->header();
print $cgi->start_html(-title=>'Form Results',
-author=>'BoChak');
#my $file=$cgi->param('file');
my $file="/root/Desktop/test.fasta";
print "
$file
";
################ Process File #########################
#my $file=<>;
my $seqname='';
my $sequence='';
my %seqhash=();
open (FILE,"<$file") or die "Can't open $file\n";
while (my $line=){
chomp($line);
if ($line=~m/^>/){
my @temp=split(' ',$line);
$seqname=substr($temp[0],1);
}
elsif ($line=~m/^\s$/||$line=~m/^$/){
$seqhash{$seqname}=$sequence;
}
else {
$sequence=$sequence.$line;
}
}
close (FILE);
########################################################
foreach my $key (keys %seqhash){
my $risk=docParser->new($key, $seqhash{$key} );
$risk->CAG_count();
}
print $cgi->end_html."\n";
## ##
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;