Mercurial > repos > dereeper > pangenome_explorer
diff Perl/DNA_Transcription_Translation.pl @ 3:e42d30da7a74 draft
Uploaded
author | dereeper |
---|---|
date | Thu, 30 May 2024 11:52:25 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Perl/DNA_Transcription_Translation.pl Thu May 30 11:52:25 2024 +0000 @@ -0,0 +1,128 @@ +#!/usr/bin/perl + +my $DNA= $ARGV[0]; + +@dna = $DNA; +print "@dna[0]\t\t-> DNA\n"; + + +for ($i = 0 ; $i < length(@dna[0]); $i++ ) { + @c[$i] = substr( @dna[0], $i, 1); + #print "@c[$i]"; + + if(@c[$i] eq 'A') { + $counterpart=$counterpart."T"; + $rna=$rna."A"; + } + + elsif(@c[$i] eq 'T') { + $counterpart=$counterpart."A"; + $rna=$rna."U"; + } + + elsif(@c[$i] eq 'C') { + $counterpart=$counterpart."G"; + $rna=$rna."C"; + + } + + elsif(@c[$i] eq 'G') { + $counterpart=$counterpart."C"; + $rna=$rna."G"; + } +} + +print "$counterpart\t\t-> Counterpart of DNA\n"; +print "$rna\t\t-> RNA\n"; + +my $j = 0; +for ($i = 0 ; $i < length ($rna); $i = $i+3) { + @codon[$j] = substr( $rna, $i, 3); + print "@codon[$j] "; + $j++; +} + +print "-> Codon\n"; + +my(%genetic_code_table) = ( + + 'UUU' => 'F', + 'UUC' => 'F', + 'UUA' => 'L', + 'UUG' => 'L', + 'CUU' => 'L', + 'CUC' => 'L', + 'CUA' => 'L', + 'CUG' => 'L', + 'AUU' => 'I', + 'AUC' => 'I', + 'AUA' => 'I', + 'AUG' => 'M', + 'GUU' => 'V', + 'GUC' => 'V', + 'GUA' => 'V', + 'GUG' => 'V', + 'UCU' => 'S', + 'UCC' => 'S', + 'UCA' => 'S', + 'UCG' => 'S', + 'CCU' => 'P', + 'CCC' => 'P', + 'CCA' => 'P', + 'CCG' => 'P', + 'ACU' => 'T', + 'ACC' => 'T', + 'ACA' => 'T', + 'ACG' => 'T', + 'GCU' => 'A', + 'GCC' => 'A', + 'GCA' => 'A', + 'GCG' => 'A', + 'UAU' => 'Y', + 'UAC' => 'Y', + 'UAA' => '.', + 'UAG' => '.', + 'CAU' => 'H', + 'CAC' => 'H', + 'CAA' => 'Q', + 'CAG' => 'Q', + 'AAU' => 'N', + 'AAC' => 'N', + 'AAA' => 'K', + 'AAG' => 'K', + 'GAU' => 'D', + 'GAC' => 'D', + 'GAA' => 'E', + 'GAG' => 'E', + 'UGU' => 'C', + 'UGC' => 'C', + 'UGA' => '.', + 'UGG' => 'W', + 'CGU' => 'R', + 'CGC' => 'R', + 'CGA' => 'R', + 'CGG' => 'R', + 'AGU' => 'S', + 'AGC' => 'S', + 'AGA' => 'R', + 'AGG' => 'R', + 'GGU' => 'G', + 'GGC' => 'G', + 'GGA' => 'G', + 'GGG' => 'G', +); + +for (my $j = 0 ; $j < length ($rna)/3; $j++) { + + if( exists ($genetic_code_table{@codon[$j]}) ) { + @result[$j] = $genetic_code_table{@codon[$j]}; + print "$genetic_code_table{@codon[$j]} "; + } +} + +open(RESULT, "+>result.txt") or die "Couldn't open file result.txt, $!"; + +print RESULT @result; + +close(RESULT) || die "Couldn't close file properly"; +print "\n\n";