bio 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+