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
@@ -0,0 +1,229 @@
1
+ #
2
+ # = bio/io/ensembl.rb - An Ensembl Genome Browser client.
3
+ #
4
+ # Copyright:: Copyright (C) 2006
5
+ # Mitsuteru C. Nakao <n@bioruby.org>
6
+ # License:: The Ruby License
7
+ #
8
+ # $Id: ensembl.rb,v 1.11 2007/04/05 23:35:41 trevor Exp $
9
+ #
10
+ # == Description
11
+ #
12
+ # Client classes for Ensembl Genome Browser.
13
+ #
14
+ # == Examples
15
+ #
16
+ # human = Bio::Ensembl.new('Homo_sapiens')
17
+ # seq = human.exportview(1, 1000, 100000)
18
+ # gff = human.exportview(1, 1000, 100000, ['gene', 'variation', 'genscan'])
19
+ #
20
+ # human = Bio::Ensembl.human
21
+ # seq = human.exportview(1, 1000, 100000)
22
+ # gff = human.exportview(1, 1000, 100000, ['gene'])
23
+ #
24
+ # seq = Bio::Ensembl.human.exportview(1, 1000, 100000)
25
+ # gff = Bio::Ensembl.human.exportview(1, 1000, 100000, ['gene', 'variation', 'genscan'])
26
+ #
27
+ #
28
+ # == References
29
+ #
30
+ # * Ensembl
31
+ # http:/www.ensembl.org/
32
+ #
33
+
34
+ require 'bio/command'
35
+
36
+ module Bio
37
+
38
+ # == Description
39
+ #
40
+ # An Ensembl Genome Browser client class.
41
+ #
42
+ # == Examples
43
+ #
44
+ # human = Bio::Ensembl.new('Homo_sapiens')
45
+ # seq = human.exportview(1, 1000, 100000)
46
+ # gff = human.exportview(1, 1000, 100000, ['gene'])
47
+ #
48
+ # mouse = Bio::Ensembl.new('Mus_musculus')
49
+ # seq = mouse.exportview(1, 1000, 100000)
50
+ # gff = mouse.exportview(1, 1000, 100000, ['gene', 'variation', 'genscan'])
51
+ #
52
+ # rice = Bio::Enesmbl.new('Oryza_sativa', 'http://www.gramene.org')
53
+ # seq = rice.exportview(1, 1000, 100000)
54
+ #
55
+ # == References
56
+ #
57
+ # * Ensembl
58
+ # http:/www.ensembl.org/
59
+ #
60
+ # * GRAMENE
61
+ # http://www.gramene.org/
62
+ #
63
+ class Ensembl
64
+
65
+ ENSEMBL_URL = 'http://www.ensembl.org'
66
+
67
+ # Server URL (ex. 'http://www.ensembl.org')
68
+ attr_reader :server
69
+
70
+ # Organism name. (ex. 'Homo_sapiens').
71
+ attr_reader :organism
72
+
73
+ def initialize(organism, server = nil)
74
+ @server = server || ENSEMBL_URL
75
+ @organism = organism
76
+ @uri = [ @server.chomp('/'), @organism ].join('/')
77
+ end
78
+
79
+ def self.human
80
+ self.new("Homo_sapiens")
81
+ end
82
+
83
+ def self.mouse
84
+ self.new("Mus_musculus")
85
+ end
86
+
87
+ # Ensembl ExportView Client.
88
+ #
89
+ # Retrieve genomic sequence/features from Ensembl ExportView in plain text.
90
+ # Ensembl ExportView exports genomic data (sequence and features) in
91
+ # several file formats including fasta, GFF and tab.
92
+ #
93
+ # * ExportViwe (http://www.ensembl.org/Homo_sapiens/exportview).
94
+ #
95
+ # == Examples
96
+ #
97
+ # human = Bio::Ensembl.new('Homo_sapiens')
98
+ # or
99
+ # human = Bio::Ensembl.human
100
+ #
101
+ # # Genomic sequence in Fasta format
102
+ # human.exportview(:seq_region_name => 1,
103
+ # :anchor1 => 1149206, :anchor2 => 1149229)
104
+ # human.exportview(1, 1149206, 1149229)
105
+ #
106
+ # # Feature in GFF
107
+ # human.exportview(:seq_region_name => 1,
108
+ # :anchor1 => 1149206, :anchor2 => 1150000,
109
+ # :options => ['similarity', 'repeat',
110
+ # 'genscan', 'variation', 'gene'])
111
+ # human.exportview(1, 1149206, 1150000, ['variation', 'gene'])
112
+ #
113
+ # Feature in TAB
114
+ # human.exportview(:seq_region_name => 1,
115
+ # :anchor1 => 1149206, :anchor2 => 1150000,
116
+ # :options => ['similarity', 'repeat',
117
+ # 'genscan', 'variation', 'gene'],
118
+ # :format => 'tab')
119
+ #
120
+ # == Arguments
121
+ #
122
+ # Bio::Ensembl#exportview method allow both orderd arguments and
123
+ # named arguments. (Note: mandatory arguments are marked by '*').
124
+ #
125
+ # === Orderd Arguments
126
+ #
127
+ # 1. seq_region_name - Chromosome number (*)
128
+ # 2. anchor1 - From coordination (*)
129
+ # 3. anchor2 - To coordination (*)
130
+ # 4. options - Features to export (in :format => 'gff' or 'tab')
131
+ # ['similarity', 'repeat', 'genscan', 'variation',
132
+ # 'gene']
133
+ #
134
+ # === Named Arguments
135
+ #
136
+ # * :seq_region_name - Chromosome number (*)
137
+ # * :anchor1 - From coordination (*)
138
+ # * :anchor2 - To coordination (*)
139
+ # * :type1 - From coordination type ['bp', ]
140
+ # * :type2 - To coordination type ['bp', ]
141
+ # * :upstream - Bp upstream
142
+ # * :downstream - Bp downstream
143
+ # * :format - File format ['fasta', 'gff', 'tab']
144
+ # * :options - Features to export (for :format => 'gff' or 'tab')
145
+ # ['similarity', 'repeat', 'genscan', 'variation',
146
+ # 'gene']
147
+ #
148
+ def exportview(*args)
149
+ defaults = {
150
+ :type1 => 'bp',
151
+ :type2 => 'bp',
152
+ :downstream => '',
153
+ :upstream => '',
154
+ :format => 'fasta',
155
+ :options => [],
156
+ :action => 'export',
157
+ :_format => 'Text',
158
+ :output => 'txt',
159
+ :submit => 'Continue >>'
160
+ }
161
+
162
+ if args.first.class == Hash
163
+ options = args.first
164
+ if options[:options] and options[:format] != 'fasta' and options[:format] != 'tab'
165
+ options.update({:format => 'gff'})
166
+ end
167
+ else
168
+ options = {
169
+ :seq_region_name => args[0],
170
+ :anchor1 => args[1],
171
+ :anchor2 => args[2],
172
+ }
173
+
174
+ case args[3]
175
+ when Array
176
+ options.update({:format => 'gff', :options => args[3]})
177
+ when Hash
178
+ options.update(args[3])
179
+ end
180
+
181
+ if args[4].class == Hash
182
+ options.update(args[4])
183
+ end
184
+ end
185
+
186
+ params = defaults.update(options)
187
+
188
+ result, = Bio::Command.post_form("#{@uri}/exportview", params)
189
+
190
+ return result.body
191
+ end
192
+
193
+ end # class Ensembl
194
+
195
+ end # module Bio
196
+
197
+
198
+
199
+ # Codes for backward-compatibility.
200
+ #
201
+ class Bio::Ensembl
202
+ EBIServerURI = ENSEMBL_URL
203
+
204
+ def self.server_uri(uri = nil)
205
+ if uri
206
+ @uri = uri
207
+ else
208
+ @uri || EBIServerURI
209
+ end
210
+ end
211
+
212
+ class Base
213
+ def self.exportview(*args)
214
+ Bio::Ensembl.new(Organism).exportview(*args)
215
+ end
216
+ end
217
+
218
+ class Human < Base
219
+ Organism = Bio::Ensembl.human.organism
220
+ end
221
+
222
+ class Mouse < Base
223
+ Organism = Bio::Ensembl.mouse.organism
224
+ end
225
+ end # class Bio::Ensembl
226
+
227
+
228
+
229
+
@@ -4,36 +4,42 @@
4
4
  # Copyright:: Copyright (C) 2005, 2006
5
5
  # Shuji SHIGENOBU <shige@nibb.ac.jp>,
6
6
  # Toshiaki Katayama <k@bioruby.org>,
7
- # Mitsuteru C. Nakao <n@bioruby.org>
8
- # Lisence:: LGPL
7
+ # Mitsuteru C. Nakao <n@bioruby.org>,
8
+ # Jan Aerts <jan.aerts@bbsrc.ac.uk>
9
+ # License:: The Ruby License
9
10
  #
10
- # $Id: fastacmd.rb,v 1.10 2006/01/28 08:12:21 nakao Exp $
11
+ # $Id: fastacmd.rb,v 1.16 2007/04/05 23:35:41 trevor Exp $
11
12
  #
12
- # == Description
13
+
14
+ require 'bio/db/fasta'
15
+ require 'bio/io/flatfile'
16
+ require 'bio/command'
17
+
18
+ module Bio
19
+ class Blast
20
+
21
+ # = DESCRIPTION
13
22
  #
14
- # Retrives FASTA formatted sequences from a blast database using
23
+ # Retrieves FASTA formatted sequences from a blast database using
15
24
  # NCBI fastacmd command.
16
25
  #
17
26
  # This class requires 'fastacmd' command and a blast database
18
27
  # (formatted using the '-o' option of 'formatdb').
19
28
  #
20
- # == Examples
29
+ # = USAGE
30
+ # require 'bio'
31
+ #
32
+ # fastacmd = Bio::Blast::Fastacmd.new("/db/myblastdb")
21
33
  #
22
- # database = ARGV.shift || "/db/myblastdb"
23
- # entry_id = ARGV.shift || "sp:128U_DROME"
24
- # ent_list = ["sp:1433_SPIOL", "sp:1432_MAIZE"]
34
+ # entry = fastacmd.get_by_id("sp:128U_DROME")
35
+ # fastacmd.fetch("sp:128U_DROME")
36
+ # fastacmd.fetch(["sp:1433_SPIOL", "sp:1432_MAIZE"])
25
37
  #
26
- # fastacmd = Bio::Blast::Fastacmd.new(database)
38
+ # fastacmd.fetch(["sp:1433_SPIOL", "sp:1432_MAIZE"]).each do |fasta|
39
+ # puts fasta
40
+ # end
27
41
  #
28
- # entry = fastacmd.get_by_id(entry_id)
29
- # fastacmd.fetch(entry_id)
30
- # fastacmd.fetch(ent_list)
31
- #
32
- # fastacmd.fetch(ent_list).each do |fasta|
33
- # puts fasta
34
- # end
35
- #
36
- # == References
42
+ # = REFERENCES
37
43
  #
38
44
  # * NCBI tool
39
45
  # ftp://ftp.ncbi.nih.gov/blast/executables/LATEST/ncbi.tar.gz
@@ -41,78 +47,65 @@
41
47
  # * fastacmd.html
42
48
  # http://biowulf.nih.gov/apps/blast/doc/fastacmd.html
43
49
  #
44
- #--
45
- #
46
- # This library is free software; you can redistribute it and/or
47
- # modify it under the terms of the GNU Lesser General Public
48
- # License as published by the Free Software Foundation; either
49
- # version 2 of the License, or (at your option) any later version.
50
- #
51
- # This library is distributed in the hope that it will be useful,
52
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
53
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
54
- # Lesser General Public License for more details.
55
- #
56
- # You should have received a copy of the GNU Lesser General Public
57
- # License along with this library; if not, write to the Free Software
58
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
59
- #
60
- #++
61
- #
62
-
63
- require 'bio/db/fasta'
64
- require 'bio/io/flatfile'
65
- require 'bio/command'
66
-
67
- module Bio
68
- class Blast
69
-
70
- # NCBI fastacmd wrapper class
71
- #
72
50
  class Fastacmd
73
51
 
74
52
  include Enumerable
75
- include Bio::Command::Tools
76
53
 
77
54
  # Database file path.
78
55
  attr_accessor :database
79
56
 
80
- # fastcmd command file path.
57
+ # fastacmd command file path.
81
58
  attr_accessor :fastacmd
82
59
 
60
+ # This method provides a handle to a BLASTable database, which you can then
61
+ # use to retrieve sequences.
83
62
  #
84
- attr_accessor :errorlog
85
-
86
- # Initalize a fastacmd object.
87
- #
88
- # fastacmd = Bio::Blast::Fastacmd.new("/db/myblastdb")
63
+ # Prerequisites:
64
+ # * You have created a BLASTable database with the '-o T' option.
65
+ # * You have the NCBI fastacmd tool installed.
66
+ #
67
+ # For example, suppose the original input file looks like:
68
+ # >my_seq_1
69
+ # ACCGACCTCCGGAACGGATAGCCCGACCTACG
70
+ # >my_seq_2
71
+ # TCCGACCTTTCCTACCGCACACCTACGCCATCAC
72
+ # ...
73
+ # and you've created a BLASTable database from that with the command
74
+ # cd /my_dir/
75
+ # formatdb -i my_input_file -t Test -n Test -o T
76
+ # then you can get a handle to this database with the command
77
+ # fastacmd = Bio::Blast::Fastacmd.new("/my_dir/Test")
78
+ # ---
79
+ # *Arguments*:
80
+ # * _database_:: path and name of BLASTable database
89
81
  def initialize(blast_database_file_path)
90
82
  @database = blast_database_file_path
91
83
  @fastacmd = 'fastacmd'
92
84
  end
93
85
 
94
86
 
95
- # get an entry_id and returns a Bio::FastaFormat object.
96
- #
97
- # entry_id = "sp:128U_DROME"
98
- # entry = fastacmd.get_by_id(entry_id)
87
+ # Get the sequence of a specific entry in the BLASTable database.
88
+ # For example:
89
+ # entry = fastacmd.get_by_id("sp:128U_DROME")
90
+ # ---
91
+ # *Arguments*:
92
+ # * _id_: id of an entry in the BLAST database
93
+ # *Returns*:: a Bio::FastaFormat object
99
94
  def get_by_id(entry_id)
100
95
  fetch(entry_id).shift
101
96
  end
102
97
 
103
- # get one or more entry_id and returns an Array of Bio::FastaFormat objects.
104
- #
105
- # Fastacmd#fetch(entry_id) returns an Array of a Bio::FastaFormat
106
- # object even when the result is a single entry.
98
+ # Get the sequence for a _list_ of IDs in the database.
107
99
  #
108
- # p fastacmd.fetch(entry_id)
109
- #
110
- # Fastacmd#fetch method also accepts a list of entry_id and returns
111
- # an Array of Bio::FastaFormat objects.
112
- #
113
- # ent_list = ["sp:1433_SPIOL", "sp:1432_MAIZE"]
114
- # p fastacmd.fetch(ent_list)
100
+ # For example:
101
+ # p fastacmd.fetch(["sp:1433_SPIOL", "sp:1432_MAIZE"])
115
102
  #
103
+ # This method always returns an array of Bio::FastaFormat objects, even when
104
+ # the result is a single entry.
105
+ # ---
106
+ # *Arguments*:
107
+ # * _ids_: list of IDs to retrieve from the database
108
+ # *Returns*:: array of Bio::FastaFormat objects
116
109
  def fetch(list)
117
110
  if list.respond_to?(:join)
118
111
  entry_id = list.join(",")
@@ -121,24 +114,24 @@ class Fastacmd
121
114
  end
122
115
 
123
116
  cmd = [ @fastacmd, '-d', @database, '-s', entry_id ]
124
- call_command_local(cmd) do |inn, out|
125
- inn.close_write
126
- Bio::FlatFile.new(Bio::FastaFormat, out).to_a
117
+ Bio::Command.call_command(cmd) do |io|
118
+ io.close_write
119
+ Bio::FlatFile.new(Bio::FastaFormat, io).to_a
127
120
  end
128
121
  end
129
122
 
130
- # Iterates each entry.
131
- #
132
- # You can also iterate on all sequences in the database!
133
- # fastacmd.each do |fasta|
134
- # p [ fasta.definition[0..30], fasta.seq.size ]
135
- # end
123
+ # Iterates over _all_ sequences in the database.
136
124
  #
125
+ # fastacmd.each_entry do |fasta|
126
+ # p [ fasta.definition[0..30], fasta.seq.size ]
127
+ # end
128
+ # ---
129
+ # *Returns*:: a Bio::FastaFormat object for each iteration
137
130
  def each_entry
138
- cmd = [ @fastacmd, '-d', @database, '-D', 'T' ]
139
- call_command_local(cmd) do |inn, out|
140
- inn.close_write
141
- Bio::FlatFile.open(Bio::FastaFormat, out) do |f|
131
+ cmd = [ @fastacmd, '-d', @database, '-D', '1' ]
132
+ Bio::Command.call_command(cmd) do |io|
133
+ io.close_write
134
+ Bio::FlatFile.open(Bio::FastaFormat, io) do |f|
142
135
  f.each_entry do |entry|
143
136
  yield entry
144
137
  end
@@ -153,4 +146,18 @@ end # class Fastacmd
153
146
  end # class Blast
154
147
  end # module Bio
155
148
 
149
+ if $0 == __FILE__
150
+ fastacmd = Bio::Blast::Fastacmd.new("/path_to_my_db/db_name")
151
+ seq = fastacmd.get_by_id('id_of_entry1')
152
+ puts seq.class
153
+ puts seq
154
+
155
+ seqs = fastacmd.fetch(['id_of_entry1','id_of_entry2'])
156
+ seqs.each do |seq|
157
+ puts seq
158
+ end
156
159
 
160
+ fastacmd.each_entry do |fasta|
161
+ puts fasta.seq.size.to_s + "\t" + fasta.definition
162
+ end
163
+ end