Changes
no edit summary
<p>aim . translating triple base codes convert into amino acids</p>
<p>strategy. </p> <p> </p> <p> </p> <p>-------------------------------------------------------------------------------------------------------------------------------------</p>
<p>code.: </p>
<p> </p>
<p>#!/usr/bin/perl<br />
# use strict;<br />
# use warnings;<br />
# this function is translating 'all' combinations of triple bases into amino acids<br />
my %basetoaa= (<br />
"UUU" => "F", "UUC" => "F",<br />
"UUA" => "L", "UUG" => "L",<br />
"CUU" => "L", "CUC" => "L",<br />
"CUA" => "L", "CUG" => "L",<br />
"AUU" => "I", "AUC" => "I",<br />
"AUA" => "I", "AUG" => "M",<br />
"GUU" => "V", "GUC" => "V",<br />
"GUA" => "V", "GUG" => "V",<br />
<br />
"UCU" => "S", "UCC" => "S",<br />
"UCA" => "S", "UCG" => "S",<br />
"CCU" => "P", "CCC" => "P",<br />
"CCA" => "P", "CCG" => "P",<br />
"ACU" => "T", "ACC" => "T",<br />
"ACA" => "T", "ACG" => "T",<br />
"GCU" => "A", "GCC" => "A",<br />
"GCA" => "A", "GCG" => "A",<br />
<br />
"UAU" => "Y", "UAC" => "Y",<br />
"UAA" => "*", "UAG" => "*",<br />
"CAU" => "H", "CAC" => "H",<br />
"CAA" => "Q", "CAG" => "Q",<br />
"AAU" => "N", "AAC" => "N",<br />
"AAA" => "K", "AAG" => "K",<br />
"GAU" => "D", "GAC" => "D",<br />
"GAA" => "E", "GAG" => "E",<br />
<br />
"UGU" => "C", "UGC" => "C",<br />
"UGA" => "*", "UGG" => "W",<br />
"CGU" => "R", "CGC" => "R",<br />
"CGA" => "R", "CGG" => "R",<br />
"AGU" => "S", "AGC" => "S",<br />
"AGA" => "R", "AGG" => "R",<br />
"GGU" => "G", "GGC" => "G",<br />
"GGA" => "G", "GGG" => "G",<br />
<br />
"TTT" => "F", "TTC" => "F",<br />
"TTA" => "L", "TTG" => "L",<br />
"CTT" => "L", "CTC" => "L",<br />
"CTA" => "L", "CTG" => "L",<br />
"ATT" => "I", "ATC" => "I",<br />
"ATA" => "I", "ATG" => "M",<br />
"GTT" => "V", "GTC" => "V",<br />
"GTA" => "V", "GTG" => "V",<br />
<br />
"TCT" => "S", "TCC" => "S",<br />
"TCA" => "S", "TCG" => "S",<br />
"CCT" => "P", "CCC" => "P",<br />
"CCA" => "P", "CCG" => "P",<br />
"ACT" => "T", "ACC" => "T",<br />
"ACA" => "T", "ACG" => "T",<br />
"GCT" => "A", "GCC" => "A",<br />
"GCA" => "A", "GCG" => "A",<br />
<br />
"TAT" => "Y", "TAC" => "Y",<br />
"TAA" => "*", "TAG" => "*",<br />
"CAT" => "H", "CAC" => "H",<br />
"CAA" => "Q", "CAG" => "Q",<br />
"AAT" => "N", "AAC" => "N",<br />
"AAA" => "K", "AAG" => "K",<br />
"GAT" => "D", "GAC" => "D",<br />
"GAA" => "E", "GAG" => "E",<br />
<br />
"TGT" => "C", "TGC" => "C",<br />
"TGA" => "*", "TGG" => "W",<br />
"CGT" => "R", "CGC" => "R",<br />
"CGA" => "R", "CGG" => "R",<br />
"AGT" => "S", "AGC" => "S",<br />
"AGA" => "R", "AGG" => "R",<br />
"GGT" => "G", "GGC" => "G",<br />
"GGA" => "G", "GGG" => "G",<br />
"KYJ" => "error"<br />
);<br />
print "Guru : ";<br />
print $basetoaa{"AAA"}; # K<br />
print $basetoaa{"AUU"}; # I<br />
print $basetoaa{"AUG"},"\n"; # M</p>
<p>## 변수입력<br />
my $codon_data;<br />
my $codon_data_length;<br />
my @codon_data_split;<br />
my @three_codon_data;<br />
my @amino_acid_data;<br />
my $amino_acid_length;<br />
my $yorn1, $yorn2, $yorn3, $yorn4, $yorn5;<br />
my $filename;</p>
<p>## Asking the way of how to input user's data(base).<br />
print "This is a converting programm.\n\n";<br />
print "Do you want to input your data using keyboard? [y/n] ";<br />
# input your choose in yorn.<br />
$yorn1 = <STDIN>;<br />
# delete last enter key command <br />
chomp $yorn1;<br />
# print $yorn," \n";<br />
# yes -> using keyboard\ no-> using file\ else-> error\<br />
if($yorn1 eq "y")<br />
{<br />
print "<You want to input your data by using keyboard>\n";<br />
}<br />
elsif($yorn1 eq "n")<br />
{<br />
print "<You want to input your data by using file>\n";<br />
}<br />
else<br />
{<br />
print "<Error!>\n<you must input 'y' or 'n'.>\n";<br />
exit;<br />
}</p>
<p>#--------------------------------------------------------------------<br />
## input by keyboard<br />
if ($yorn1 eq "y")<br />
{<br />
## input data <br />
print "<please input your data using keyboard>\n"; #input data in $condon_data<br />
$codon_data = <STDIN>;<br />
chomp $codon_data;<br />
#delete (enter) command. chomp funtion delete last command.<br />
#because STDIN function memory all of command.<br />
#if do not use chomp, $codon_data is ([[User:Yeong Jae Kim|Yeong Jae Kim]] 02:00, 27 May 2016 (KST))+(enter key)<br />
#so you must do it <br />
} </p>
<p>## input through file.<br />
elsif($yorn1 eq "n")<br />
{<br />
print "---------------------------------------\n<Caution!>\n<You must put on your file in same directory>\n";<br />
print "<Do not write any word without codon data>\n";<br />
print "<Please input your file name without filename extension>\n";<br />
print "<If you want to input BRCA1.txt, just type BRCA1>\n---------------------------------\n";<br />
print "<Your input file name : ";<br />
$filename = <STDIN>;<br />
chomp $filename;<br />
# $filename = "$filename";<br />
open(TEXT, "$filename.txt");<br />
$codon_data = <TEXT>;<br />
close (TEXT);<br />
## convert uppercase(대문자)-uc()<br />
$codon_data = uc($codon_data);<br />
# print $codon_data,"\n"; <br />
}<br />
#------------------------------------------------------------------------</p>
<p>## confirm data<br />
print "\nIs it yours?\n-----------------------------------\n$codon_data\n----------------------------------\n";<br />
<br />
## convert uppercase(대문자)-uc()<br />
$codon_data = uc($codon_data);<br />
<br />
## check data length<br />
$codon_data_length = length ($codon_data);<br />
print "Codon length is $codon_data_length.\n";<br />
# if codon length is not multiply by 3, i notice warning message<br />
# print $codon_data_length%3;</p>
<p>## warning to data_length<br />
if ($codon_data_length%3 ne "0")<br />
{<br />
print "[warning] your codon length is not multiply by 3."; <br />
print "Do you want continue? [y/n] ";<br />
$yorn2 = <STDIN>;<br />
chomp $yorn2; <br />
if ($yorn2 eq "n")<br />
{<br />
exit; # just stop;<br />
}<br />
}<br />
<br />
## split codon_data<br />
@codon_data_split = split(//, $codon_data);<br />
# print @codon_data;<br />
# print $codon_data[0];<br />
# print $codon_data[1];<br />
# print $codon_data[3];<br />
# print @codon_data_split,"\n";<br />
# my $i =3;<br />
# print $codon_data_split[$i];<br />
<br />
## check data<br />
foreach my $i (0..$#codon_data_split)<br />
{<br />
## U,T,C,A,G check<br />
if ($codon_data_split[$i] eq "U" || <br />
$codon_data_split[$i] eq "T" || <br />
$codon_data_split[$i] eq "C"|| <br />
$codon_data_split[$i] eq "A"|| <br />
$codon_data_split[$i] eq "G")<br />
{<br />
next;<br />
}<br />
else<br />
{<br />
print "[error]you do not input codon. please check your data\n";<br />
exit; <br />
}<br />
}<br />
## divided 3 codons<br />
for(my $i=0; $i < ($codon_data_length); $i=$i+3) <br />
{<br />
# print "this ($i/3) step";<br />
my $j=$i/3;<br />
$three_codon_data[$j] = $codon_data_split[$i].$codon_data_split[$i+1].$codon_data_split[$i+2];<br />
# print $three_codon_data[$j],"\n";<br />
# print length @three_codon_data;<br />
# you can't get size of array using length function<br />
}<br />
# you just do to define scalar variable which equal array variable<br />
$amino_acid_length = @three_codon_data;<br />
# print "test1 = ",$amino_acid_length;<br />
# print @three_codon_data;<br />
# print $amino_acid_length;</p>
<p> ## convert codon bases into amino acids<br />
for (my $i=0; $i < ($amino_acid_length); $i++)<br />
{<br />
# print $three_codon_data[$i];<br />
$amino_acid_data[$i] = $basetoaa{"$three_codon_data[$i]"};<br />
# print $amino_acid_data[$i],"\n";<br />
} </p>
<p>#-------------------------------------------------<br />
## result<br />
print "result : ",@amino_acid_data,"\n";</p>
<p> ## alignment<br />
print "<Do you want alignment?> [y/n] ";<br />
$yorn3 = <STDIN>;<br />
chomp $yorn3;<br />
print "<Do you want see the number?> [y/n] ";<br />
$yorn4 = <STDIN>;<br />
chomp $yorn4;<br />
if ($yorn3 eq "y")<br />
{<br />
my $line = int($amino_acid_length/10);<br />
for (my $i=0; $i <= $line; $i++)<br />
{<br />
## print number<br />
if ($yorn4 eq "y")<br />
{<br />
my $j =10*$i+1;<br />
print $j; <br />
print "\n ";<br />
} <br />
## print codon data<br />
for (my $j=0; $j < 10; $j++)<br />
{<br />
print $three_codon_data[10*$i+$j]," ";<br />
} <br />
print "\n ";<br />
## print amino acid data<br />
for (my $j=0; $j < 10; $j++)<br />
{<br />
my $k = 10*$i+$j+1;<br />
if ($k == $amino_acid_length && $yorn2 eq "y")<br />
{<br />
print " ?", "\n";<br />
}<br />
else<br />
{<br />
print " ", $amino_acid_data[10*$i+$j], " ";<br />
} <br />
}<br />
print "\n";<br />
}<br />
}<br />
#----------------------------------------------------<br />
## make result file<br />
print "<Do you want make file?> [y/n] ";<br />
$yorn5 = <STDIN>;<br />
chomp $yorn5;<br />
if ($yorn5 eq "y")<br />
{<br />
print "<What is the file name?>\n";<br />
print "<if you want to input BRCA1.txt, just type BRCA1>\n---------------------------------\n";<br />
print "<Your output file name : ";<br />
$output_filename = <STDIN>;<br />
chomp $output_filename;<br />
while ($filename eq $output_filename)<br />
{<br />
print "<This name is same to codon data file name.>\n";<br />
print "<Please input another name!!!> \n";<br />
print "<Your output file name : ";<br />
$output_filename = <STDIN>;<br />
chomp $output_filename;<br />
}<br />
# $output_filename = "$output_filename.txt";<br />
open (TEXT, ">$output_filename.txt"); <br />
my $outputdata = join ("", @amino_acid_data);<br />
# print @amino_acid_data,"\n";<br />
# print $outputdata;<br />
print TEXT $outputdata;<br />
close (TEXT);<br />
print "Success! check your file";<br />
exit;<br />
}<br />
else <br />
{<br />
exit;<br />
}</p>