bio 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. data/bin/bioruby +107 -0
  2. data/bin/br_biofetch.rb +59 -0
  3. data/bin/br_bioflat.rb +294 -0
  4. data/bin/br_biogetseq.rb +57 -0
  5. data/bin/br_pmfetch.rb +431 -0
  6. data/doc/BioRuby.rd.ja +225 -0
  7. data/doc/Changes-0.7.rd +236 -0
  8. data/doc/Design.rd.ja +341 -0
  9. data/doc/KEGG_API.rd +1437 -0
  10. data/doc/KEGG_API.rd.ja +1399 -0
  11. data/doc/TODO.rd.ja +138 -0
  12. data/doc/Tutorial.rd +1138 -0
  13. data/doc/Tutorial.rd.ja +2110 -0
  14. data/etc/bioinformatics/seqdatabase.ini +210 -0
  15. data/lib/bio.rb +256 -0
  16. data/lib/bio/alignment.rb +1906 -0
  17. data/lib/bio/appl/bl2seq/report.rb +350 -0
  18. data/lib/bio/appl/blast.rb +269 -0
  19. data/lib/bio/appl/blast/format0.rb +1402 -0
  20. data/lib/bio/appl/blast/format8.rb +95 -0
  21. data/lib/bio/appl/blast/report.rb +652 -0
  22. data/lib/bio/appl/blast/rexml.rb +151 -0
  23. data/lib/bio/appl/blast/wublast.rb +553 -0
  24. data/lib/bio/appl/blast/xmlparser.rb +222 -0
  25. data/lib/bio/appl/blat/report.rb +392 -0
  26. data/lib/bio/appl/clustalw.rb +191 -0
  27. data/lib/bio/appl/clustalw/report.rb +154 -0
  28. data/lib/bio/appl/emboss.rb +68 -0
  29. data/lib/bio/appl/fasta.rb +262 -0
  30. data/lib/bio/appl/fasta/format10.rb +428 -0
  31. data/lib/bio/appl/fasta/format6.rb +37 -0
  32. data/lib/bio/appl/genscan/report.rb +570 -0
  33. data/lib/bio/appl/hmmer.rb +129 -0
  34. data/lib/bio/appl/hmmer/report.rb +556 -0
  35. data/lib/bio/appl/mafft.rb +222 -0
  36. data/lib/bio/appl/mafft/report.rb +119 -0
  37. data/lib/bio/appl/psort.rb +555 -0
  38. data/lib/bio/appl/psort/report.rb +473 -0
  39. data/lib/bio/appl/sim4.rb +134 -0
  40. data/lib/bio/appl/sim4/report.rb +501 -0
  41. data/lib/bio/appl/sosui/report.rb +166 -0
  42. data/lib/bio/appl/spidey/report.rb +604 -0
  43. data/lib/bio/appl/targetp/report.rb +283 -0
  44. data/lib/bio/appl/tmhmm/report.rb +238 -0
  45. data/lib/bio/command.rb +166 -0
  46. data/lib/bio/data/aa.rb +354 -0
  47. data/lib/bio/data/codontable.rb +740 -0
  48. data/lib/bio/data/na.rb +226 -0
  49. data/lib/bio/db.rb +340 -0
  50. data/lib/bio/db/aaindex.rb +280 -0
  51. data/lib/bio/db/embl/common.rb +332 -0
  52. data/lib/bio/db/embl/embl.rb +446 -0
  53. data/lib/bio/db/embl/sptr.rb +954 -0
  54. data/lib/bio/db/embl/swissprot.rb +32 -0
  55. data/lib/bio/db/embl/trembl.rb +31 -0
  56. data/lib/bio/db/embl/uniprot.rb +32 -0
  57. data/lib/bio/db/fantom.rb +604 -0
  58. data/lib/bio/db/fasta.rb +869 -0
  59. data/lib/bio/db/genbank/common.rb +299 -0
  60. data/lib/bio/db/genbank/ddbj.rb +34 -0
  61. data/lib/bio/db/genbank/genbank.rb +354 -0
  62. data/lib/bio/db/genbank/genpept.rb +73 -0
  63. data/lib/bio/db/genbank/refseq.rb +31 -0
  64. data/lib/bio/db/gff.rb +106 -0
  65. data/lib/bio/db/go.rb +497 -0
  66. data/lib/bio/db/kegg/brite.rb +51 -0
  67. data/lib/bio/db/kegg/cell.rb +88 -0
  68. data/lib/bio/db/kegg/compound.rb +130 -0
  69. data/lib/bio/db/kegg/enzyme.rb +125 -0
  70. data/lib/bio/db/kegg/expression.rb +173 -0
  71. data/lib/bio/db/kegg/genes.rb +293 -0
  72. data/lib/bio/db/kegg/genome.rb +362 -0
  73. data/lib/bio/db/kegg/glycan.rb +213 -0
  74. data/lib/bio/db/kegg/keggtab.rb +418 -0
  75. data/lib/bio/db/kegg/kgml.rb +299 -0
  76. data/lib/bio/db/kegg/ko.rb +178 -0
  77. data/lib/bio/db/kegg/reaction.rb +97 -0
  78. data/lib/bio/db/litdb.rb +131 -0
  79. data/lib/bio/db/medline.rb +317 -0
  80. data/lib/bio/db/nbrf.rb +199 -0
  81. data/lib/bio/db/pdb.rb +38 -0
  82. data/lib/bio/db/pdb/atom.rb +60 -0
  83. data/lib/bio/db/pdb/chain.rb +117 -0
  84. data/lib/bio/db/pdb/model.rb +106 -0
  85. data/lib/bio/db/pdb/pdb.rb +1682 -0
  86. data/lib/bio/db/pdb/residue.rb +122 -0
  87. data/lib/bio/db/pdb/utils.rb +234 -0
  88. data/lib/bio/db/prosite.rb +616 -0
  89. data/lib/bio/db/rebase.rb +417 -0
  90. data/lib/bio/db/transfac.rb +387 -0
  91. data/lib/bio/feature.rb +201 -0
  92. data/lib/bio/io/brdb.rb +103 -0
  93. data/lib/bio/io/das.rb +471 -0
  94. data/lib/bio/io/dbget.rb +212 -0
  95. data/lib/bio/io/ddbjxml.rb +614 -0
  96. data/lib/bio/io/fastacmd.rb +123 -0
  97. data/lib/bio/io/fetch.rb +114 -0
  98. data/lib/bio/io/flatfile.rb +496 -0
  99. data/lib/bio/io/flatfile/bdb.rb +266 -0
  100. data/lib/bio/io/flatfile/index.rb +1308 -0
  101. data/lib/bio/io/flatfile/indexer.rb +778 -0
  102. data/lib/bio/io/higet.rb +92 -0
  103. data/lib/bio/io/keggapi.rb +863 -0
  104. data/lib/bio/io/pubmed.rb +189 -0
  105. data/lib/bio/io/registry.rb +308 -0
  106. data/lib/bio/io/soapwsdl.rb +114 -0
  107. data/lib/bio/io/sql.rb +428 -0
  108. data/lib/bio/location.rb +650 -0
  109. data/lib/bio/pathway.rb +991 -0
  110. data/lib/bio/reference.rb +308 -0
  111. data/lib/bio/sequence.rb +593 -0
  112. data/lib/bio/shell.rb +51 -0
  113. data/lib/bio/shell/core.rb +512 -0
  114. data/lib/bio/shell/plugin/codon.rb +228 -0
  115. data/lib/bio/shell/plugin/entry.rb +85 -0
  116. data/lib/bio/shell/plugin/flatfile.rb +119 -0
  117. data/lib/bio/shell/plugin/keggapi.rb +187 -0
  118. data/lib/bio/shell/plugin/midi.rb +448 -0
  119. data/lib/bio/shell/plugin/obda.rb +63 -0
  120. data/lib/bio/shell/plugin/seq.rb +238 -0
  121. data/lib/bio/shell/session.rb +214 -0
  122. data/lib/bio/util/color_scheme.rb +214 -0
  123. data/lib/bio/util/color_scheme/buried.rb +78 -0
  124. data/lib/bio/util/color_scheme/helix.rb +78 -0
  125. data/lib/bio/util/color_scheme/hydropathy.rb +83 -0
  126. data/lib/bio/util/color_scheme/nucleotide.rb +50 -0
  127. data/lib/bio/util/color_scheme/strand.rb +78 -0
  128. data/lib/bio/util/color_scheme/taylor.rb +69 -0
  129. data/lib/bio/util/color_scheme/turn.rb +78 -0
  130. data/lib/bio/util/color_scheme/zappo.rb +69 -0
  131. data/lib/bio/util/contingency_table.rb +337 -0
  132. data/lib/bio/util/sirna.rb +306 -0
  133. data/lib/bioruby.rb +34 -0
  134. data/sample/biofetch.rb +475 -0
  135. data/sample/color_scheme_na.rb +99 -0
  136. data/sample/dbget +37 -0
  137. data/sample/fasta2tab.rb +99 -0
  138. data/sample/fsplit.rb +51 -0
  139. data/sample/gb2fasta.rb +31 -0
  140. data/sample/gb2tab.rb +325 -0
  141. data/sample/gbtab2mysql.rb +161 -0
  142. data/sample/genes2nuc.rb +33 -0
  143. data/sample/genes2pep.rb +33 -0
  144. data/sample/genes2tab.rb +81 -0
  145. data/sample/genome2rb.rb +29 -0
  146. data/sample/genome2tab.rb +76 -0
  147. data/sample/goslim.rb +311 -0
  148. data/sample/gt2fasta.rb +47 -0
  149. data/sample/pmfetch.rb +42 -0
  150. data/sample/pmsearch.rb +42 -0
  151. data/sample/psortplot_html.rb +222 -0
  152. data/sample/ssearch2tab.rb +96 -0
  153. data/sample/tdiary.rb +158 -0
  154. data/sample/tfastx2tab.rb +100 -0
  155. data/sample/vs-genes.rb +212 -0
  156. data/test/data/SOSUI/sample.report +11 -0
  157. data/test/data/TMHMM/sample.report +21 -0
  158. data/test/data/blast/eco:b0002.faa +15 -0
  159. data/test/data/blast/eco:b0002.faa.m0 +128 -0
  160. data/test/data/blast/eco:b0002.faa.m7 +65 -0
  161. data/test/data/blast/eco:b0002.faa.m8 +1 -0
  162. data/test/data/embl/AB090716.embl +65 -0
  163. data/test/data/genscan/sample.report +63 -0
  164. data/test/data/prosite/prosite.dat +2233 -0
  165. data/test/data/refseq/nm_126355.entret +64 -0
  166. data/test/data/uniprot/p53_human.uniprot +1456 -0
  167. data/test/runner.rb +10 -0
  168. data/test/unit/bio/appl/blast/test_report.rb +427 -0
  169. data/test/unit/bio/appl/blast/test_xmlparser.rb +400 -0
  170. data/test/unit/bio/appl/genscan/test_report.rb +195 -0
  171. data/test/unit/bio/appl/sosui/test_report.rb +94 -0
  172. data/test/unit/bio/appl/targetp/test_report.rb +159 -0
  173. data/test/unit/bio/appl/test_blast.rb +159 -0
  174. data/test/unit/bio/appl/test_fasta.rb +142 -0
  175. data/test/unit/bio/appl/tmhmm/test_report.rb +139 -0
  176. data/test/unit/bio/data/test_aa.rb +103 -0
  177. data/test/unit/bio/data/test_codontable.rb +120 -0
  178. data/test/unit/bio/data/test_na.rb +89 -0
  179. data/test/unit/bio/db/embl/test_common.rb +130 -0
  180. data/test/unit/bio/db/embl/test_embl.rb +227 -0
  181. data/test/unit/bio/db/embl/test_sptr.rb +268 -0
  182. data/test/unit/bio/db/embl/test_uniprot.rb +44 -0
  183. data/test/unit/bio/db/kegg/test_genes.rb +58 -0
  184. data/test/unit/bio/db/test_fasta.rb +263 -0
  185. data/test/unit/bio/db/test_gff.rb +140 -0
  186. data/test/unit/bio/db/test_prosite.rb +1450 -0
  187. data/test/unit/bio/io/test_ddbjxml.rb +87 -0
  188. data/test/unit/bio/io/test_soapwsdl.rb +45 -0
  189. data/test/unit/bio/shell/plugin/test_seq.rb +175 -0
  190. data/test/unit/bio/test_alignment.rb +1028 -0
  191. data/test/unit/bio/test_command.rb +71 -0
  192. data/test/unit/bio/test_db.rb +109 -0
  193. data/test/unit/bio/test_feature.rb +128 -0
  194. data/test/unit/bio/test_location.rb +51 -0
  195. data/test/unit/bio/test_pathway.rb +485 -0
  196. data/test/unit/bio/test_sequence.rb +386 -0
  197. data/test/unit/bio/test_shell.rb +31 -0
  198. data/test/unit/bio/util/test_color_scheme.rb +45 -0
  199. data/test/unit/bio/util/test_contingency_table.rb +106 -0
  200. data/test/unit/bio/util/test_sirna.rb +258 -0
  201. metadata +295 -0
@@ -0,0 +1,740 @@
1
+ #
2
+ # = bio/data/codontable.rb - Codon Table
3
+ #
4
+ # Copyright:: Copyright (C) 2001, 2004
5
+ # Toshiaki Katayama <k@bioruby.org>
6
+ # License:: LGPL
7
+ #
8
+ # $Id: codontable.rb,v 0.16 2005/11/15 12:43:37 k Exp $
9
+ #
10
+ # == Data source
11
+ #
12
+ # Data in this class is converted from the NCBI's genetic codes page.
13
+ #
14
+ # * ((<URL:http://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi?mode=t>))
15
+ #
16
+ # === Examples
17
+ #
18
+ # Obtain a codon table No.1 -- Standard (Eukaryote)
19
+ #
20
+ # table = Bio::CodonTable[1]
21
+ #
22
+ # Obtain a copy of the codon table No.1 to modify. In this example,
23
+ # reassign a seleno cystein ('U') to the 'tga' codon.
24
+ #
25
+ # table = Bio::CodonTable.copy(1)
26
+ # table['tga'] = 'U'
27
+ #
28
+ # Create a new codon table by your own from the Hash which contains
29
+ # pairs of codon and amino acid. You can also define the table name
30
+ # in the second argument.
31
+ #
32
+ # hash = { 'ttt' => 'F', 'ttc' => 'ttc', ... }
33
+ # table = Bio::CodonTable.new(hash, "my codon table")
34
+ #
35
+ # Obtain a translated amino acid by codon.
36
+ #
37
+ # table = Bio::CodonTable[1]
38
+ # table['ttt'] # => F
39
+ #
40
+ # Reverse translation of a amino acid into a list of relevant codons.
41
+ #
42
+ # table = Bio::CodonTable[1]
43
+ # table.revtrans("A") # => ["gcg", "gct", "gca", "gcc"]
44
+ #
45
+ #--
46
+ #
47
+ # This library is free software; you can redistribute it and/or
48
+ # modify it under the terms of the GNU Lesser General Public
49
+ # License as published by the Free Software Foundation; either
50
+ # version 2 of the License, or (at your option) any later version.
51
+ #
52
+ # This library is distributed in the hope that it will be useful,
53
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
54
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
55
+ # Lesser General Public License for more details.
56
+ #
57
+ # You should have received a copy of the GNU Lesser General Public
58
+ # License along with this library; if not, write to the Free Software
59
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
60
+ #
61
+ #++
62
+ #
63
+
64
+ module Bio
65
+
66
+ class CodonTable
67
+
68
+ # Select a codon table by number. This method will return one of the
69
+ # hard coded codon tables in this class as a Bio::CodonTable object.
70
+ def self.[](i)
71
+ hash = TABLES[i]
72
+ raise "ERROR: Unknown codon table No.#{i}" unless hash
73
+ definition = DEFINITIONS[i]
74
+ start = STARTS[i]
75
+ stop = STOPS[i]
76
+ self.new(hash, definition, start, stop)
77
+ end
78
+
79
+ # Similar to Bio::CodonTable[num] but returns a copied codon table.
80
+ # You can modify the codon table without influencing hard coded tables.
81
+ def self.copy(i)
82
+ ct = self[i]
83
+ return Marshal.load(Marshal.dump(ct))
84
+ end
85
+
86
+ # Create your own codon table by giving a Hash table of codons and relevant
87
+ # amino acids. You can also able to define the table's name as a second
88
+ # argument.
89
+ #
90
+ # Two Arrays 'start' and 'stop' can be specified which contains a list of
91
+ # start and stop codons used by 'start_codon?' and 'stop_codon?' methods.
92
+ def initialize(hash, definition = nil, start = [], stop = [])
93
+ @table = hash
94
+ @definition = definition
95
+ @start = start
96
+ @stop = stop.empty? ? generate_stop : stop
97
+ end
98
+
99
+ # Accessor methods for a Hash of the currently selected codon table.
100
+ attr_accessor :table
101
+
102
+ # Accessor methods for the name of the currently selected table.
103
+ attr_accessor :definition
104
+
105
+ # Accessor methods for an Array which contains a list of start or stop
106
+ # codons respectively.
107
+ attr_accessor :start, :stop
108
+
109
+ # Translate a codon into a relevant amino acid. This method is used for
110
+ # translating a DNA sequence into amino acid sequence.
111
+ def [](codon)
112
+ @table[codon]
113
+ end
114
+
115
+ # Modify the codon table. Use with caution as it may break hard coded
116
+ # tables. If you want to modify existing table, you should use copy
117
+ # method instead of [] method to generate CodonTable object to be modified.
118
+ #
119
+ # # This is OK.
120
+ # table = Bio::CodonTable.copy(1)
121
+ # table['tga'] = 'U'
122
+ #
123
+ # # Not recommended as it overrides the hard coded table
124
+ # table = Bio::CodonTable[1]
125
+ # table['tga'] = 'U'
126
+ #
127
+ def []=(codon, aa)
128
+ @table[codon] = aa
129
+ end
130
+
131
+ # Iterates on codon table hash.
132
+ #
133
+ # table = Bio::CodonTable[1]
134
+ # table.each do |codon, aa|
135
+ # puts "#{codon} -- #{aa}"
136
+ # end
137
+ #
138
+ def each(&block)
139
+ @table.each(&block)
140
+ end
141
+
142
+ # Reverse translation of a amino acid into a list of relevant codons.
143
+ #
144
+ # table = Bio::CodonTable[1]
145
+ # table.revtrans("A") # => ["gcg", "gct", "gca", "gcc"]
146
+ #
147
+ def revtrans(aa)
148
+ unless @reverse
149
+ @reverse = {}
150
+ @table.each do |k, v|
151
+ @reverse[v] ||= []
152
+ @reverse[v] << k
153
+ end
154
+ end
155
+ @reverse[aa.upcase]
156
+ end
157
+
158
+ # Returns true if the codon is a start codon in the currently selected
159
+ # codon table, otherwise false.
160
+ def start_codon?(codon)
161
+ @start.include?(codon.downcase)
162
+ end
163
+
164
+ # Returns true if the codon is a stop codon in the currently selected
165
+ # codon table, otherwise false.
166
+ def stop_codon?(codon)
167
+ @stop.include?(codon.downcase)
168
+ end
169
+
170
+ def generate_stop
171
+ list = []
172
+ @table.each do |codon, aa|
173
+ if aa == '*'
174
+ list << codon
175
+ end
176
+ end
177
+ return list
178
+ end
179
+ private :generate_stop
180
+
181
+ DEFINITIONS = {
182
+
183
+ 1 => "Standard (Eukaryote)",
184
+ 2 => "Vertebrate Mitochondrial",
185
+ 3 => "Yeast Mitochondorial",
186
+ 4 => "Mold, Protozoan, Coelenterate Mitochondrial and Mycoplasma/Spiroplasma",
187
+ 5 => "Invertebrate Mitochondrial",
188
+ 6 => "Ciliate Macronuclear and Dasycladacean",
189
+ 9 => "Echinoderm Mitochondrial",
190
+ 10 => "Euplotid Nuclear",
191
+ 11 => "Bacteria",
192
+ 12 => "Alternative Yeast Nuclear",
193
+ 13 => "Ascidian Mitochondrial",
194
+ 14 => "Flatworm Mitochondrial",
195
+ 15 => "Blepharisma Macronuclear",
196
+ 16 => "Chlorophycean Mitochondrial",
197
+ 21 => "Trematode Mitochondrial",
198
+ 22 => "Scenedesmus obliquus mitochondrial",
199
+ 23 => "Thraustochytrium Mitochondrial",
200
+
201
+ }
202
+
203
+
204
+ STARTS = {
205
+ 1 => %w(ttg ctg atg gtg), # gtg added (cf. NCBI #SG1 document)
206
+ 2 => %w(att atc ata atg gtg),
207
+ 3 => %w(ata atg),
208
+ 4 => %w(tta ttg ctg att atc ata atg gtg),
209
+ 5 => %w(ttg att atc ata atg gtg),
210
+ 6 => %w(atg),
211
+ 9 => %w(atg gtg),
212
+ 10 => %w(atg),
213
+ 11 => %w(ttg ctg att atc ata atg gtg),
214
+ 12 => %w(ctg atg),
215
+ 13 => %w(atg),
216
+ 14 => %w(atg),
217
+ 15 => %w(atg),
218
+ 16 => %w(atg),
219
+ 21 => %w(atg gtg),
220
+ 22 => %w(atg),
221
+ 23 => %w(att atg gtg),
222
+ }
223
+
224
+
225
+ STOPS = {
226
+ 1 => %w(taa tag tga),
227
+ 2 => %w(taa tag aga agg),
228
+ 3 => %w(taa tag),
229
+ 4 => %w(taa tag),
230
+ 5 => %w(taa tag),
231
+ 6 => %w(tga),
232
+ 9 => %w(taa tag),
233
+ 10 => %w(taa tag),
234
+ 11 => %w(taa tag tga),
235
+ 12 => %w(taa tag tga),
236
+ 13 => %w(taa tag),
237
+ 14 => %w(tag),
238
+ 15 => %w(taa tga),
239
+ 16 => %w(taa tga),
240
+ 21 => %w(taa tag),
241
+ 22 => %w(tca taa tga),
242
+ 23 => %w(tta taa tag tga),
243
+ }
244
+
245
+
246
+ TABLES = {
247
+
248
+ # codon table 1
249
+ 1 => {
250
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
251
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
252
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => '*',
253
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
254
+
255
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
256
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
257
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
258
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
259
+
260
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
261
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
262
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
263
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
264
+
265
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
266
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
267
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
268
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
269
+ },
270
+
271
+ # codon table 2
272
+ 2 => {
273
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
274
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
275
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
276
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
277
+
278
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
279
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
280
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
281
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
282
+
283
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
284
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
285
+ 'ata' => 'M', 'aca' => 'T', 'aaa' => 'K', 'aga' => '*',
286
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => '*',
287
+
288
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
289
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
290
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
291
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
292
+ },
293
+
294
+
295
+ # codon table 3
296
+ 3 => {
297
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
298
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
299
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
300
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
301
+
302
+ 'ctt' => 'T', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
303
+ 'ctc' => 'T', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
304
+ 'cta' => 'T', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
305
+ 'ctg' => 'T', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
306
+
307
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
308
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
309
+ 'ata' => 'M', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
310
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
311
+
312
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
313
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
314
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
315
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
316
+ },
317
+
318
+ # codon table 4
319
+ 4 => {
320
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
321
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
322
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
323
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
324
+
325
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
326
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
327
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
328
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
329
+
330
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
331
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
332
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
333
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
334
+
335
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
336
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
337
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
338
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
339
+ },
340
+
341
+ # codon table 5
342
+ 5 => {
343
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
344
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
345
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
346
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
347
+
348
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
349
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
350
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
351
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
352
+
353
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
354
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
355
+ 'ata' => 'M', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'S',
356
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'S',
357
+
358
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
359
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
360
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
361
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
362
+ },
363
+
364
+ # codon table 6
365
+ 6 => {
366
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
367
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
368
+ 'tta' => 'L', 'tca' => 'S', 'taa' => 'Q', 'tga' => '*',
369
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => 'Q', 'tgg' => 'W',
370
+
371
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
372
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
373
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
374
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
375
+
376
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
377
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
378
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
379
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
380
+
381
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
382
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
383
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
384
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
385
+ },
386
+
387
+ # codon table 9
388
+ 9 => {
389
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
390
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
391
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
392
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
393
+
394
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
395
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
396
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
397
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
398
+
399
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
400
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
401
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'N', 'aga' => 'S',
402
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'S',
403
+
404
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
405
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
406
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
407
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
408
+ },
409
+
410
+ # codon table 10
411
+ 10 => {
412
+
413
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
414
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
415
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'C',
416
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
417
+
418
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
419
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
420
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
421
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
422
+
423
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
424
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
425
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
426
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
427
+
428
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
429
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
430
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
431
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
432
+ },
433
+
434
+ # codon table 11
435
+ 11 => {
436
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
437
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
438
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => '*',
439
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
440
+
441
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
442
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
443
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
444
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
445
+
446
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
447
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
448
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
449
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
450
+
451
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
452
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
453
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
454
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
455
+ },
456
+
457
+ # codon table 12
458
+ 12 => {
459
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
460
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
461
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => '*',
462
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
463
+
464
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
465
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
466
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
467
+ 'ctg' => 'S', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
468
+
469
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
470
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
471
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
472
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
473
+
474
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
475
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
476
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
477
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
478
+ },
479
+
480
+ # codon table 13
481
+ 13 => {
482
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
483
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
484
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
485
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
486
+
487
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
488
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
489
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
490
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
491
+
492
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
493
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
494
+ 'ata' => 'M', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'G',
495
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'G',
496
+
497
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
498
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
499
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
500
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
501
+ },
502
+
503
+ # codon table 14
504
+ 14 => {
505
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
506
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
507
+ 'tta' => 'L', 'tca' => 'S', 'taa' => 'Y', 'tga' => 'W',
508
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
509
+
510
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
511
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
512
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
513
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
514
+
515
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
516
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
517
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'N', 'aga' => 'S',
518
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'S',
519
+
520
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
521
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
522
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
523
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
524
+ },
525
+
526
+ # codon table 15
527
+ 15 => {
528
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
529
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
530
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => '*',
531
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => 'Q', 'tgg' => 'W',
532
+
533
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
534
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
535
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
536
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
537
+
538
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
539
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
540
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
541
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
542
+
543
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
544
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
545
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
546
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
547
+ },
548
+
549
+ # codon table 16
550
+ 16 => {
551
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
552
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
553
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => '*',
554
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => 'L', 'tgg' => 'W',
555
+
556
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
557
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
558
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
559
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
560
+
561
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
562
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
563
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
564
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
565
+
566
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
567
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
568
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
569
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
570
+ },
571
+
572
+ # codon table 21
573
+ 21 => {
574
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
575
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
576
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'W',
577
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
578
+
579
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
580
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
581
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
582
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
583
+
584
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
585
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
586
+ 'ata' => 'M', 'aca' => 'T', 'aaa' => 'N', 'aga' => 'S',
587
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'S',
588
+
589
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
590
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
591
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
592
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
593
+ },
594
+
595
+ # codon table 22
596
+ 22 => {
597
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
598
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
599
+ 'tta' => 'L', 'tca' => '*', 'taa' => '*', 'tga' => '*',
600
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => 'L', 'tgg' => 'W',
601
+
602
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
603
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
604
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
605
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
606
+
607
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
608
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
609
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
610
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
611
+
612
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
613
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
614
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
615
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
616
+ },
617
+
618
+ # codon table 23
619
+ 23 => {
620
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
621
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
622
+ 'tta' => '*', 'tca' => 'S', 'taa' => '*', 'tga' => '*',
623
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
624
+
625
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
626
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
627
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
628
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
629
+
630
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
631
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
632
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
633
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
634
+
635
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
636
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
637
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
638
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
639
+ },
640
+
641
+ }
642
+
643
+ end # CodonTable
644
+
645
+ end # module Bio
646
+
647
+
648
+ if __FILE__ == $0
649
+
650
+ begin
651
+ require 'pp'
652
+ alias p pp
653
+ rescue LoadError
654
+ end
655
+
656
+ puts "### Bio::CodonTable[1]"
657
+ p ct1 = Bio::CodonTable[1]
658
+
659
+ puts ">>> Bio::CodonTable#table"
660
+ p ct1.table
661
+
662
+ puts ">>> Bio::CodonTable#each"
663
+ ct1.each do |codon, aa|
664
+ puts "#{codon} -- #{aa}"
665
+ end
666
+
667
+ puts ">>> Bio::CodonTable#definition"
668
+ p ct1.definition
669
+
670
+ puts ">>> Bio::CodonTable#['atg']"
671
+ p ct1['atg']
672
+
673
+ puts ">>> Bio::CodonTable#revtrans('A')"
674
+ p ct1.revtrans('A')
675
+
676
+ puts ">>> Bio::CodonTable#start_codon?('atg')"
677
+ p ct1.start_codon?('atg')
678
+
679
+ puts ">>> Bio::CodonTable#start_codon?('aaa')"
680
+ p ct1.start_codon?('aaa')
681
+
682
+ puts ">>> Bio::CodonTable#stop_codon?('tag')"
683
+ p ct1.stop_codon?('tag')
684
+
685
+ puts ">>> Bio::CodonTable#stop_codon?('aaa')"
686
+ p ct1.stop_codon?('aaa')
687
+
688
+ puts ">>> ct1_copy = Bio::CodonTable.copy(1)"
689
+ p ct1_copy = Bio::CodonTable.copy(1)
690
+ puts ">>> ct1_copy['tga'] = 'U'"
691
+ p ct1_copy['tga'] = 'U'
692
+ puts " orig : #{ct1['tga']}"
693
+ puts " copy : #{ct1_copy['tga']}"
694
+
695
+
696
+ puts "### ct = Bio::CodonTable.new(hash, definition)"
697
+ hash = {
698
+ 'ttt' => 'F', 'tct' => 'S', 'tat' => 'Y', 'tgt' => 'C',
699
+ 'ttc' => 'F', 'tcc' => 'S', 'tac' => 'Y', 'tgc' => 'C',
700
+ 'tta' => 'L', 'tca' => 'S', 'taa' => '*', 'tga' => 'U',
701
+ 'ttg' => 'L', 'tcg' => 'S', 'tag' => '*', 'tgg' => 'W',
702
+
703
+ 'ctt' => 'L', 'cct' => 'P', 'cat' => 'H', 'cgt' => 'R',
704
+ 'ctc' => 'L', 'ccc' => 'P', 'cac' => 'H', 'cgc' => 'R',
705
+ 'cta' => 'L', 'cca' => 'P', 'caa' => 'Q', 'cga' => 'R',
706
+ 'ctg' => 'L', 'ccg' => 'P', 'cag' => 'Q', 'cgg' => 'R',
707
+
708
+ 'att' => 'I', 'act' => 'T', 'aat' => 'N', 'agt' => 'S',
709
+ 'atc' => 'I', 'acc' => 'T', 'aac' => 'N', 'agc' => 'S',
710
+ 'ata' => 'I', 'aca' => 'T', 'aaa' => 'K', 'aga' => 'R',
711
+ 'atg' => 'M', 'acg' => 'T', 'aag' => 'K', 'agg' => 'R',
712
+
713
+ 'gtt' => 'V', 'gct' => 'A', 'gat' => 'D', 'ggt' => 'G',
714
+ 'gtc' => 'V', 'gcc' => 'A', 'gac' => 'D', 'ggc' => 'G',
715
+ 'gta' => 'V', 'gca' => 'A', 'gaa' => 'E', 'gga' => 'G',
716
+ 'gtg' => 'V', 'gcg' => 'A', 'gag' => 'E', 'ggg' => 'G',
717
+ }
718
+ my_ct = Bio::CodonTable.new(hash, "my codon table")
719
+
720
+ puts ">>> ct.definition"
721
+ puts my_ct.definition
722
+
723
+ puts ">>> ct.definition=(str)"
724
+ my_ct.definition = "selenoproteins (Eukaryote)"
725
+ puts my_ct.definition
726
+
727
+ puts ">>> ct['tga']"
728
+ puts my_ct['tga']
729
+
730
+ puts ">>> ct.revtrans('U')"
731
+ puts my_ct.revtrans('U')
732
+
733
+ puts ">>> ct.stop_codon?('tga')"
734
+ puts my_ct.stop_codon?('tga')
735
+
736
+ puts ">>> ct.stop_codon?('tag')"
737
+ puts my_ct.stop_codon?('tag')
738
+
739
+ end
740
+