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
@@ -4,27 +4,9 @@
4
4
  # Copyright:: Copyright (C) 2001-2003, 2005
5
5
  # Shuichi Kawashima <shuichi@hgc.jp>,
6
6
  # Toshiaki Katayama <k@bioruby.org>
7
- # License:: LGPL
7
+ # License:: The Ruby License
8
8
  #
9
- # $Id: expression.rb,v 1.9 2005/11/05 08:27:26 k Exp $
10
- #
11
- #--
12
- #
13
- # This library is free software; you can redistribute it and/or
14
- # modify it under the terms of the GNU Lesser General Public
15
- # License as published by the Free Software Foundation; either
16
- # version 2 of the License, or (at your option) any later version.
17
- #
18
- # This library is distributed in the hope that it will be useful,
19
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
20
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21
- # Lesser General Public License for more details.
22
- #
23
- # You should have received a copy of the GNU Lesser General Public
24
- # License along with this library; if not, write to the Free Software
25
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
- #
27
- #++
9
+ # $Id: expression.rb,v 1.11 2007/04/05 23:35:41 trevor Exp $
28
10
  #
29
11
 
30
12
  require "bio/db"
@@ -1,293 +1,263 @@
1
1
  #
2
- # bio/db/kegg/genes.rb - KEGG/GENES database class
2
+ # = bio/db/kegg/genes.rb - KEGG/GENES database class
3
3
  #
4
- # Copyright (C) 2001, 2002 KATAYAMA Toshiaki <k@bioruby.org>
4
+ # Copyright:: Copyright (C) 2001, 2002, 2006
5
+ # Toshiaki Katayama <k@bioruby.org>
6
+ # License:: The Ruby License
5
7
  #
6
- # This library is free software; you can redistribute it and/or
7
- # modify it under the terms of the GNU Lesser General Public
8
- # License as published by the Free Software Foundation; either
9
- # version 2 of the License, or (at your option) any later version.
8
+ # $Id: genes.rb,v 0.25 2007/04/05 23:35:41 trevor Exp $
10
9
  #
11
- # This library is distributed in the hope that it will be useful,
12
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- # Lesser General Public License for more details.
15
10
  #
16
- # You should have received a copy of the GNU Lesser General Public
17
- # License along with this library; if not, write to the Free Software
18
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
11
+ # == KEGG GENES parser
19
12
  #
20
- # $Id: genes.rb,v 0.22 2005/11/09 12:30:07 k Exp $
13
+ # See http://www.genome.jp/kegg/genes.html
21
14
  #
22
-
23
- require 'bio/db'
15
+ #
16
+ # === Examples
17
+ #
18
+ # require 'bio/io/fetch'
19
+ # entry_string = Bio::Fetch.query('genes', 'b0002')
20
+ #
21
+ # entry = Bio::KEGG::GENES.new(entry_string)
22
+ #
23
+ # # ENTRY
24
+ # p entry.entry # => Hash
25
+ #
26
+ # p entry.entry_id # => String
27
+ # p entry.division # => String
28
+ # p entry.organism # => String
29
+ #
30
+ # # NAME
31
+ # p entry.name # => String
32
+ # p entry.genes # => Array
33
+ # p entry.gene # => String
34
+ #
35
+ # # DEFINITION
36
+ # p entry.definition # => String
37
+ # p entry.eclinks # => Array
38
+ #
39
+ # # PATHWAY
40
+ # p entry.pathway # => String
41
+ # p entry.pathways # => Array
42
+ #
43
+ # # POSITION
44
+ # p entry.position # => String
45
+ # p entry.chromosome # => String
46
+ # p entry.gbposition # => String
47
+ # p entry.locations # => Bio::Locations
48
+ #
49
+ # # MOTIF
50
+ # p entry.motif # => Hash of Array
51
+ #
52
+ # # DBLINKS
53
+ # p entry.dblinks # => Hash of Array
54
+ #
55
+ # # CODON_USAGE
56
+ # p entry.codon_usage # => Hash
57
+ # p entry.cu_list # => Array
58
+ #
59
+ # # AASEQ
60
+ # p entry.aaseq # => Bio::Sequence::AA
61
+ # p entry.aalen # => Fixnum
62
+ #
63
+ # # NTSEQ
64
+ # p entry.ntseq # => Bio::Sequence::NA
65
+ # p entry.naseq # => Bio::Sequence::NA
66
+ # p entry.ntlen # => Fixnum
67
+ # p entry.nalen # => Fixnum
68
+ #
24
69
 
25
70
  module Bio
26
71
 
27
- class KEGG
72
+ autoload :KEGGDB, 'bio/db'
73
+ autoload :Locations, 'bio/location'
74
+ autoload :Sequence, 'bio/sequence'
28
75
 
29
- class GENES < KEGGDB
76
+ class KEGG
30
77
 
31
- DELIMITER = RS = "\n///\n"
32
- TAGSIZE = 12
78
+ class GENES < KEGGDB
33
79
 
34
- def initialize(entry)
35
- super(entry, TAGSIZE)
36
- end
80
+ DELIMITER = RS = "\n///\n"
81
+ TAGSIZE = 12
37
82
 
83
+ def initialize(entry)
84
+ super(entry, TAGSIZE)
85
+ end
38
86
 
39
- def entry
40
- unless @data['ENTRY']
41
- hash = Hash.new('')
42
- if get('ENTRY').length > 30
43
- e = get('ENTRY')
44
- hash['id'] = e[12..29].strip
45
- hash['division'] = e[30..39].strip
46
- hash['organism'] = e[40..80].strip
47
- end
48
- @data['ENTRY'] = hash
49
- end
50
- @data['ENTRY']
51
- end
52
87
 
53
- def entry_id
54
- entry['id']
88
+ def entry
89
+ unless @data['ENTRY']
90
+ hash = Hash.new('')
91
+ if get('ENTRY').length > 30
92
+ e = get('ENTRY')
93
+ hash['id'] = e[12..29].strip
94
+ hash['division'] = e[30..39].strip
95
+ hash['organism'] = e[40..80].strip
55
96
  end
97
+ @data['ENTRY'] = hash
98
+ end
99
+ @data['ENTRY']
100
+ end
56
101
 
57
- def division
58
- entry['division'] # CDS, tRNA etc.
59
- end
102
+ def entry_id
103
+ entry['id']
104
+ end
60
105
 
61
- def organism
62
- entry['organism'] # H.sapiens etc.
63
- end
106
+ def division
107
+ entry['division'] # CDS, tRNA etc.
108
+ end
64
109
 
65
- def name
66
- field_fetch('NAME')
67
- end
110
+ def organism
111
+ entry['organism'] # H.sapiens etc.
112
+ end
68
113
 
69
- def genes
70
- name.split(', ')
71
- end
114
+ def name
115
+ field_fetch('NAME')
116
+ end
72
117
 
73
- def gene
74
- genes.first
75
- end
118
+ def genes
119
+ name.split(', ')
120
+ end
76
121
 
77
- def definition
78
- field_fetch('DEFINITION')
79
- end
122
+ def gene
123
+ genes.first
124
+ end
80
125
 
81
- def eclinks
82
- # definition.slice(/\[EC:(.*?)\]/, 1) # ruby >= 1.7
83
- # definition.scan(/\[EC:(.*?)\]/).flatten
84
- if /\[EC:(.*?)\]/.match(definition)
85
- $1.split(/\s+/)
86
- else
87
- []
88
- end
89
- end
126
+ def definition
127
+ field_fetch('DEFINITION')
128
+ end
90
129
 
91
- def splinks
92
- # definition.slice(/\[SP:(.*?)\]/, 1) # ruby >= 1.7
93
- # definition.scan(/\[SP:(.*?)\]/).flatten
94
- if /\[SP:(.*?)\]/.match(definition)
95
- $1.split(/\s+/)
96
- else
97
- []
98
- end
99
- end
130
+ def eclinks
131
+ ec_list = definition.slice(/\[EC:(.*?)\]/, 1)
132
+ if ec_list
133
+ ec_list.strip.split(/\s+/)
134
+ else
135
+ []
136
+ end
137
+ end
100
138
 
101
- def keggclass
102
- field_fetch('CLASS')
103
- end
139
+ def orthologs
140
+ lines_fetch('ORTHOLOG')
141
+ end
104
142
 
105
- def pathways
106
- keggclass.scan(/\[PATH:(.*?)\]/).flatten
107
- end
143
+ def pathway
144
+ field_fetch('PATHWAY')
145
+ end
108
146
 
109
- def position
110
- unless @data['POSITION']
111
- @data['POSITION'] = fetch('POSITION').gsub(/\s/, '')
112
- end
113
- @data['POSITION']
114
- end
147
+ def pathways
148
+ pathway.scan(/\[PATH:(.*?)\]/).flatten
149
+ end
115
150
 
116
- def gbposition
117
- position.sub(/.*?:/, '')
118
- end
151
+ def position
152
+ unless @data['POSITION']
153
+ @data['POSITION'] = fetch('POSITION').gsub(/\s/, '')
154
+ end
155
+ @data['POSITION']
156
+ end
119
157
 
120
- def chromosome
121
- if position =~ /:/
122
- position.sub(/:.*/, '')
123
- else
124
- nil
125
- end
126
- end
158
+ def chromosome
159
+ if position[/:/]
160
+ position.sub(/:.*/, '')
161
+ elsif ! position[/\.\./]
162
+ position
163
+ else
164
+ nil
165
+ end
166
+ end
127
167
 
128
- def dblinks
129
- unless @data['DBLINKS']
130
- hash = {}
131
- get('DBLINKS').scan(/(\S+):\s*(.*)\n?/).each do |db, str|
132
- id_array = str.strip.split(/\s+/)
133
- hash[db] = id_array
134
- end
135
- @data['DBLINKS'] = hash
136
- end
137
- @data['DBLINKS'] # Hash of Array of DB IDs in DBLINKS
138
- end
168
+ def gbposition
169
+ position.sub(/.*?:/, '')
170
+ end
139
171
 
140
- def codon_usage(codon = nil)
141
- unless @data['CODON_USAGE']
142
- ary = []
143
- get('CODON_USAGE').sub(/.*/,'').each_line do |line| # cut 1st line
144
- line.chomp.sub(/^.{11}/, '').scan(/..../) do |cu|
145
- ary.push(cu.to_i)
146
- end
147
- end
148
- @data['CODON_USAGE'] = ary
149
- end
172
+ def locations
173
+ Bio::Locations.new(gbposition)
174
+ end
150
175
 
151
- if codon
152
- h = { 't' => 0, 'c' => 1, 'a' => 2, 'g' => 3 }
153
- x, y, z = codon.downcase.scan(/\w/)
154
- codon_num = h[x] * 16 + h[y] * 4 + h[z]
155
- @data['CODON_USAGE'][codon_num] # CODON_USAGE of the codon
176
+ def motif
177
+ unless @data['MOTIF']
178
+ hash = {}
179
+ db = nil
180
+ lines_fetch('MOTIF').each do |line|
181
+ if line[/^\S+:/]
182
+ db, str = line.split(/:/)
156
183
  else
157
- return @data['CODON_USAGE'] # Array of CODON_USAGE (default)
184
+ str = line
158
185
  end
186
+ hash[db] ||= []
187
+ hash[db] += str.strip.split(/\s+/)
159
188
  end
189
+ @data['MOTIF'] = hash
190
+ end
191
+ @data['MOTIF'] # Hash of Array of IDs in MOTIF
192
+ end
160
193
 
161
- def cu
162
- hash = Hash.new
163
- list = codon_usage
164
- base = %w(t c a g)
165
- base.each_with_index do |x, i|
166
- base.each_with_index do |y, j|
167
- base.each_with_index do |z, k|
168
- hash["#{x}#{y}#{z}"] = list[i*16 + j*4 + k]
169
- end
170
- end
171
- end
172
- return hash
173
- end
174
-
175
- def aaseq
176
- unless @data['AASEQ']
177
- @data['AASEQ'] = Sequence::AA.new(fetch('AASEQ').gsub(/[\s\d\/]+/, ''))
178
- end
179
- @data['AASEQ']
180
- end
181
-
182
- def aalen
183
- @data['AALEN'] = aaseq.length
194
+ def dblinks
195
+ unless @data['DBLINKS']
196
+ hash = {}
197
+ get('DBLINKS').scan(/(\S+):\s*(.*)\n?/).each do |db, str|
198
+ id_array = str.strip.split(/\s+/)
199
+ hash[db] = id_array
184
200
  end
201
+ @data['DBLINKS'] = hash
202
+ end
203
+ @data['DBLINKS'] # Hash of Array of IDs in DBLINKS
204
+ end
185
205
 
186
- def ntseq
187
- unless @data['NTSEQ']
188
- @data['NTSEQ'] = Sequence::NA.new(fetch('NTSEQ').gsub(/[\s\d\/]+/, ''))
206
+ def codon_usage(codon = nil)
207
+ unless @data['CODON_USAGE']
208
+ hash = Hash.new
209
+ list = cu_list
210
+ base = %w(t c a g)
211
+ base.each_with_index do |x, i|
212
+ base.each_with_index do |y, j|
213
+ base.each_with_index do |z, k|
214
+ hash["#{x}#{y}#{z}"] = list[i*16 + j*4 + k]
215
+ end
189
216
  end
190
- @data['NTSEQ']
191
217
  end
192
- alias naseq ntseq
218
+ @data['CODON_USAGE'] = hash
219
+ end
220
+ @data['CODON_USAGE']
221
+ end
193
222
 
194
- def ntlen
195
- @data['NTLEN'] = ntseq.length
223
+ def cu_list
224
+ ary = []
225
+ get('CODON_USAGE').sub(/.*/,'').each_line do |line| # cut 1st line
226
+ line.chomp.sub(/^.{11}/, '').scan(/..../) do |cu|
227
+ ary.push(cu.to_i)
196
228
  end
197
- alias nalen ntlen
198
-
199
229
  end
200
-
230
+ return ary
201
231
  end
202
232
 
203
- end
204
-
205
-
206
-
207
- if __FILE__ == $0
233
+ def aaseq
234
+ unless @data['AASEQ']
235
+ @data['AASEQ'] = Bio::Sequence::AA.new(fetch('AASEQ').gsub(/\d+/, ''))
236
+ end
237
+ @data['AASEQ']
238
+ end
208
239
 
209
- require 'bio/io/fetch'
240
+ def aalen
241
+ fetch('AASEQ')[/\d+/].to_i
242
+ end
210
243
 
211
- e = Bio::Fetch.query('genes', 'b0002')
212
- g = Bio::KEGG::GENES.new(e)
244
+ def ntseq
245
+ unless @data['NTSEQ']
246
+ @data['NTSEQ'] = Bio::Sequence::NA.new(fetch('NTSEQ').gsub(/\d+/, ''))
247
+ end
248
+ @data['NTSEQ']
249
+ end
250
+ alias naseq ntseq
213
251
 
214
- p g.entry
215
- p g.entry_id
216
- p g.division
217
- p g.name
218
- p g.gene
219
- p g.definition
220
- p g.keggclass
221
- p g.position
222
- p g.dblinks
223
- p g.codon_usage
224
- p g.cu
225
- p g.aaseq
226
- p g.aalen
227
- p g.naseq
228
- p g.nalen
229
- p g.eclinks
230
- p g.splinks
231
- p g.pathways
252
+ def ntlen
253
+ fetch('NTSEQ')[/\d+/].to_i
254
+ end
255
+ alias nalen ntlen
232
256
 
233
257
  end
234
258
 
259
+ end # KEGG
260
+ end # Bio
235
261
 
236
- =begin
237
-
238
- = Bio::KEGG::GENES
239
-
240
- === Initialize
241
-
242
- --- Bio::KEGG::GENES.new
243
-
244
- === ENTRY
245
-
246
- --- Bio::KEGG::GENES#entry -> Hash
247
- --- Bio::KEGG::GENES#entry_id -> String
248
- --- Bio::KEGG::GENES#division -> String
249
- --- Bio::KEGG::GENES#organism -> String
250
-
251
- === NAME
252
-
253
- --- Bio::KEGG::GENES#name -> String
254
- --- Bio::KEGG::GENES#genes -> Array
255
- --- Bio::KEGG::GENES#gene -> String
256
-
257
- === DEFINITION
258
-
259
- --- Bio::KEGG::GENES#definition -> String
260
- --- Bio::KEGG::GENES#eclinks -> Array
261
- --- Bio::KEGG::GENES#splinks -> Array
262
-
263
- === CLASS
264
-
265
- --- Bio::KEGG::GENES#keggclass -> String
266
- --- Bio::KEGG::GENES#pathways -> Array
267
-
268
- === POSITION
269
-
270
- --- Bio::KEGG::GENES#position -> String
271
-
272
- === DBLINKS
273
-
274
- --- Bio::KEGG::GENES#dblinks -> Hash
275
-
276
- === CODON_USAGE
277
-
278
- --- Bio::KEGG::GENES#codon_usage(codon = nil) -> Array or Fixnum
279
- --- Bio::KEGG::GENES#cu -> Hash
280
-
281
- === AASEQ
282
-
283
- --- Bio::KEGG::GENES#aaseq -> Bio::Sequence::AA
284
- --- Bio::KEGG::GENES#aalen -> Fixnum
285
-
286
- === NTSEQ
287
262
 
288
- --- Bio::KEGG::GENES#ntseq -> Bio::Sequence::NA
289
- --- Bio::KEGG::GENES#naseq -> Bio::Sequence::NA
290
- --- Bio::KEGG::GENES#ntlen -> Fixnum
291
- --- Bio::KEGG::GENES#nalen -> Fixnum
292
263
 
293
- =end