annotate SNV/identify_nonsynonymous_mutations.pl @ 7:351b3acadd17 default tip

Uploaded
author ryanmorin
date Tue, 18 Oct 2011 18:33:15 -0400
parents 74f5ea818cea
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
1 #!/usr/bin/perl
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
2 #Author: Ryan Morin (rmorin@bcgsc.ca)
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
3 #last modified February, 2010 to match improvements to codon lookup table
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
4 #Script to annotate files that have been joined with an appropriate 'codon lookup' table.
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
5 #example usage: sort -k 1 snp_file.txt | join codon_lookup.sort - | this_script.pl
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
6 #Transcript information and amino acid/codon position information is used to report the amino acid change in this format: N123M where N is the original amino acid at position 123 and M is the new amino acid.
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
7 #Transcripts with the same reading frame for position 123 are separated by commas. Distinct reading frames for the affected position are separated by a semi-colon (e.g. 123 = 155 in another isoform)
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
8 #an example of the codon lookup table:
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
9 #chr10:101658781 ENSG00000107554 -1 GAA 3 37;79;791; ENST00000393570;ENST00000370423;ENST00000324109,ENST00000342239;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
10 #hence, chr10:101658781 corresponds to the third position in a GAA codon which is amino acid 791 in both ENST00000324109 ENST00000342239, amino acid 79 in ENST00000370423 and 37 in ENST00000393570
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
11
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
12 use strict;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
13 use Data::Dumper;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
14 use Getopt::Std;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
15 use vars qw($opt_h);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
16 getopts("h");
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
17
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
18 my %lookup;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
19
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
20 load_ambig();
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
21 my %codons = codons();
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
22
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
23 my $requested_header = $opt_h;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
24
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
25 my $header_printed;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
26 if($requested_header){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
27 $header_printed = 0;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
28 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
29 else{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
30 $header_printed = 1;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
31 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
32 while(<STDIN>){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
33
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
34 chomp;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
35 my $line = $_;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
36
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
37 my @cols = split /\s/, $line;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
38 my $ncols = @cols;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
39 unless($header_printed){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
40 print "\#CHR:POSITION GENE STRAND REF_CODON CODON_POSITION REFBASE IUPAC_BASE_CALL MINOR_ALLELE_REPRESENTATION NEW_CODON REF_AA NEW_AA STATUS";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
41 print "\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
42 $header_printed = 1;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
43 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
44
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
45 my $gene = $cols[1];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
46 my $strand = $cols[2];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
47 my $codon = $cols[3];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
48 unless ($codon =~ /[ACTG]{3}/){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
49 print "\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
50 next;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
51 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
52 my $codon_pos = $cols[4];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
53 my $aa_pos = $cols[5];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
54 my @transcript_strings = split /;/, $cols[6];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
55
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
56 my $ref = uc($cols[7]);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
57 my $amb = uc($cols[8]);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
58 my $mut = amb_lookup($amb,$ref,$cols[0]);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
59 next if $mut == -1;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
60 my $mut_cor = $mut;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
61
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
62 my $ref_cor = $ref;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
63 if($strand < 0){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
64 $mut_cor =~ tr/ACTG/TGAC/;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
65 $ref_cor =~ tr/ACTG/TGAC/;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
66 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
67 my @three = split //, $codon;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
68 #sanity check
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
69
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
70 my $codon_ind = $codon_pos -1;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
71 my $orig = $three[$codon_ind];
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
72 if($orig ne $ref_cor){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
73 print STDERR "$cols[0]\tERROR, base $ref is not the same as codon position $codon_pos ($orig)\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
74 s/1\s\w{3}\s\d\s/1 UNKNOWN 0 /;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
75 print "$line";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
76 print " UNKNOWN\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
77 next;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
78
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
79 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
80 else{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
81 #ok, print normal leader line and continue to downstream work
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
82 print "$line";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
83 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
84 $three[$codon_ind] = $mut_cor;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
85 my $new_codon = join "", @three;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
86 print " $new_codon ";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
87
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
88 my $old_aa = translate($codon);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
89 my $new_aa = translate($new_codon);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
90
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
91 my $type = "CODING";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
92 if($old_aa eq $new_aa){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
93 $type = "SYNONYMOUS";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
94 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
95
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
96 my $aa_string;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
97
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
98 my @aa_positions = split /;/, $aa_pos;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
99 for(my $i = 0;$i<@aa_positions;$i++){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
100 my $string = $old_aa . $aa_positions[$i] . $new_aa;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
101 $aa_string .= "$string;";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
102 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
103 chop($aa_string);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
104 print "$old_aa $new_aa $type $aa_string\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
105 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
106
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
107 sub amb_lookup{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
108 my $amb = shift;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
109 my $ref = shift;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
110 my $pos = shift;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
111 if($amb =~ /[ACTG]/){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
112 #print "$amb\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
113 return($amb);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
114 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
115 #print "LOOKUP: $amb\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
116 my @all = @{$lookup{$amb}};
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
117 #print Dumper @all;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
118 my @some;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
119 for(@all){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
120 next if $_ eq $ref;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
121 push @some, $_;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
122
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
123 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
124 if(@some > 1){
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
125 #print Dumper @some;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
126 print STDERR "$pos\t$ref\t$amb\ttwo bases at this position, neither is reference\n";
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
127 return(-1);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
128 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
129 return($some[0]);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
130 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
131
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
132 sub load_ambig{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
133 add('M',qw(A C));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
134 add('R',qw(A G));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
135 add('W',qw(A T));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
136 add('S',qw(C G));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
137 add('Y',qw(T C));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
138 add('K',qw(T G));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
139 add('V',qw(A C G));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
140 add('H',qw(A C T));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
141 add('D',qw(A G T));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
142 add('B',qw(C G T));
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
143 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
144
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
145 sub add{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
146
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
147 my $amb = shift;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
148 my @copy = @_;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
149 $lookup{$amb} = \@copy;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
150 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
151 sub translate{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
152 my $codon = shift;
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
153 return($codons{$codon});
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
154 }
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
155 sub codons{
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
156 my %codons = (
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
157 'TCA' => 'S', # Serine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
158 'TCC' => 'S', # Serine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
159 'TCG' => 'S', # Serine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
160 'TCT' => 'S', # Serine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
161 'TTC' => 'F', # Phenylalanine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
162 'TTT' => 'F', # Phenylalanine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
163 'TTA' => 'L', # Leucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
164 'TTG' => 'L', # Leucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
165 'TAC' => 'Y', # Tyrosine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
166 'TAT' => 'Y', # Tyrosine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
167 'TAA' => '*', # Stop
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
168 'TAG' => '*', # Stop
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
169 'TGC' => 'C', # Cysteine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
170 'TGT' => 'C', # Cysteine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
171 'TGA' => '*', # Stop
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
172 'TGG' => 'W', # Tryptophan
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
173 'CTA' => 'L', # Leucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
174 'CTC' => 'L', # Leucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
175 'CTG' => 'L', # Leucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
176 'CTT' => 'L', # Leucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
177 'CCA' => 'P', # Proline
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
178 'CCC' => 'P', # Proline
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
179 'CCG' => 'P', # Proline
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
180 'CCT' => 'P', # Proline
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
181 'CAC' => 'H', # Histidine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
182 'CAT' => 'H', # Histidine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
183 'CAA' => 'Q', # Glutamine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
184 'CAG' => 'Q', # Glutamine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
185 'CGA' => 'R', # Arginine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
186 'CGC' => 'R', # Arginine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
187 'CGG' => 'R', # Arginine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
188 'CGT' => 'R', # Arginine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
189 'ATA' => 'I', # Isoleucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
190 'ATC' => 'I', # Isoleucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
191 'ATT' => 'I', # Isoleucine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
192 'ATG' => 'M', # Methionine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
193 'ACA' => 'T', # Threonine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
194 'ACC' => 'T', # Threonine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
195 'ACG' => 'T', # Threonine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
196 'ACT' => 'T', # Threonine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
197 'AAC' => 'N', # Asparagine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
198 'AAT' => 'N', # Asparagine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
199 'AAA' => 'K', # Lysine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
200 'AAG' => 'K', # Lysine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
201 'AGC' => 'S', # Serine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
202 'AGT' => 'S', # Serine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
203 'AGA' => 'R', # Arginine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
204 'AGG' => 'R', # Arginine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
205 'GTA' => 'V', # Valine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
206 'GTC' => 'V', # Valine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
207 'GTG' => 'V', # Valine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
208 'GTT' => 'V', # Valine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
209 'GCA' => 'A', # Alanine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
210 'GCC' => 'A', # Alanine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
211 'GCG' => 'A', # Alanine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
212 'GCT' => 'A', # Alanine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
213 'GAC' => 'D', # Aspartic Acid
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
214 'GAT' => 'D', # Aspartic Acid
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
215 'GAA' => 'E', # Glutamic Acid
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
216 'GAG' => 'E', # Glutamic Acid
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
217 'GGA' => 'G', # Glycine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
218 'GGC' => 'G', # Glycine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
219 'GGG' => 'G', # Glycine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
220 'GGT' => 'G', # Glycine
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
221 );
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
222 return(%codons);
74f5ea818cea Uploaded
ryanmorin
parents:
diff changeset
223 }