Dna2prot PL

You might also like

You are on page 1of 2

print "\n\n\t\####################### DNA to RNA ###############################

\n\n";
print "Enter the file name containing the DNA sequence: \n\n";
$dna = <STDIN>;
chomp $dna;
unless ( open (dnafile, $dna) )
{
print "DAMN!cannot open the file \"$dnafilename\"\n\n";
goto h;
}
@Dna = <dnafile>;
close dnafile;
$DNA = join ( '',@Dna);
print " The DNA sequence is: \n\n";
print "$DNA \n\n";
$l = length($DNA);
print "The length of the sequence is: $l \n\n";
$RNA = $DNA;
$RNA =~ s/T/U/g;
print "Transcription-----> DNA to RNA \n\n";
print "$RNA \n";
$RNA =~ s/\s//g;
print "\n\n\t\##################### RNA TO PROTEIN ###################\n\n";
my $protein = '';
my $codon;
chomp $DNA;
for($i=0;$i<=length($RNA)-2;$i=$i+3)
{
$codon = substr($RNA,$i,3);
$protein = $protein . &codon2aa($codon);
print "Translation-------> DNA-->RNA-->Proteins \n\n";
print "$protein \n";
}
sub codon2aa
{
my($codon)=@_;
$codon = uc $codon;
my(%genetic_code) =('UUU'=>'F', 'UUC'=>'F', 'UUA'=>'L', 'UUG'=>'L', 'UC
U'=>'S', 'UCC'=>'S', 'UCA'=>'S', 'UCG'=>'S', 'UAU'=>'Y', 'UAC'=>'Y', 'UGU'=>'C',
'UGC'=>'C', 'UGG'=>'W', 'CUU'=>'L', 'CUC'=>'L', 'CUA'=>'L','CUG'=>'L', 'CCU'=>'
P','CCC'=>'P', 'CCA'=>'P', 'CCG'=>'P', 'CAU'=>'H', 'CAC'=>'H', 'CAA'=>'Q', 'CAG'
=>'Q', 'CGU'=>'R', 'CGC'=>'R', 'CGA'=>'R', 'CGG'=>'R','AUU'=>'I', 'AUC'=>'I', 'A
UA'=>'I', 'AUG'=>'M', 'ACU'=>'T', 'ACC'=>'T', 'ACA'=>'T', 'ACG'=>'T', 'AAU'=>'N'
, 'AAC'=>'N', 'AAA'=>'K', 'AAG'=>'K', 'AGU'=>'S', 'AGC'=>'S', 'AGA'=>'R', 'AGG'=
>'R','GUU'=>'V', 'GUC'=>'V', 'GUA'=>'V', 'GUG'=>'V', 'GCU'=>'A', 'GCC'=>'A', 'GC
A'=>'A', 'GCG'=>'A', 'GAU'=>'D', 'GAC'=>'D', 'GAA'=>'E', 'GAG'=>'E', 'GGU'=>'G',
'GGC'=>'G', 'GGA'=>'G', 'GGG'=>'G');
if(exists $genetic_code{$codon})
{
return $genetic_code{$codon};
}
else
{
print SUDERR "Bad codon \"$codon\"!!\n";
exit;
}
}

You might also like