bio 1.0.0 → 1.1.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 (340) hide show
  1. data/bin/bioruby +14 -122
  2. data/bin/br_biofetch.rb +2 -2
  3. data/bin/br_bioflat.rb +2 -2
  4. data/bin/br_biogetseq.rb +2 -2
  5. data/bin/br_pmfetch.rb +3 -3
  6. data/doc/Changes-0.7.rd +77 -0
  7. data/doc/KEGG_API.rd +523 -232
  8. data/doc/KEGG_API.rd.ja +529 -207
  9. data/doc/Tutorial.rd +48 -11
  10. data/lib/bio.rb +59 -6
  11. data/lib/bio/alignment.rb +713 -103
  12. data/lib/bio/appl/bl2seq/report.rb +2 -18
  13. data/lib/bio/appl/blast.rb +108 -91
  14. data/lib/bio/appl/blast/format0.rb +33 -18
  15. data/lib/bio/appl/blast/format8.rb +6 -20
  16. data/lib/bio/appl/blast/report.rb +293 -429
  17. data/lib/bio/appl/blast/rexml.rb +8 -22
  18. data/lib/bio/appl/blast/wublast.rb +21 -12
  19. data/lib/bio/appl/blast/xmlparser.rb +180 -183
  20. data/lib/bio/appl/blat/report.rb +127 -30
  21. data/lib/bio/appl/clustalw.rb +87 -59
  22. data/lib/bio/appl/clustalw/report.rb +20 -22
  23. data/lib/bio/appl/emboss.rb +113 -20
  24. data/lib/bio/appl/fasta.rb +173 -198
  25. data/lib/bio/appl/fasta/format10.rb +244 -347
  26. data/lib/bio/appl/gcg/msf.rb +212 -0
  27. data/lib/bio/appl/gcg/seq.rb +195 -0
  28. data/lib/bio/appl/genscan/report.rb +5 -23
  29. data/lib/bio/appl/hmmer.rb +8 -45
  30. data/lib/bio/appl/hmmer/report.rb +2 -20
  31. data/lib/bio/appl/iprscan/report.rb +374 -0
  32. data/lib/bio/appl/mafft.rb +87 -50
  33. data/lib/bio/appl/mafft/report.rb +151 -44
  34. data/lib/bio/appl/muscle.rb +52 -0
  35. data/lib/bio/appl/phylip/alignment.rb +129 -0
  36. data/lib/bio/appl/phylip/distance_matrix.rb +96 -0
  37. data/lib/bio/appl/probcons.rb +41 -0
  38. data/lib/bio/appl/psort.rb +89 -96
  39. data/lib/bio/appl/psort/report.rb +6 -22
  40. data/lib/bio/appl/pts1.rb +263 -0
  41. data/lib/bio/appl/sim4.rb +26 -36
  42. data/lib/bio/appl/sim4/report.rb +2 -18
  43. data/lib/bio/appl/sosui/report.rb +5 -20
  44. data/lib/bio/appl/spidey/report.rb +2 -2
  45. data/lib/bio/appl/targetp/report.rb +4 -20
  46. data/lib/bio/appl/tcoffee.rb +55 -0
  47. data/lib/bio/appl/tmhmm/report.rb +4 -20
  48. data/lib/bio/command.rb +235 -64
  49. data/lib/bio/data/aa.rb +21 -26
  50. data/lib/bio/data/codontable.rb +2 -20
  51. data/lib/bio/data/na.rb +19 -4
  52. data/lib/bio/db.rb +27 -12
  53. data/lib/bio/db/aaindex.rb +2 -20
  54. data/lib/bio/db/embl/common.rb +4 -21
  55. data/lib/bio/db/embl/embl.rb +33 -85
  56. data/lib/bio/db/embl/sptr.rb +612 -302
  57. data/lib/bio/db/embl/swissprot.rb +10 -29
  58. data/lib/bio/db/embl/trembl.rb +10 -29
  59. data/lib/bio/db/embl/uniprot.rb +10 -29
  60. data/lib/bio/db/fantom.rb +15 -20
  61. data/lib/bio/db/fasta.rb +3 -3
  62. data/lib/bio/db/genbank/common.rb +37 -46
  63. data/lib/bio/db/genbank/ddbj.rb +6 -18
  64. data/lib/bio/db/genbank/genbank.rb +47 -186
  65. data/lib/bio/db/genbank/genpept.rb +4 -17
  66. data/lib/bio/db/genbank/refseq.rb +4 -17
  67. data/lib/bio/db/gff.rb +103 -35
  68. data/lib/bio/db/go.rb +4 -20
  69. data/lib/bio/db/kegg/brite.rb +26 -36
  70. data/lib/bio/db/kegg/compound.rb +81 -85
  71. data/lib/bio/db/kegg/drug.rb +98 -0
  72. data/lib/bio/db/kegg/enzyme.rb +133 -110
  73. data/lib/bio/db/kegg/expression.rb +2 -20
  74. data/lib/bio/db/kegg/genes.rb +208 -238
  75. data/lib/bio/db/kegg/genome.rb +164 -285
  76. data/lib/bio/db/kegg/glycan.rb +114 -157
  77. data/lib/bio/db/kegg/keggtab.rb +242 -303
  78. data/lib/bio/db/kegg/kgml.rb +117 -160
  79. data/lib/bio/db/kegg/orthology.rb +112 -0
  80. data/lib/bio/db/kegg/reaction.rb +54 -69
  81. data/lib/bio/db/kegg/taxonomy.rb +331 -0
  82. data/lib/bio/db/lasergene.rb +209 -0
  83. data/lib/bio/db/litdb.rb +3 -27
  84. data/lib/bio/db/medline.rb +228 -249
  85. data/lib/bio/db/nbrf.rb +3 -3
  86. data/lib/bio/db/newick.rb +510 -0
  87. data/lib/bio/db/nexus.rb +1854 -0
  88. data/lib/bio/db/pdb.rb +5 -17
  89. data/lib/bio/db/pdb/atom.rb +2 -18
  90. data/lib/bio/db/pdb/chain.rb +2 -18
  91. data/lib/bio/db/pdb/chemicalcomponent.rb +2 -18
  92. data/lib/bio/db/pdb/model.rb +2 -18
  93. data/lib/bio/db/pdb/pdb.rb +73 -34
  94. data/lib/bio/db/pdb/residue.rb +4 -20
  95. data/lib/bio/db/pdb/utils.rb +2 -18
  96. data/lib/bio/db/prosite.rb +403 -422
  97. data/lib/bio/db/rebase.rb +84 -40
  98. data/lib/bio/db/soft.rb +404 -0
  99. data/lib/bio/db/transfac.rb +5 -17
  100. data/lib/bio/feature.rb +106 -52
  101. data/lib/bio/io/das.rb +32 -42
  102. data/lib/bio/io/dbget.rb +2 -20
  103. data/lib/bio/io/ddbjxml.rb +77 -138
  104. data/lib/bio/io/ebisoap.rb +158 -0
  105. data/lib/bio/io/ensembl.rb +229 -0
  106. data/lib/bio/io/fastacmd.rb +89 -82
  107. data/lib/bio/io/fetch.rb +163 -96
  108. data/lib/bio/io/flatfile.rb +170 -73
  109. data/lib/bio/io/flatfile/bdb.rb +3 -16
  110. data/lib/bio/io/flatfile/index.rb +2 -2
  111. data/lib/bio/io/flatfile/indexer.rb +3 -2
  112. data/lib/bio/io/higet.rb +12 -31
  113. data/lib/bio/io/keggapi.rb +210 -269
  114. data/lib/bio/io/ncbisoap.rb +155 -0
  115. data/lib/bio/io/pubmed.rb +169 -147
  116. data/lib/bio/io/registry.rb +4 -20
  117. data/lib/bio/io/soapwsdl.rb +43 -38
  118. data/lib/bio/io/sql.rb +242 -305
  119. data/lib/bio/location.rb +407 -285
  120. data/lib/bio/map.rb +410 -0
  121. data/lib/bio/pathway.rb +558 -695
  122. data/lib/bio/reference.rb +272 -75
  123. data/lib/bio/sequence.rb +255 -13
  124. data/lib/bio/sequence/aa.rb +71 -10
  125. data/lib/bio/sequence/common.rb +187 -33
  126. data/lib/bio/sequence/compat.rb +59 -4
  127. data/lib/bio/sequence/format.rb +54 -7
  128. data/lib/bio/sequence/generic.rb +3 -3
  129. data/lib/bio/sequence/na.rb +328 -26
  130. data/lib/bio/shell.rb +11 -4
  131. data/lib/bio/shell/core.rb +221 -160
  132. data/lib/bio/shell/demo.rb +18 -15
  133. data/lib/bio/shell/interface.rb +14 -12
  134. data/lib/bio/shell/irb.rb +95 -0
  135. data/lib/bio/shell/object.rb +45 -26
  136. data/lib/bio/shell/plugin/blast.rb +42 -0
  137. data/lib/bio/shell/plugin/codon.rb +22 -14
  138. data/lib/bio/shell/plugin/das.rb +58 -0
  139. data/lib/bio/shell/plugin/emboss.rb +2 -2
  140. data/lib/bio/shell/plugin/entry.rb +22 -11
  141. data/lib/bio/shell/plugin/flatfile.rb +2 -2
  142. data/lib/bio/shell/plugin/keggapi.rb +13 -6
  143. data/lib/bio/shell/plugin/midi.rb +4 -4
  144. data/lib/bio/shell/plugin/obda.rb +2 -2
  145. data/lib/bio/shell/plugin/psort.rb +56 -0
  146. data/lib/bio/shell/plugin/seq.rb +35 -8
  147. data/lib/bio/shell/plugin/soap.rb +87 -0
  148. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/bioruby_generator.rb +29 -0
  149. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_classes.rhtml +4 -0
  150. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_log.rhtml +27 -0
  151. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_methods.rhtml +11 -0
  152. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_modules.rhtml +4 -0
  153. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_variables.rhtml +7 -0
  154. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby-bg.gif +0 -0
  155. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby-console.png +0 -0
  156. data/lib/bio/shell/rails/{public/images/icon.png → vendor/plugins/generators/bioruby/templates/bioruby-gem.png} +0 -0
  157. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby-link.gif +0 -0
  158. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby.css +369 -0
  159. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby.rhtml +47 -0
  160. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby_controller.rb +144 -0
  161. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby_helper.rb +47 -0
  162. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/commands.rhtml +8 -0
  163. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/history.rhtml +10 -0
  164. data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/index.rhtml +22 -0
  165. data/lib/bio/shell/script.rb +25 -0
  166. data/lib/bio/shell/setup.rb +109 -0
  167. data/lib/bio/shell/web.rb +70 -58
  168. data/lib/bio/tree.rb +850 -0
  169. data/lib/bio/util/color_scheme.rb +84 -107
  170. data/lib/bio/util/color_scheme/buried.rb +5 -24
  171. data/lib/bio/util/color_scheme/helix.rb +5 -24
  172. data/lib/bio/util/color_scheme/hydropathy.rb +5 -24
  173. data/lib/bio/util/color_scheme/nucleotide.rb +5 -24
  174. data/lib/bio/util/color_scheme/strand.rb +5 -24
  175. data/lib/bio/util/color_scheme/taylor.rb +5 -24
  176. data/lib/bio/util/color_scheme/turn.rb +5 -24
  177. data/lib/bio/util/color_scheme/zappo.rb +5 -24
  178. data/lib/bio/util/contingency_table.rb +70 -43
  179. data/lib/bio/util/restriction_enzyme.rb +228 -0
  180. data/lib/bio/util/restriction_enzyme/analysis.rb +249 -0
  181. data/lib/bio/util/restriction_enzyme/analysis_basic.rb +217 -0
  182. data/lib/bio/util/restriction_enzyme/cut_symbol.rb +107 -0
  183. data/lib/bio/util/restriction_enzyme/double_stranded.rb +321 -0
  184. data/lib/bio/util/restriction_enzyme/double_stranded/aligned_strands.rb +130 -0
  185. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair.rb +103 -0
  186. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair_in_enzyme_notation.rb +38 -0
  187. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations.rb +76 -0
  188. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations_in_enzyme_notation.rb +107 -0
  189. data/lib/bio/util/restriction_enzyme/enzymes.yaml +7061 -0
  190. data/lib/bio/util/restriction_enzyme/range/cut_range.rb +24 -0
  191. data/lib/bio/util/restriction_enzyme/range/cut_ranges.rb +47 -0
  192. data/lib/bio/util/restriction_enzyme/range/horizontal_cut_range.rb +67 -0
  193. data/lib/bio/util/restriction_enzyme/range/sequence_range.rb +257 -0
  194. data/lib/bio/util/restriction_enzyme/range/sequence_range/calculated_cuts.rb +242 -0
  195. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragment.rb +51 -0
  196. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragments.rb +41 -0
  197. data/lib/bio/util/restriction_enzyme/range/vertical_cut_range.rb +77 -0
  198. data/lib/bio/util/restriction_enzyme/single_strand.rb +199 -0
  199. data/lib/bio/util/restriction_enzyme/single_strand/cut_locations_in_enzyme_notation.rb +135 -0
  200. data/lib/bio/util/restriction_enzyme/single_strand_complement.rb +23 -0
  201. data/lib/bio/util/restriction_enzyme/string_formatting.rb +111 -0
  202. data/lib/bio/util/sirna.rb +4 -22
  203. data/sample/color_scheme_na.rb +4 -12
  204. data/sample/enzymes.rb +78 -0
  205. data/sample/goslim.rb +5 -13
  206. data/sample/psortplot_html.rb +4 -12
  207. data/test/data/blast/2.2.15.blastp.m7 +876 -0
  208. data/test/data/embl/AB090716.embl.rel89 +63 -0
  209. data/test/data/fasta/example1.txt +75 -0
  210. data/test/data/fasta/example2.txt +21 -0
  211. data/test/data/iprscan/merged.raw +32 -0
  212. data/test/data/iprscan/merged.txt +74 -0
  213. data/test/data/soft/GDS100_partial.soft +92 -0
  214. data/test/data/soft/GSE3457_family_partial.soft +874 -0
  215. data/test/functional/bio/io/test_ensembl.rb +103 -0
  216. data/test/functional/bio/io/test_soapwsdl.rb +5 -17
  217. data/test/unit/bio/appl/bl2seq/test_report.rb +2 -2
  218. data/test/unit/bio/appl/blast/test_report.rb +3 -16
  219. data/test/unit/bio/appl/blast/test_xmlparser.rb +4 -16
  220. data/test/unit/bio/appl/genscan/test_report.rb +3 -16
  221. data/test/unit/bio/appl/hmmer/test_report.rb +3 -16
  222. data/test/unit/bio/appl/iprscan/test_report.rb +338 -0
  223. data/test/unit/bio/appl/mafft/test_report.rb +63 -0
  224. data/test/unit/bio/appl/sosui/test_report.rb +3 -16
  225. data/test/unit/bio/appl/targetp/test_report.rb +3 -16
  226. data/test/unit/bio/appl/test_blast.rb +3 -16
  227. data/test/unit/bio/appl/test_fasta.rb +4 -16
  228. data/test/unit/bio/appl/test_pts1.rb +140 -0
  229. data/test/unit/bio/appl/tmhmm/test_report.rb +3 -16
  230. data/test/unit/bio/data/test_aa.rb +4 -17
  231. data/test/unit/bio/data/test_codontable.rb +3 -16
  232. data/test/unit/bio/data/test_na.rb +3 -3
  233. data/test/unit/bio/db/embl/test_common.rb +3 -16
  234. data/test/unit/bio/db/embl/test_embl.rb +3 -16
  235. data/test/unit/bio/db/embl/test_embl_rel89.rb +219 -0
  236. data/test/unit/bio/db/embl/test_sptr.rb +1548 -41
  237. data/test/unit/bio/db/embl/test_uniprot.rb +3 -16
  238. data/test/unit/bio/db/kegg/test_genes.rb +3 -16
  239. data/test/unit/bio/db/pdb/test_pdb.rb +7 -24
  240. data/test/unit/bio/db/test_aaindex.rb +2 -2
  241. data/test/unit/bio/db/test_fasta.rb +3 -16
  242. data/test/unit/bio/db/test_gff.rb +3 -16
  243. data/test/unit/bio/db/test_lasergene.rb +95 -0
  244. data/test/unit/bio/db/test_newick.rb +56 -0
  245. data/test/unit/bio/db/test_nexus.rb +360 -0
  246. data/test/unit/bio/db/test_prosite.rb +5 -18
  247. data/test/unit/bio/db/test_rebase.rb +11 -25
  248. data/test/unit/bio/db/test_soft.rb +138 -0
  249. data/test/unit/bio/io/test_ddbjxml.rb +5 -17
  250. data/test/unit/bio/io/test_ensembl.rb +109 -0
  251. data/test/unit/bio/io/test_fastacmd.rb +3 -16
  252. data/test/unit/bio/io/test_flatfile.rb +237 -0
  253. data/test/unit/bio/io/test_soapwsdl.rb +4 -17
  254. data/test/unit/bio/sequence/test_aa.rb +3 -3
  255. data/test/unit/bio/sequence/test_common.rb +3 -16
  256. data/test/unit/bio/sequence/test_compat.rb +3 -16
  257. data/test/unit/bio/sequence/test_na.rb +29 -3
  258. data/test/unit/bio/shell/plugin/test_seq.rb +8 -8
  259. data/test/unit/bio/test_alignment.rb +16 -27
  260. data/test/unit/bio/test_command.rb +242 -25
  261. data/test/unit/bio/test_db.rb +3 -16
  262. data/test/unit/bio/test_feature.rb +4 -16
  263. data/test/unit/bio/test_location.rb +4 -16
  264. data/test/unit/bio/test_map.rb +230 -0
  265. data/test/unit/bio/test_pathway.rb +4 -16
  266. data/test/unit/bio/test_reference.rb +2 -2
  267. data/test/unit/bio/test_sequence.rb +7 -19
  268. data/test/unit/bio/test_shell.rb +3 -16
  269. data/test/unit/bio/test_tree.rb +593 -0
  270. data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +299 -0
  271. data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +103 -0
  272. data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +240 -0
  273. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +100 -0
  274. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +75 -0
  275. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +73 -0
  276. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +53 -0
  277. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +104 -0
  278. data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +83 -0
  279. data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +246 -0
  280. data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +44 -0
  281. data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +115 -0
  282. data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +147 -0
  283. data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +147 -0
  284. data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +60 -0
  285. data/test/unit/bio/util/test_color_scheme.rb +6 -18
  286. data/test/unit/bio/util/test_contingency_table.rb +6 -18
  287. data/test/unit/bio/util/test_restriction_enzyme.rb +42 -0
  288. data/test/unit/bio/util/test_sirna.rb +3 -16
  289. metadata +228 -169
  290. data/doc/BioRuby.rd.ja +0 -225
  291. data/doc/Design.rd.ja +0 -341
  292. data/doc/TODO.rd.ja +0 -138
  293. data/lib/bio/appl/fasta/format6.rb +0 -37
  294. data/lib/bio/db/kegg/cell.rb +0 -88
  295. data/lib/bio/db/kegg/ko.rb +0 -178
  296. data/lib/bio/shell/rails/Rakefile +0 -10
  297. data/lib/bio/shell/rails/app/controllers/application.rb +0 -4
  298. data/lib/bio/shell/rails/app/controllers/shell_controller.rb +0 -94
  299. data/lib/bio/shell/rails/app/helpers/application_helper.rb +0 -3
  300. data/lib/bio/shell/rails/app/models/shell_connection.rb +0 -30
  301. data/lib/bio/shell/rails/app/views/layouts/shell.rhtml +0 -37
  302. data/lib/bio/shell/rails/app/views/shell/history.rhtml +0 -5
  303. data/lib/bio/shell/rails/app/views/shell/index.rhtml +0 -2
  304. data/lib/bio/shell/rails/app/views/shell/show.rhtml +0 -13
  305. data/lib/bio/shell/rails/config/boot.rb +0 -19
  306. data/lib/bio/shell/rails/config/database.yml +0 -85
  307. data/lib/bio/shell/rails/config/environment.rb +0 -53
  308. data/lib/bio/shell/rails/config/environments/development.rb +0 -19
  309. data/lib/bio/shell/rails/config/environments/production.rb +0 -19
  310. data/lib/bio/shell/rails/config/environments/test.rb +0 -19
  311. data/lib/bio/shell/rails/config/routes.rb +0 -19
  312. data/lib/bio/shell/rails/doc/README_FOR_APP +0 -2
  313. data/lib/bio/shell/rails/public/404.html +0 -8
  314. data/lib/bio/shell/rails/public/500.html +0 -8
  315. data/lib/bio/shell/rails/public/dispatch.cgi +0 -10
  316. data/lib/bio/shell/rails/public/dispatch.fcgi +0 -24
  317. data/lib/bio/shell/rails/public/dispatch.rb +0 -10
  318. data/lib/bio/shell/rails/public/favicon.ico +0 -0
  319. data/lib/bio/shell/rails/public/images/rails.png +0 -0
  320. data/lib/bio/shell/rails/public/index.html +0 -277
  321. data/lib/bio/shell/rails/public/javascripts/controls.js +0 -750
  322. data/lib/bio/shell/rails/public/javascripts/dragdrop.js +0 -584
  323. data/lib/bio/shell/rails/public/javascripts/effects.js +0 -854
  324. data/lib/bio/shell/rails/public/javascripts/prototype.js +0 -1785
  325. data/lib/bio/shell/rails/public/robots.txt +0 -1
  326. data/lib/bio/shell/rails/public/stylesheets/main.css +0 -187
  327. data/lib/bio/shell/rails/script/about +0 -3
  328. data/lib/bio/shell/rails/script/breakpointer +0 -3
  329. data/lib/bio/shell/rails/script/console +0 -3
  330. data/lib/bio/shell/rails/script/destroy +0 -3
  331. data/lib/bio/shell/rails/script/generate +0 -3
  332. data/lib/bio/shell/rails/script/performance/benchmarker +0 -3
  333. data/lib/bio/shell/rails/script/performance/profiler +0 -3
  334. data/lib/bio/shell/rails/script/plugin +0 -3
  335. data/lib/bio/shell/rails/script/process/reaper +0 -3
  336. data/lib/bio/shell/rails/script/process/spawner +0 -3
  337. data/lib/bio/shell/rails/script/process/spinner +0 -3
  338. data/lib/bio/shell/rails/script/runner +0 -3
  339. data/lib/bio/shell/rails/script/server +0 -42
  340. data/lib/bio/shell/rails/test/test_helper.rb +0 -28
@@ -3,17 +3,43 @@
3
3
  #
4
4
  # Copyright:: Copyright (C) 2005
5
5
  # Toshiaki Katayama <k@bioruby.org>
6
- # License:: LGPL
6
+ # License:: The Ruby License
7
7
  #
8
- # $Id: kgml.rb,v 1.2 2005/11/05 08:29:53 k Exp $
8
+ # $Id: kgml.rb,v 1.7 2007/04/05 23:35:41 trevor Exp $
9
9
  #
10
+
11
+ autoload :REXML, 'rexml/document'
12
+
13
+ module Bio
14
+ class KEGG
15
+
10
16
  # == KGML (KEGG XML) parser
11
17
  #
12
18
  # See http://www.genome.jp/kegg/xml/ for more details on KGML.
13
19
  #
20
+ # === Incompatible attribute names with KGML tags
21
+ #
22
+ # <entry>
23
+ # :id -> :entry_id
24
+ # :type -> :category
25
+ # :map -> :pathway
26
+ # names()
27
+ # <graphics>
28
+ # :name -> :label
29
+ # :type -> :shape
30
+ # <relation>
31
+ # :entry1 -> :node1
32
+ # :entry2 -> :node2
33
+ # :type -> :rel
34
+ # <subtype>
35
+ # edge()
36
+ # <reaction>
37
+ # :name -> :entry_id
38
+ # :type -> :direction
39
+ #
14
40
  # === Examples
15
41
  #
16
- # file = ARGF.read
42
+ # file = File.read("kgml/hsa/hsa00010.xml")
17
43
  # kgml = Bio::KEGG::KGML.new(file)
18
44
  #
19
45
  # # <pathway> attributes
@@ -26,117 +52,102 @@
26
52
  #
27
53
  # kgml.entries.each do |entry|
28
54
  # # <entry> attributes
29
- # puts entry.id
55
+ # puts entry.entry_id
30
56
  # puts entry.name
31
- # puts entry.names
32
- # puts entry.type
57
+ # puts entry.category
33
58
  # puts entry.link
34
59
  # puts entry.reaction
35
- # puts entry.map
60
+ # puts entry.pathway
36
61
  # # <graphics> attributes
37
- # puts entry.label # This is an accessor for <graphics name="">
62
+ # puts entry.label # name
63
+ # puts entry.shape # type
38
64
  # puts entry.x
39
65
  # puts entry.y
40
- # puts entry.type
41
66
  # puts entry.width
42
67
  # puts entry.height
43
68
  # puts entry.fgcolor
44
69
  # puts entry.bgcolor
70
+ # # <component> attributes
71
+ # puts entry.components
72
+ # # methood
73
+ # puts entry.names
45
74
  # end
46
75
  #
47
76
  # kgml.relations.each do |relation|
48
77
  # # <relation> attributes
49
- # puts relation.entry1
50
- # puts relation.entry2
51
- # puts relation.type
78
+ # puts relation.node1 # entry1
79
+ # puts relation.node2 # entry2
80
+ # puts relation.rel # type
81
+ # # method
82
+ # puts relation.edge
52
83
  # # <subtype> attributes
53
84
  # puts relation.name
54
85
  # puts relation.value
55
- # # or
56
- # relation.subtype.each do |value, name|
57
- # puts value, name
58
- # end
59
86
  # end
60
87
  #
61
88
  # kgml.reactions.each do |reaction|
62
89
  # # <reaction> attributes
63
- # puts reaction.name
64
- # puts reaction.type
90
+ # puts reaction.entry_id # name
91
+ # puts reaction.direction # type
65
92
  # # <substrate> attributes
66
- # reaction.substrates.each do |name|
67
- # puts name
93
+ # reaction.substrates.each do |entry_id|
94
+ # puts entry_id
68
95
  # # <alt> attributes
69
- # altnames = reaction.alt[name]
70
- # altnames.each do |altname|
71
- # puts altname
96
+ # altnames = reaction.alt[entry_id]
97
+ # altnames.each do |name|
98
+ # puts name
72
99
  # end
73
100
  # end
74
101
  # # <product> attributes
75
- # reaction.products.each do |name|
76
- # puts name
102
+ # reaction.products.each do |entry_id|
103
+ # puts entry_id
77
104
  # # <alt> attributes
78
- # altnames = reaction.alt[name]
79
- # altnames.each do |altname|
80
- # puts altname
105
+ # altnames = reaction.alt[entry_id]
106
+ # altnames.each do |name|
107
+ # puts name
81
108
  # end
82
109
  # end
83
110
  # end
84
111
  #
85
- #--
86
- #
87
- # This library is free software; you can redistribute it and/or
88
- # modify it under the terms of the GNU Lesser General Public
89
- # License as published by the Free Software Foundation; either
90
- # version 2 of the License, or (at your option) any later version.
91
- #
92
- # This library is distributed in the hope that it will be useful,
93
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
94
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
95
- # Lesser General Public License for more details.
96
- #
97
- # You should have received a copy of the GNU Lesser General Public
98
- # License along with this library; if not, write to the Free Software
99
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
100
- #
101
- #++
102
- #
103
-
104
- require 'rexml/document'
105
-
106
- module Bio
107
- class KEGG
108
-
109
112
  class KGML
110
113
 
111
114
  def initialize(xml)
112
- @dom = REXML::Document.new(xml)
113
- parse_root
114
- parse_entry
115
- parse_relation
116
- parse_reaction
115
+ dom = REXML::Document.new(xml)
116
+ parse_root(dom)
117
+ parse_entry(dom)
118
+ parse_relation(dom)
119
+ parse_reaction(dom)
117
120
  end
118
121
  attr_reader :name, :org, :number, :title, :image, :link
119
- attr_reader :entries, :relations, :reactions # Array
122
+ attr_accessor :entries, :relations, :reactions
120
123
 
121
124
  class Entry
122
- attr_accessor :id, :name, :names, :type, :link, :reaction, :map
123
- attr_accessor :label, :x, :y, :type, :width, :height, :fgcolor, :bgcolor
125
+ attr_accessor :entry_id, :name, :category, :link, :reaction, :pathway
126
+ attr_accessor :label, :shape, :x, :y, :width, :height, :fgcolor, :bgcolor
127
+ attr_accessor :components
128
+ def names
129
+ @name.split(/\s+/)
130
+ end
124
131
  end
125
132
 
126
133
  class Relation
127
- attr_accessor :entry1, :entry2, :type
134
+ attr_accessor :node1, :node2, :rel
128
135
  attr_accessor :name, :value
129
- attr_accessor :subtype # Hash
136
+ def edge
137
+ @value.to_i
138
+ end
130
139
  end
131
140
 
132
141
  class Reaction
133
- attr_accessor :name, :type
134
- attr_accessor :substrates, :products # Array
135
- attr_accessor :alt # Hash
142
+ attr_accessor :entry_id, :direction
143
+ attr_accessor :substrates, :products # Array
144
+ attr_accessor :alt # Hash
136
145
  end
137
146
 
138
- def parse_root
139
- root = @dom.root.attributes
147
+ private
148
+
149
+ def parse_root(dom)
150
+ root = dom.root.attributes
140
151
  @name = root["name"]
141
152
  @org = root["org"]
142
153
  @number = root["number"]
@@ -145,69 +156,73 @@ class KGML
145
156
  @link = root["link"]
146
157
  end
147
158
 
148
- def parse_entry
159
+ def parse_entry(dom)
149
160
  @entries = Array.new
150
161
 
151
- @dom.elements.each("/pathway/entry") { |node|
162
+ dom.elements.each("/pathway/entry") { |node|
152
163
  attr = node.attributes
153
164
  entry = Entry.new
154
- entry.id = attr["id"].to_i
155
- entry.map = attr["map"]
156
- entry.name = attr["name"]
157
- entry.names = entry.name.split(/\s+/)
158
- entry.type = attr["type"]
159
- entry.link = attr["link"]
160
- entry.reaction = attr["reaction"]
165
+ entry.entry_id = attr["id"].to_i
166
+ entry.name = attr["name"]
167
+ entry.category = attr["type"]
168
+ # implied
169
+ entry.link = attr["link"]
170
+ entry.reaction = attr["reaction"]
171
+ entry.pathway = attr["map"]
161
172
 
162
173
  node.elements.each("graphics") { |graphics|
163
174
  attr = graphics.attributes
164
- entry.x = attr["x"].to_i
165
- entry.y = attr["y"].to_i
166
- entry.type = attr["type"]
167
- entry.label = attr["label"] # name
168
- entry.width = attr["width"].to_i
169
- entry.height = attr["height"].to_i
170
- entry.fgcolor = attr["fgcolor"]
171
- entry.bgcolor = attr["bgcolor"]
175
+ entry.x = attr["x"].to_i
176
+ entry.y = attr["y"].to_i
177
+ entry.shape = attr["type"]
178
+ entry.label = attr["name"]
179
+ entry.width = attr["width"].to_i
180
+ entry.height = attr["height"].to_i
181
+ entry.fgcolor = attr["fgcolor"]
182
+ entry.bgcolor = attr["bgcolor"]
183
+ }
184
+
185
+ node.elements.each("component") { |component|
186
+ attr = component.attributes
187
+ entry.components ||= []
188
+ entry.components << attr["id"].to_i
172
189
  }
190
+
173
191
  @entries << entry
174
192
  }
175
193
  end
176
194
 
177
- def parse_relation
195
+ def parse_relation(dom)
178
196
  @relations = Array.new
179
197
 
180
- @dom.elements.each("/pathway/relation") { |node|
198
+ dom.elements.each("/pathway/relation") { |node|
181
199
  attr = node.attributes
182
200
  relation = Relation.new
183
- relation.entry1 = attr["entry1"].to_i
184
- relation.entry2 = attr["entry2"].to_i
185
- relation.type = attr["type"]
201
+ relation.node1 = attr["entry1"].to_i
202
+ relation.node2 = attr["entry2"].to_i
203
+ relation.rel = attr["type"]
186
204
 
187
- hash = Hash.new
188
205
  node.elements.each("subtype") { |subtype|
189
206
  attr = subtype.attributes
190
- relation.name = name = attr["name"]
191
- relation.value = value = attr["value"].to_i
192
- hash[value] = name
207
+ relation.name = attr["name"]
208
+ relation.value = attr["value"]
193
209
  }
194
- relation.subtype = hash
195
210
  @relations << relation
196
211
  }
197
212
  end
198
213
 
199
- def parse_reaction
214
+ def parse_reaction(dom)
200
215
  @reactions = Array.new
201
216
 
202
- @dom.elements.each("/pathway/reaction") { |node|
217
+ dom.elements.each("/pathway/reaction") { |node|
203
218
  attr = node.attributes
204
219
  reaction = Reaction.new
205
- reaction.name = attr["name"]
206
- reaction.type = attr["type"]
220
+ reaction.entry_id = attr["name"]
221
+ reaction.direction = attr["type"]
207
222
 
208
223
  substrates = Array.new
209
224
  products = Array.new
210
- hash = Hash.new
225
+ hash = Hash.new
211
226
 
212
227
  node.elements.each("substrate") { |substrate|
213
228
  name = substrate.attributes["name"]
@@ -225,75 +240,17 @@ class KGML
225
240
  hash[name] << alt.attributes["name"]
226
241
  }
227
242
  }
228
-
229
243
  reaction.substrates = substrates
230
- reaction.products = products
231
- reaction.alt = hash
244
+ reaction.products = products
245
+ reaction.alt = hash
232
246
 
233
247
  @reactions << reaction
234
248
  }
235
249
  end
236
250
 
237
251
  end # KGML
252
+
238
253
  end # KEGG
239
254
  end # Bio
240
255
 
241
256
 
242
- if __FILE__ == $0
243
- require 'pp'
244
- xml = ARGF.read
245
- pp Bio::KEGG::KGML.new(xml)
246
- end
247
-
248
-
249
- =begin
250
-
251
- # This is a test implementation which reflects original KGML data structure.
252
-
253
- class KGML
254
-
255
- class Pathway
256
- attr_accessor :name, :org, :number, :title, :image, :link
257
- attr_accessor :entries, :relations, :reactions
258
-
259
- class Entry
260
- attr_accessor :id, :name, :type, :link, :reaction, :map
261
- attr_accessor :components, :graphics
262
-
263
- class Component
264
- attr_accessor :id
265
- end
266
-
267
- class Graphics
268
- attr_accessor :name, :x, :y, :type, :width, :height, :fgcolor, :bgcolor
269
- end
270
- end
271
-
272
- class Relation
273
- attr_accessor :entry1, :entry2, :type
274
- attr_accessor :
275
-
276
- class Subtype
277
- attr_accessor :name, :value
278
- end
279
- end
280
-
281
- class Reaction
282
- attr_accessor :name, :type
283
-
284
- class Substrate
285
- attr_accessor :name
286
- end
287
-
288
- class Product
289
- attr_accessor :name
290
- end
291
-
292
- class Alt
293
- attr_accessor :name
294
- end
295
- end
296
- end
297
-
298
- end
299
- =end
@@ -0,0 +1,112 @@
1
+ #
2
+ # = bio/db/kegg/orthology.rb - KEGG ORTHOLOGY database class
3
+ #
4
+ # Copyright:: Copyright (C) 2003-2007 Toshiaki Katayama <k@bioruby.org>
5
+ # Copyright:: Copyright (C) 2003 Masumi Itoh <m@bioruby.org>
6
+ # License:: The Ruby License
7
+ #
8
+ # $Id: orthology.rb,v 1.9 2007/04/05 15:42:59 k Exp $
9
+ #
10
+
11
+ require 'bio/db'
12
+
13
+ module Bio
14
+ class KEGG
15
+
16
+ # == Description
17
+ #
18
+ # KO (KEGG Orthology) entry parser.
19
+ #
20
+ # == References
21
+ #
22
+ # * http://www.genome.jp/dbget-bin/get_htext?KO
23
+ # * ftp://ftp.genome.jp/pub/kegg/genes/ko
24
+ #
25
+ class ORTHOLOGY < KEGGDB
26
+
27
+ DELIMITER = RS = "\n///\n"
28
+ TAGSIZE = 12
29
+
30
+ # Reads a flat file format entry of the KO database.
31
+ def initialize(entry)
32
+ super(entry, TAGSIZE)
33
+ end
34
+
35
+ # Returns ID of the entry.
36
+ def entry_id
37
+ field_fetch('ENTRY')[/\S+/]
38
+ end
39
+
40
+ # Returns NAME field of the entry.
41
+ def name
42
+ field_fetch('NAME')
43
+ end
44
+
45
+ # Returns an Array of names in NAME field.
46
+ def names
47
+ name.split(', ')
48
+ end
49
+
50
+ # Returns DEFINITION field of the entry.
51
+ def definition
52
+ field_fetch('DEFINITION')
53
+ end
54
+
55
+ # Returns CLASS field of the entry.
56
+ def keggclass
57
+ field_fetch('CLASS')
58
+ end
59
+
60
+ # Returns an Array of biological classes in CLASS field.
61
+ def keggclasses
62
+ keggclass.gsub(/ \[[^\]]+/, '').split(/\] ?/)
63
+ end
64
+
65
+ # Returns an Array of KEGG/PATHWAY ID in CLASS field.
66
+ def pathways
67
+ keggclass.scan(/\[PATH:(.*?)\]/).flatten
68
+ end
69
+
70
+ # Returns a Hash of Array of a database name and entry IDs in DBLINKS field.
71
+ def dblinks
72
+ unless @data['DBLINKS']
73
+ @data['DBLINKS'] = lines_fetch('DBLINKS')
74
+ end
75
+ @data['DBLINKS']
76
+ end
77
+
78
+ # Returns a Hash of Array of the organism ID and entry IDs in GENES field.
79
+ def genes
80
+ unless @data['GENES']
81
+ @data['GENES'] = lines_fetch('GENES')
82
+ end
83
+ @data['GENES']
84
+ end
85
+
86
+ end # ORTHOLOGY
87
+
88
+ end # KEGG
89
+ end # Bio
90
+
91
+
92
+
93
+ if __FILE__ == $0
94
+
95
+ require 'bio/io/fetch'
96
+
97
+ flat = Bio::Fetch.query('ko', 'K00001')
98
+ entry = Bio::KEGG::ORTHOLOGY.new(flat)
99
+
100
+ p entry.entry_id
101
+ p entry.name
102
+ p entry.names
103
+ p entry.definition
104
+ p entry.keggclass
105
+ p entry.keggclasses
106
+ p entry.pathways
107
+ p entry.dblinks
108
+ p entry.genes
109
+
110
+ end
111
+
112
+