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,41 @@
1
+ #
2
+ # = bio/appl/probcons.rb - ProbCons application wrapper class
3
+ #
4
+ # Copyright:: Copyright (C) 2006-2007
5
+ # Jeffrey Blakeslee and John Conery University of Oregon <jeffb@uoregon.edu>
6
+ # Naohisa Goto <ng@bioruby.org>
7
+ # License:: The Ruby License
8
+ #
9
+ # $Id: probcons.rb,v 1.1 2007/07/16 12:25:50 ngoto Exp $
10
+ #
11
+ # Bio::Probcons is a wrapper class to execute ProbCons
12
+ # (Probabilistic Consistency-based Multiple Alignment
13
+ # of Amino Acid Sequences).
14
+ #
15
+ # == References
16
+ #
17
+ # * http://probcons.stanford.edu/
18
+ # * Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S.
19
+ # ProbCons: Probabilistic Consistency-based Multiple Sequence Alignment.
20
+ # Genome Research 15: 330-340, 2005.
21
+ #
22
+
23
+
24
+ module Bio
25
+
26
+ # Bio::Probcons is a wrapper class to execute PROBCONS
27
+ # (Probabilistic Consistency-based Multiple Alignment
28
+ # of Amino Acid Sequences).
29
+ #
30
+ # Please refer documents in bio/apple/probcons.rb for references.
31
+ class Probcons < Bio::Alignment::FactoryTemplate::FileInStdoutOut
32
+
33
+ # default program name
34
+ DEFAULT_PROGRAM = 'probcons'.freeze
35
+
36
+ # default report parser
37
+ DEFAULT_PARSER = Bio::Alignment::MultiFastaFormat
38
+
39
+ end #class Probcons
40
+
41
+ end #module Bio
@@ -1,79 +1,57 @@
1
+ module Bio
2
+
1
3
  #
2
4
  # = bio/appl/psort.rb - PSORT, protein sorting site prediction systems
3
5
  #
4
- # Copyright:: Copyright (C) 2003 Mitsuteru C. Nakao <n@bioruby.org>
5
- # License:: LGPL
6
- #
7
- #
8
- # $Id: psort.rb,v 1.8 2005/11/01 05:15:15 nakao Exp $
9
- #
10
- # == A client for PSORT WWW Server
11
- #
12
- # A client for PSORT WWW Server for predicting protein subcellular
13
- # localization.
14
- #
15
- # PSORT family members,
16
- # 1. PSORT
17
- # 2. PSORT II
18
- # 3. iPSORT
19
- # 4. PSORT-B http://psort.org
20
- # 5. WoLF-PSORT
21
- #
22
- # See http://psort.ims.u-tokyo.ac.jp.
23
- #
24
- # === Example
6
+ # Copyright:: Copyright (C) 2003-2006
7
+ # Mitsuteru C. Nakao <n@bioruby.org>
8
+ # License:: The Ruby License
25
9
  #
26
- #
27
- #--
28
- #
29
- # This library is free software; you can redistribute it and/or
30
- # modify it under the terms of the GNU Lesser General Public
31
- # License as published by the Free Software Foundation; either
32
- # version 2 of the License, or (at your option) any later version.
33
- #
34
- # This library is distributed in the hope that it will be useful,
35
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
36
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
37
- # Lesser General Public License for more details.
38
- #
39
- # You should have received a copy of the GNU Lesser General Public
40
- # License along with this library; if not, write to the Free Software
41
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
42
- #
43
- #++
10
+ # $Id: psort.rb,v 1.13 2007/04/05 23:35:39 trevor Exp $
44
11
  #
45
12
 
46
- require 'bio/sequence'
47
- require 'bio/db/fasta'
48
- require 'net/http'
13
+ require 'bio/appl/psort/report'
14
+ autoload :FastaFormat, 'bio/db/fasta'
15
+ autoload :Command, 'bio/command'
49
16
  require 'cgi'
50
-
51
-
52
- module Bio
53
-
54
-
55
-
56
-
17
+ require 'uri'
18
+
19
+ # == A client for PSORT WWW Server
20
+ #
21
+ # A client for PSORT WWW Server for predicting protein subcellular
22
+ # localization.
23
+ #
24
+ # PSORT family members,
25
+ # 1. PSORT
26
+ # 2. PSORT II
27
+ # 3. iPSORT
28
+ # 4. PSORT-B http://psort.org
29
+ # 5. WoLF-PSORT
30
+ #
31
+ # == References
32
+ #
33
+ # * http://psort.hgc.jp/
34
+ #
57
35
  class PSORT
36
+
58
37
  # a Hash for PSORT official hosts:
59
38
  # Key value (host)
60
39
  # ------- -----------------------
61
40
  # IMSUT psort.ims.u-tokyo.ac.jp
62
41
  # Okazaki psort.nibb.ac.jp
63
42
  # Peking srs.pku.edu.cn:8088
64
- WWWServer = {
65
- 'IMSUT' => {'host' => 'psort.hgc.jp', #'psort.ims.u-tokyo.ac.jp',
66
- 'PSORT1' => '/cgi-bin/okumura.pl',
67
- 'PSORT2' => '/cgi-bin/runpsort.pl'},
68
- 'Okazaki' => {'host' => 'psort.nibb.ac.jp',
69
- 'PSORT1' => '/cgi-bin/okumura.pl',
70
- 'PSORT2' => '/cgi-bin/runpsort.pl'},
71
- 'Peking' => {'host' => 'srs.pku.edu.en:8088',
72
- 'PSORT1' => '/cgi-bin/okumura.pl',
73
- 'PSORT2' => '/cgi-bin/runpsort.pl'}
43
+ ServerURI = {
44
+ :IMSUT => {
45
+ :PSORT1 => URI.parse("http://psort.hgc.jp/cgi-bin/okumura.pl"),
46
+ :PSORT2 => URI.parse("http://psort.hgc.jp/cgi-bin/runpsort.pl") },
47
+ :Okazaki => {
48
+ :PSORT1 => URI.parse("http://psort.nibb.ac.jp/cgi-bin/okumura.pl"),
49
+ :PSORT2 => URI.parse("http://psort.nibb.ac.jp/cgi-bin/runpsort.pl") },
50
+ :Peking => {
51
+ :PSORT1 => URI.parse("http:///src.pku.edu.cn:8088/cgi-bin/okumura.pl"),
52
+ :PSORT2 => URI.parse("http://src.pku.edu.cn:8088/cgi-bin/runpsort.pl") },
74
53
  }
75
54
 
76
-
77
55
  # = Generic CGI client class
78
56
  # A generic CGI client class for Bio::PSORT::* classes.
79
57
  # The class provides an interface for CGI argument processing and output
@@ -103,12 +81,26 @@ module Bio
103
81
  attr_reader :report
104
82
 
105
83
 
106
- # Sets remote ``host'' and cgi ``path''.
107
- def initialize(host = '', path = '')
108
- @host = host
109
- @path = path
84
+ # Sets remote host name and cgi path or uri.
85
+ #
86
+ # == Examples
87
+ #
88
+ # CGIDriver.new("localhost", "/cgi-bin/psort_www.pl")
89
+ #
90
+ # CGIDriver.new("http://localhost/cgi-bin/psort_www.pl")
91
+ #
92
+ # CGIDriver.new(URI.parse("http://localhost/cgi-bin/psort_www.pl"))
93
+ #
94
+ def initialize(host = '', path = '')
95
+ case host.to_s
96
+ when /^http:/
97
+ uri = host.to_s
98
+ else
99
+ uri = 'http://' + host + '/' + path
100
+ end
101
+ @uri = URI.parse(uri)
110
102
  @args = {}
111
- @report
103
+ @report = ''
112
104
  end
113
105
 
114
106
 
@@ -117,7 +109,10 @@ module Bio
117
109
  data = make_args(query)
118
110
 
119
111
  begin
120
- result, = Net::HTTP.new(@host).post(@path, data)
112
+ result = nil
113
+ Bio::Command.start_http(@uri.host) {|http|
114
+ result, = http.post(@uri.path, data)
115
+ }
121
116
  @report = result.body
122
117
  output = parse_report(@report)
123
118
  end
@@ -139,7 +134,7 @@ module Bio
139
134
 
140
135
  # Erases HTML tags
141
136
  def erase_html_tags(str)
142
- return str.gsub(/<\S.*?>/,'')
137
+ return str.gsub(/<\S.*?>/, '')
143
138
  end
144
139
 
145
140
  # Returns CGI argument text in String (key=value&) from a Hash ({key=>value}).
@@ -148,7 +143,7 @@ module Bio
148
143
  hash.each do |key, val|
149
144
  tmp << CGI.escape(key.to_s) + '=' + CGI.escape(val.to_s)
150
145
  end
151
- return tmp.join(delim) # not ';' but '&' in psort's cgi
146
+ return tmp.join(delim) # not ';' but '&' in the psort cgi script.
152
147
  end
153
148
 
154
149
  end # class CGIDriver
@@ -156,6 +151,7 @@ module Bio
156
151
 
157
152
 
158
153
  # = Bio::PSORT::PSORT1
154
+ #
159
155
  # Bio::PSORT::PSORT1 is a wapper class for the original PSORT program.
160
156
  #
161
157
  # == Example
@@ -168,9 +164,11 @@ module Bio
168
164
  # report_raw = serv.exec(Bio::FastaFormat.new(seq), false)
169
165
  #
170
166
  # == References
167
+ #
171
168
  # 1. Nakai, K. and Kanehisa, M., A knowledge base for predicting protein
172
169
  # localization sites in eukaryotic cells, Genomics 14, 897-911 (1992).
173
170
  # [PMID:1478671]
171
+ #
174
172
  class PSORT1
175
173
 
176
174
  autoload :Report, 'bio/appl/psort/report'
@@ -178,33 +176,31 @@ module Bio
178
176
  # Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
179
177
  # connecting to the IMSUT server.
180
178
  def self.imsut
181
- self.new(Remote.new(WWWServer['IMSUT']['host'],
182
- WWWServer['IMSUT']['PSORT1']))
179
+ self.new(Remote.new(ServerURI[:IMSUT][:PSORT1]))
183
180
  end
184
181
 
185
182
 
186
183
  # Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
187
184
  # connecting to the NIBB server.
188
185
  def self.okazaki
189
- self.new(Remote.new(WWWServer['Okazaki']['host'],
190
- WWWServer['Okazaki']['PSORT1']))
186
+ self.new(Remote.new(ServerURI[:Okazaki][:PSORT1]))
191
187
  end
192
188
 
193
189
 
194
190
  # Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
195
191
  # connecting to the Peking server.
196
192
  def self.peking
197
- self.new(Remote.new(WWWServer['Peking']['host'],
198
- WWWServer['Peking']['PSORT1']))
193
+ self.new(Remote.new(ServerURI[:Peking][:PSORT1]))
199
194
  end
200
195
 
201
196
 
202
- # Sets a server CGI Driver (Bio::PSORT::PSORT1::Remote).
203
- def initialize(driver, origin = 'yeast')
204
- @serv = driver
205
- @origin = origin # Gram-positive bacterium, Gram-negative bacterium,
206
- # yeast, aminal, plant
207
- @title = 'MYSEQ'
197
+ # Sets a cgi client (Bio::PSORT::PSORT1::Remote).
198
+ #
199
+ def initialize(driver, origin = 'yeast', title = 'MYSEQ')
200
+ @serv = driver
201
+ @origin = origin # Gram-positive bacterium, Gram-negative bacterium,
202
+ # yeast, aminal, plant
203
+ @title = title
208
204
  @sequence = ''
209
205
  end
210
206
 
@@ -236,9 +232,9 @@ module Bio
236
232
  # returns ourput text without any parsing.
237
233
  def exec(faa, parsing = true)
238
234
  if faa.class == Bio::FastaFormat
239
- @title = faa.entry_id if @title == 'MYSEQ'
240
- @sequence = faa.seq
241
- @serv.args = {'title' => @title, 'origin' => @origin}
235
+ @title = faa.entry_id if @title == 'MYSEQ'
236
+ @sequence = faa.seq
237
+ @serv.args = {'title' => @title, 'origin' => @origin}
242
238
  @serv.parsing = parsing
243
239
  return @serv.exec(sequence)
244
240
  else
@@ -267,9 +263,9 @@ module Bio
267
263
  attr_accessor :parsing
268
264
 
269
265
  # Sets remote ``host'' and cgi ``path''.
270
- def initialize(host, path)
271
- @origin = 'yeast'
272
- @title = 'MYSEQ'
266
+ def initialize(host, path = nil, title = 'MYSEQ', origin = 'yeast')
267
+ @title = title
268
+ @origin = origin
273
269
  @parsing = true
274
270
  super(host, path)
275
271
  end
@@ -326,29 +322,26 @@ module Bio
326
322
  # IMSUT psort.ims.u-tokyo.ac.jp /cgi-bin/runpsort.pl (default)
327
323
  # Okazaki psort.nibb.ac.jp /cgi-bin/runpsort.pl
328
324
  # Peking srs.pku.edu.cn:8088 /cgi-bin/runpsort.pl
329
- def self.remote(host, path)
325
+ def self.remote(host, path = nil)
330
326
  self.new(Remote.new(host, path))
331
327
  end
332
328
 
333
329
  # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
334
330
  # connecting to the IMSUT server.
335
331
  def self.imsut
336
- self.remote(WWWServer['IMSUT']['host'],
337
- WWWServer['IMSUT']['PSORT2'])
332
+ self.remote(ServerURI[:IMSUT][:PSORT2])
338
333
  end
339
334
 
340
335
  # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
341
336
  # connecting to the NIBB server.
342
337
  def self.okazaki
343
- self.remote(WWWServer['Okazaki']['host'],
344
- WWWServer['Okazaki']['PSORT2'])
338
+ self.remote(ServerURI[:Okazaki][:PSORT2])
345
339
  end
346
340
 
347
341
  # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
348
342
  # connecting to the Peking server.
349
343
  def self.peking
350
- self.remote(WWWServer['Peking']['host'],
351
- WWWServer['Peking']['PSORT2'])
344
+ self.remote(ServerURI[:Peking][:PSORT2])
352
345
  end
353
346
 
354
347
  # An accessor of the origin argument.
@@ -373,9 +366,9 @@ module Bio
373
366
  # Returns PSORT II report in text if parsing = false.
374
367
  def exec(faa, parsing = true)
375
368
  if faa.class == Bio::FastaFormat
376
- @title = faa.entry_id if @title == nil
377
- @sequence = faa.seq
378
- @serv.args = {'origin' => @origin, 'title' => @title}
369
+ @title = faa.entry_id if @title == nil
370
+ @sequence = faa.seq
371
+ @serv.args = {'origin' => @origin, 'title' => @title}
379
372
  @serv.parsing = parsing
380
373
  return @serv.exec(@sequence)
381
374
  else
@@ -1,38 +1,22 @@
1
1
  #
2
2
  # = bio/appl/psort/report.rb - PSORT systems report classes
3
3
  #
4
- # Copyright:: Copyright (C) 2003 Mitsuteru C. Nakao <n@bioruby.org>
5
- # License:: LGPL
4
+ # Copyright:: Copyright (C) 2003
5
+ # Mitsuteru C. Nakao <n@bioruby.org>
6
+ # License:: The Ruby License
6
7
  #
7
- # $Id: report.rb,v 1.12 2005/11/03 10:50:58 nakao Exp $
8
+ # $Id: report.rb,v 1.15 2007/04/05 23:35:40 trevor Exp $
8
9
  #
9
10
  # == A Report classes for PSORT Systems
10
11
  #
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
- # ++
28
- #
29
12
 
30
- require 'bio/sequence'
31
13
  require 'bio/appl/psort'
32
14
 
33
15
 
34
16
  module Bio
35
17
 
18
+ autoload :Sequence, 'bio/sequence'
19
+
36
20
  class PSORT
37
21
 
38
22
  class PSORT1
@@ -0,0 +1,263 @@
1
+ module Bio
2
+
3
+ #
4
+ # = bio/appl/pts1.rb - A web service client of PTS1, predicting for the
5
+ # peroxisomal targeting signal type 1.
6
+ #
7
+ # Copyright:: Copyright (C) 2006
8
+ # Mitsuteru C. Nakao <n@bioruby.org>
9
+ # License:: The Ruby License
10
+ #
11
+ # $Id: pts1.rb,v 1.5 2007/04/05 23:35:39 trevor Exp $
12
+ #
13
+
14
+ require 'uri'
15
+ require 'net/http'
16
+ require 'bio/db/fasta'
17
+ require 'bio/command'
18
+
19
+ # = Bio::PTS1 - A web service client class for PTS1 predictor.
20
+ #
21
+ # == Peroxisomal targeting signal type 1 (PTS1) predictor
22
+ #
23
+ # Bio::PTS1 class is a client of the PTS1 predictor.
24
+ #
25
+ # == Examples
26
+ #
27
+ # require 'bio'
28
+ # sp = Bio::SPTR.new(Bio::Fetch.query("sp", "p53_human"))
29
+ # faa = sp.seq.to_fasta(sp.entry_id)
30
+ # pts1 = Bio::PTS1.new
31
+ # report = pts1.exec_remote(faa)
32
+ # report.output #=> "<HTML>\n<HEAD><TITLE>PTS1 Prediction Server ..."
33
+ # report.prediction #=> "Not targeted"
34
+ # report.cterm #=> "KLMFKTEGPDSD"
35
+ # report.score #=> "-79.881"
36
+ # report.fp #=> "67.79%"
37
+ # report.sppta #=> "-1.110"
38
+ # report.spptna #=> "-41.937"
39
+ # report.profile #=> "-36.834"
40
+ #
41
+ # == References
42
+ #
43
+ # * The PTS1 predictor
44
+ # http://mendel.imp.ac.at/mendeljsp/sat/pts1/PTS1predictor.jsp
45
+ #
46
+ # * Neuberger G, Maurer-Stroh S, Eisenhaber B, Hartig A, Eisenhaber F.
47
+ # Motif refinement of the peroxisomal targeting signal 1 and evaluation
48
+ # of taxon-specific differences.
49
+ # J Mol Biol. 2003 May 2;328(3):567-79. PMID: 12706717
50
+ #
51
+ # * Neuberger G, Maurer-Stroh S, Eisenhaber B, Hartig A, Eisenhaber F.
52
+ # Prediction of peroxisomal targeting signal 1 containing proteins from
53
+ # amino acid sequence.
54
+ # J Mol Biol. 2003 May 2;328(3):581-92. PMID: 12706718
55
+ #
56
+ class PTS1
57
+
58
+ # Organism specific parameter value: function names.
59
+ FUNCTION = {
60
+ 'METAZOA-specific' => 1,
61
+ 'FUNGI-specific' => 2,
62
+ 'GENERAL' => 3,
63
+ }
64
+
65
+ # Output report.
66
+ attr_reader :output
67
+
68
+ # Used function name (Integer).
69
+ # function_name = Bio::PTS1::FUNCTION.find_all {|k,v| v == pts1.function }[0][0]
70
+ attr_reader :function
71
+
72
+ # Short-cut for Bio::PTS1.new(Bio::PTS1::FUNCTION['METAZOA-specific'])
73
+ def self.new_with_metazoa_function
74
+ self.new('METAZOA-specific')
75
+ end
76
+
77
+ # Short-cut for Bio::PTS1.new(Bio::PTS1::FUNCTION['FUNGI-specific'])
78
+ def self.new_with_fungi_function
79
+ self.new('FUNGI-specific')
80
+ end
81
+
82
+ # Short-cut for Bio::PTS1.new(Bio::PTS1::FUNCTION['GENERAL'])
83
+ def self.new_with_general_function
84
+ self.new('GENERAL')
85
+ end
86
+
87
+
88
+ # Constructs Bio::PTS1 web service client.
89
+ #
90
+ # == Examples
91
+ #
92
+ # serv_default_metazoa_specific = Bio::PTS1.new
93
+ # serv_general_function = Bio::PTS1.new('GENERAL')
94
+ # serv_fungi_specific = Bio::PTS1.new(2) # See Bio::PTS1::FUNCTION.
95
+ #
96
+ def initialize(func = 'METAZOA-specific')
97
+ @host = "mendel.imp.ac.at"
98
+ @cgi_path = "/sat/pts1/cgi-bin/pts1.cgi"
99
+ @output = nil
100
+ @function = function(func)
101
+ end
102
+
103
+
104
+ # Sets and shows the function parameter.
105
+ #
106
+ # Organism specific parameter: function names (Bio::PTS1::FUNTION.keys).
107
+ #
108
+ #
109
+ # == Examples
110
+ #
111
+ # # sets function name parameter.
112
+ # serv = Bio::PTS1.new
113
+ # serv.function('METAZOA-specific')
114
+ #
115
+ # # shows function name parameter.
116
+ # serv.function #=> "METAZOA-specific"
117
+ #
118
+ def function(func = nil)
119
+ return @function.keys.to_s if func == nil
120
+
121
+ if FUNCTION.values.include?(func)
122
+ @function = Hash[*FUNCTION.find {|x| x[1] == func}]
123
+ elsif FUNCTION[func]
124
+ @function = {func => FUNCTION[func]}
125
+ else
126
+ raise ArgumentError,
127
+ "Invalid argument: #{func}",
128
+ "Available function names: #{FUNCTION.keys.inspect}"
129
+ end
130
+ @function
131
+ end
132
+
133
+
134
+ # Executes the query request and returns result output in Bio::PTS1::Report.
135
+ # The query argument is available both aSting in fasta format text and
136
+ # aBio::FastaFormat.
137
+ #
138
+ # == Examples
139
+ #
140
+ # require 'bio'
141
+ # pts1 = Bio::PTS1.new
142
+ # pts1.exec(">title\nKLMFKTEGPDSD")
143
+ #
144
+ # pts1.exec(Bio::FastaFormat.new(">title\nKLMFKTEGPDSD"))
145
+ #
146
+ def exec(query)
147
+ seq = set_sequence_in_fastaformat(query)
148
+
149
+ @form_data = {'function' => @function.values.to_s,
150
+ 'sequence' => seq.seq,
151
+ 'name' => seq.definition }
152
+ @uri = URI.parse(["http:/", @host, @cgi_path].join('/'))
153
+
154
+ result, = Bio::Command.post_form(@uri, @form_data)
155
+ @output = Report.new(result.body)
156
+
157
+ return @output
158
+ end
159
+
160
+ private
161
+
162
+ # Sets query sequence in Fasta Format if any.
163
+ def set_sequence_in_fastaformat(query)
164
+ if query.class == Bio::FastaFormat
165
+ return query
166
+ else
167
+ return Bio::FastaFormat.new(query)
168
+ end
169
+ end
170
+
171
+
172
+ # = Parser for the PTS1 prediction Report (in HTML).
173
+ #
174
+ #
175
+ class Report
176
+
177
+ # Query sequence name.
178
+ attr_reader :entry_id
179
+
180
+ # Amino acids subsequence at C-terminal region.
181
+ attr_reader :cterm
182
+
183
+ # Score
184
+ attr_reader :score
185
+
186
+ # Profile
187
+ attr_reader :profile
188
+
189
+ # S_ppt (non accessibility)
190
+ attr_reader :spptna
191
+
192
+ # S_ppt (accessibility)
193
+ attr_reader :sppta
194
+
195
+ # False positive probability
196
+ attr_reader :fp
197
+
198
+ # Prediction ("Targeted", "Twilight zone" and "Not targeted")
199
+ attr_reader :prediction
200
+
201
+ # Raw output
202
+ attr_reader :output
203
+
204
+ # Parsing PTS1 HTML report.
205
+ #
206
+ # == Example
207
+ #
208
+ # report = Bio::PTS1::Report.new(str)
209
+ # report.cterm
210
+ #
211
+ def initialize(str)
212
+ @cterm = ''
213
+ @score = 0
214
+ @profile = 0
215
+ @spptna = 0
216
+ @sppta = 0
217
+ @fp = 0
218
+ @prediction = 0
219
+
220
+ if /PTS1 query prediction/m =~ str
221
+ @output = str
222
+ parse
223
+ else
224
+ raise
225
+ end
226
+ end
227
+
228
+
229
+ private
230
+
231
+ def parse
232
+ @output.each do |line|
233
+ case line
234
+ when /Name<\/td><td>(\S.+)<\/td><\/tr>/
235
+ @entry_id = $1
236
+ when /C-terminus<\/td><td>(\w+)<\/td>/
237
+ @cterm = $1
238
+ when /Score<\/b><td><b>(-?\d.+?)<\/b><\/td><\/tr>/
239
+ @score = $1
240
+ when /Profile<\/i><\/td><td>(.+?)<\/td>/
241
+ @profile = $1
242
+ when /S_ppt \(non-accessibility\)<\/i><\/td><td>(.+?)<\/td>/
243
+ @spptna = $1
244
+ when /S_ppt \(accessibility\)<\/i><\/td><td>(.+?)<\/td>/
245
+ @sppta = $1
246
+ when /P\(false positive\)<\/i><\/td><td>(.+?)<\/td>/
247
+ @fp = $1
248
+ when /Prediction classification<\/i><\/td><td>(\w.+?)<\/td>/
249
+ @prediction = $1
250
+ else
251
+ end
252
+ end
253
+ end
254
+
255
+ end # class Report
256
+
257
+ end # class PTS1
258
+
259
+ end # module Bio
260
+
261
+
262
+
263
+