jandot-bio 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (335) hide show
  1. data/bin/bioruby +44 -0
  2. data/bin/br_biofetch.rb +47 -0
  3. data/bin/br_bioflat.rb +282 -0
  4. data/bin/br_biogetseq.rb +45 -0
  5. data/bin/br_pmfetch.rb +421 -0
  6. data/doc/Changes-0.7.rd +369 -0
  7. data/doc/KEGG_API.rd +1843 -0
  8. data/doc/KEGG_API.rd.ja +1834 -0
  9. data/doc/Tutorial.rd +1296 -0
  10. data/doc/Tutorial.rd.ja +2640 -0
  11. data/etc/bioinformatics/seqdatabase.ini +210 -0
  12. data/lib/bio.rb +279 -0
  13. data/lib/bio/alignment.rb +2518 -0
  14. data/lib/bio/appl/bl2seq/report.rb +334 -0
  15. data/lib/bio/appl/blast.rb +351 -0
  16. data/lib/bio/appl/blast/format0.rb +1438 -0
  17. data/lib/bio/appl/blast/format8.rb +83 -0
  18. data/lib/bio/appl/blast/report.rb +516 -0
  19. data/lib/bio/appl/blast/rexml.rb +135 -0
  20. data/lib/bio/appl/blast/rpsblast.rb +176 -0
  21. data/lib/bio/appl/blast/wublast.rb +550 -0
  22. data/lib/bio/appl/blast/xmlparser.rb +228 -0
  23. data/lib/bio/appl/blat/report.rb +489 -0
  24. data/lib/bio/appl/clustalw.rb +219 -0
  25. data/lib/bio/appl/clustalw/report.rb +152 -0
  26. data/lib/bio/appl/emboss.rb +203 -0
  27. data/lib/bio/appl/fasta.rb +237 -0
  28. data/lib/bio/appl/fasta/format10.rb +325 -0
  29. data/lib/bio/appl/gcg/msf.rb +212 -0
  30. data/lib/bio/appl/gcg/seq.rb +195 -0
  31. data/lib/bio/appl/genscan/report.rb +552 -0
  32. data/lib/bio/appl/hmmer.rb +126 -0
  33. data/lib/bio/appl/hmmer/report.rb +683 -0
  34. data/lib/bio/appl/iprscan/report.rb +374 -0
  35. data/lib/bio/appl/mafft.rb +259 -0
  36. data/lib/bio/appl/mafft/report.rb +226 -0
  37. data/lib/bio/appl/muscle.rb +52 -0
  38. data/lib/bio/appl/phylip/alignment.rb +129 -0
  39. data/lib/bio/appl/phylip/distance_matrix.rb +96 -0
  40. data/lib/bio/appl/probcons.rb +41 -0
  41. data/lib/bio/appl/psort.rb +548 -0
  42. data/lib/bio/appl/psort/report.rb +457 -0
  43. data/lib/bio/appl/pts1.rb +263 -0
  44. data/lib/bio/appl/sim4.rb +124 -0
  45. data/lib/bio/appl/sim4/report.rb +485 -0
  46. data/lib/bio/appl/sosui/report.rb +151 -0
  47. data/lib/bio/appl/spidey/report.rb +593 -0
  48. data/lib/bio/appl/targetp/report.rb +267 -0
  49. data/lib/bio/appl/tcoffee.rb +55 -0
  50. data/lib/bio/appl/tmhmm/report.rb +222 -0
  51. data/lib/bio/command.rb +337 -0
  52. data/lib/bio/data/aa.rb +349 -0
  53. data/lib/bio/data/codontable.rb +722 -0
  54. data/lib/bio/data/na.rb +223 -0
  55. data/lib/bio/db.rb +329 -0
  56. data/lib/bio/db/aaindex.rb +357 -0
  57. data/lib/bio/db/embl/common.rb +336 -0
  58. data/lib/bio/db/embl/embl.rb +402 -0
  59. data/lib/bio/db/embl/sptr.rb +1283 -0
  60. data/lib/bio/db/embl/swissprot.rb +42 -0
  61. data/lib/bio/db/embl/trembl.rb +41 -0
  62. data/lib/bio/db/embl/uniprot.rb +42 -0
  63. data/lib/bio/db/fantom.rb +599 -0
  64. data/lib/bio/db/fasta.rb +907 -0
  65. data/lib/bio/db/genbank/common.rb +290 -0
  66. data/lib/bio/db/genbank/ddbj.rb +22 -0
  67. data/lib/bio/db/genbank/genbank.rb +215 -0
  68. data/lib/bio/db/genbank/genpept.rb +60 -0
  69. data/lib/bio/db/genbank/refseq.rb +18 -0
  70. data/lib/bio/db/gff.rb +174 -0
  71. data/lib/bio/db/go.rb +481 -0
  72. data/lib/bio/db/kegg/brite.rb +41 -0
  73. data/lib/bio/db/kegg/compound.rb +131 -0
  74. data/lib/bio/db/kegg/drug.rb +98 -0
  75. data/lib/bio/db/kegg/enzyme.rb +148 -0
  76. data/lib/bio/db/kegg/expression.rb +155 -0
  77. data/lib/bio/db/kegg/genes.rb +263 -0
  78. data/lib/bio/db/kegg/genome.rb +241 -0
  79. data/lib/bio/db/kegg/glycan.rb +170 -0
  80. data/lib/bio/db/kegg/keggtab.rb +357 -0
  81. data/lib/bio/db/kegg/kgml.rb +256 -0
  82. data/lib/bio/db/kegg/orthology.rb +136 -0
  83. data/lib/bio/db/kegg/reaction.rb +82 -0
  84. data/lib/bio/db/kegg/taxonomy.rb +331 -0
  85. data/lib/bio/db/lasergene.rb +209 -0
  86. data/lib/bio/db/litdb.rb +107 -0
  87. data/lib/bio/db/medline.rb +323 -0
  88. data/lib/bio/db/nbrf.rb +191 -0
  89. data/lib/bio/db/newick.rb +658 -0
  90. data/lib/bio/db/nexus.rb +1854 -0
  91. data/lib/bio/db/pdb.rb +29 -0
  92. data/lib/bio/db/pdb/atom.rb +77 -0
  93. data/lib/bio/db/pdb/chain.rb +210 -0
  94. data/lib/bio/db/pdb/chemicalcomponent.rb +224 -0
  95. data/lib/bio/db/pdb/model.rb +148 -0
  96. data/lib/bio/db/pdb/pdb.rb +1911 -0
  97. data/lib/bio/db/pdb/residue.rb +176 -0
  98. data/lib/bio/db/pdb/utils.rb +399 -0
  99. data/lib/bio/db/prosite.rb +597 -0
  100. data/lib/bio/db/rebase.rb +457 -0
  101. data/lib/bio/db/soft.rb +404 -0
  102. data/lib/bio/db/transfac.rb +375 -0
  103. data/lib/bio/feature.rb +226 -0
  104. data/lib/bio/io/das.rb +461 -0
  105. data/lib/bio/io/dbget.rb +194 -0
  106. data/lib/bio/io/ddbjxml.rb +581 -0
  107. data/lib/bio/io/ebisoap.rb +158 -0
  108. data/lib/bio/io/ensembl.rb +229 -0
  109. data/lib/bio/io/fastacmd.rb +163 -0
  110. data/lib/bio/io/fetch.rb +181 -0
  111. data/lib/bio/io/flatfile.rb +1309 -0
  112. data/lib/bio/io/flatfile/bdb.rb +253 -0
  113. data/lib/bio/io/flatfile/index.rb +1371 -0
  114. data/lib/bio/io/flatfile/indexer.rb +787 -0
  115. data/lib/bio/io/higet.rb +73 -0
  116. data/lib/bio/io/hinv.rb +442 -0
  117. data/lib/bio/io/keggapi.rb +805 -0
  118. data/lib/bio/io/ncbirest.rb +256 -0
  119. data/lib/bio/io/ncbisoap.rb +155 -0
  120. data/lib/bio/io/pubmed.rb +307 -0
  121. data/lib/bio/io/registry.rb +292 -0
  122. data/lib/bio/io/soapwsdl.rb +119 -0
  123. data/lib/bio/io/sql.rb +365 -0
  124. data/lib/bio/location.rb +772 -0
  125. data/lib/bio/map.rb +410 -0
  126. data/lib/bio/pathway.rb +854 -0
  127. data/lib/bio/reference.rb +623 -0
  128. data/lib/bio/sequence.rb +475 -0
  129. data/lib/bio/sequence/aa.rb +125 -0
  130. data/lib/bio/sequence/common.rb +333 -0
  131. data/lib/bio/sequence/compat.rb +123 -0
  132. data/lib/bio/sequence/format.rb +181 -0
  133. data/lib/bio/sequence/generic.rb +24 -0
  134. data/lib/bio/sequence/na.rb +491 -0
  135. data/lib/bio/shell.rb +44 -0
  136. data/lib/bio/shell/core.rb +578 -0
  137. data/lib/bio/shell/demo.rb +146 -0
  138. data/lib/bio/shell/interface.rb +218 -0
  139. data/lib/bio/shell/irb.rb +95 -0
  140. data/lib/bio/shell/object.rb +71 -0
  141. data/lib/bio/shell/plugin/blast.rb +42 -0
  142. data/lib/bio/shell/plugin/codon.rb +218 -0
  143. data/lib/bio/shell/plugin/das.rb +58 -0
  144. data/lib/bio/shell/plugin/emboss.rb +23 -0
  145. data/lib/bio/shell/plugin/entry.rb +105 -0
  146. data/lib/bio/shell/plugin/flatfile.rb +101 -0
  147. data/lib/bio/shell/plugin/keggapi.rb +181 -0
  148. data/lib/bio/shell/plugin/midi.rb +430 -0
  149. data/lib/bio/shell/plugin/obda.rb +45 -0
  150. data/lib/bio/shell/plugin/psort.rb +56 -0
  151. data/lib/bio/shell/plugin/seq.rb +247 -0
  152. data/lib/bio/shell/plugin/soap.rb +87 -0
  153. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/bioruby_generator.rb +29 -0
  154. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_classes.rhtml +4 -0
  155. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_log.rhtml +27 -0
  156. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_methods.rhtml +11 -0
  157. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_modules.rhtml +4 -0
  158. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_variables.rhtml +7 -0
  159. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-bg.gif +0 -0
  160. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-gem.png +0 -0
  161. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-link.gif +0 -0
  162. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.css +368 -0
  163. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.rhtml +47 -0
  164. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_controller.rb +144 -0
  165. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_helper.rb +47 -0
  166. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/commands.rhtml +8 -0
  167. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/history.rhtml +10 -0
  168. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/index.rhtml +26 -0
  169. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/spinner.gif +0 -0
  170. data/lib/bio/shell/script.rb +25 -0
  171. data/lib/bio/shell/setup.rb +109 -0
  172. data/lib/bio/shell/web.rb +102 -0
  173. data/lib/bio/tree.rb +850 -0
  174. data/lib/bio/util/color_scheme.rb +191 -0
  175. data/lib/bio/util/color_scheme/buried.rb +59 -0
  176. data/lib/bio/util/color_scheme/helix.rb +59 -0
  177. data/lib/bio/util/color_scheme/hydropathy.rb +64 -0
  178. data/lib/bio/util/color_scheme/nucleotide.rb +31 -0
  179. data/lib/bio/util/color_scheme/strand.rb +59 -0
  180. data/lib/bio/util/color_scheme/taylor.rb +50 -0
  181. data/lib/bio/util/color_scheme/turn.rb +59 -0
  182. data/lib/bio/util/color_scheme/zappo.rb +50 -0
  183. data/lib/bio/util/contingency_table.rb +370 -0
  184. data/lib/bio/util/restriction_enzyme.rb +228 -0
  185. data/lib/bio/util/restriction_enzyme/analysis.rb +249 -0
  186. data/lib/bio/util/restriction_enzyme/analysis_basic.rb +217 -0
  187. data/lib/bio/util/restriction_enzyme/cut_symbol.rb +107 -0
  188. data/lib/bio/util/restriction_enzyme/double_stranded.rb +321 -0
  189. data/lib/bio/util/restriction_enzyme/double_stranded/aligned_strands.rb +130 -0
  190. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair.rb +103 -0
  191. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair_in_enzyme_notation.rb +38 -0
  192. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations.rb +76 -0
  193. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations_in_enzyme_notation.rb +107 -0
  194. data/lib/bio/util/restriction_enzyme/enzymes.yaml +7061 -0
  195. data/lib/bio/util/restriction_enzyme/range/cut_range.rb +24 -0
  196. data/lib/bio/util/restriction_enzyme/range/cut_ranges.rb +47 -0
  197. data/lib/bio/util/restriction_enzyme/range/horizontal_cut_range.rb +67 -0
  198. data/lib/bio/util/restriction_enzyme/range/sequence_range.rb +257 -0
  199. data/lib/bio/util/restriction_enzyme/range/sequence_range/calculated_cuts.rb +242 -0
  200. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragment.rb +51 -0
  201. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragments.rb +41 -0
  202. data/lib/bio/util/restriction_enzyme/range/vertical_cut_range.rb +77 -0
  203. data/lib/bio/util/restriction_enzyme/single_strand.rb +199 -0
  204. data/lib/bio/util/restriction_enzyme/single_strand/cut_locations_in_enzyme_notation.rb +135 -0
  205. data/lib/bio/util/restriction_enzyme/single_strand_complement.rb +23 -0
  206. data/lib/bio/util/restriction_enzyme/string_formatting.rb +111 -0
  207. data/lib/bio/util/sirna.rb +288 -0
  208. data/sample/any2fasta.rb +59 -0
  209. data/sample/biofetch.rb +475 -0
  210. data/sample/color_scheme_na.rb +91 -0
  211. data/sample/dbget +37 -0
  212. data/sample/enzymes.rb +78 -0
  213. data/sample/fasta2tab.rb +99 -0
  214. data/sample/fastagrep.rb +72 -0
  215. data/sample/fastasort.rb +54 -0
  216. data/sample/fsplit.rb +51 -0
  217. data/sample/gb2fasta.rb +30 -0
  218. data/sample/gb2tab.rb +325 -0
  219. data/sample/gbtab2mysql.rb +161 -0
  220. data/sample/genes2nuc.rb +33 -0
  221. data/sample/genes2pep.rb +33 -0
  222. data/sample/genes2tab.rb +81 -0
  223. data/sample/genome2rb.rb +29 -0
  224. data/sample/genome2tab.rb +76 -0
  225. data/sample/goslim.rb +303 -0
  226. data/sample/gt2fasta.rb +47 -0
  227. data/sample/na2aa.rb +34 -0
  228. data/sample/pmfetch.rb +42 -0
  229. data/sample/pmsearch.rb +42 -0
  230. data/sample/psortplot_html.rb +214 -0
  231. data/sample/ssearch2tab.rb +96 -0
  232. data/sample/tdiary.rb +158 -0
  233. data/sample/tfastx2tab.rb +100 -0
  234. data/sample/vs-genes.rb +212 -0
  235. data/test/data/HMMER/hmmpfam.out +64 -0
  236. data/test/data/HMMER/hmmsearch.out +88 -0
  237. data/test/data/SOSUI/sample.report +11 -0
  238. data/test/data/TMHMM/sample.report +21 -0
  239. data/test/data/aaindex/DAYM780301 +30 -0
  240. data/test/data/aaindex/PRAM900102 +20 -0
  241. data/test/data/bl2seq/cd8a_cd8b_blastp.bl2seq +53 -0
  242. data/test/data/bl2seq/cd8a_p53_e-5blastp.bl2seq +37 -0
  243. data/test/data/blast/2.2.15.blastp.m7 +876 -0
  244. data/test/data/blast/b0002.faa +15 -0
  245. data/test/data/blast/b0002.faa.m0 +128 -0
  246. data/test/data/blast/b0002.faa.m7 +65 -0
  247. data/test/data/blast/b0002.faa.m8 +1 -0
  248. data/test/data/embl/AB090716.embl +65 -0
  249. data/test/data/embl/AB090716.embl.rel89 +63 -0
  250. data/test/data/fasta/example1.txt +75 -0
  251. data/test/data/fasta/example2.txt +21 -0
  252. data/test/data/genscan/sample.report +63 -0
  253. data/test/data/iprscan/merged.raw +32 -0
  254. data/test/data/iprscan/merged.txt +74 -0
  255. data/test/data/prosite/prosite.dat +2233 -0
  256. data/test/data/refseq/nm_126355.entret +64 -0
  257. data/test/data/soft/GDS100_partial.soft +92 -0
  258. data/test/data/soft/GSE3457_family_partial.soft +874 -0
  259. data/test/data/uniprot/p53_human.uniprot +1456 -0
  260. data/test/functional/bio/io/test_ensembl.rb +186 -0
  261. data/test/functional/bio/io/test_soapwsdl.rb +52 -0
  262. data/test/runner.rb +14 -0
  263. data/test/unit/bio/appl/bl2seq/test_report.rb +134 -0
  264. data/test/unit/bio/appl/blast/test_report.rb +417 -0
  265. data/test/unit/bio/appl/blast/test_xmlparser.rb +388 -0
  266. data/test/unit/bio/appl/genscan/test_report.rb +182 -0
  267. data/test/unit/bio/appl/hmmer/test_report.rb +342 -0
  268. data/test/unit/bio/appl/iprscan/test_report.rb +338 -0
  269. data/test/unit/bio/appl/mafft/test_report.rb +63 -0
  270. data/test/unit/bio/appl/sosui/test_report.rb +81 -0
  271. data/test/unit/bio/appl/targetp/test_report.rb +146 -0
  272. data/test/unit/bio/appl/test_blast.rb +163 -0
  273. data/test/unit/bio/appl/test_fasta.rb +130 -0
  274. data/test/unit/bio/appl/test_pts1.rb +140 -0
  275. data/test/unit/bio/appl/tmhmm/test_report.rb +126 -0
  276. data/test/unit/bio/data/test_aa.rb +90 -0
  277. data/test/unit/bio/data/test_codontable.rb +107 -0
  278. data/test/unit/bio/data/test_na.rb +80 -0
  279. data/test/unit/bio/db/embl/test_common.rb +117 -0
  280. data/test/unit/bio/db/embl/test_embl.rb +214 -0
  281. data/test/unit/bio/db/embl/test_embl_rel89.rb +219 -0
  282. data/test/unit/bio/db/embl/test_sptr.rb +1775 -0
  283. data/test/unit/bio/db/embl/test_uniprot.rb +31 -0
  284. data/test/unit/bio/db/kegg/test_genes.rb +45 -0
  285. data/test/unit/bio/db/pdb/test_pdb.rb +152 -0
  286. data/test/unit/bio/db/test_aaindex.rb +197 -0
  287. data/test/unit/bio/db/test_fasta.rb +250 -0
  288. data/test/unit/bio/db/test_gff.rb +127 -0
  289. data/test/unit/bio/db/test_lasergene.rb +95 -0
  290. data/test/unit/bio/db/test_newick.rb +293 -0
  291. data/test/unit/bio/db/test_nexus.rb +360 -0
  292. data/test/unit/bio/db/test_prosite.rb +1437 -0
  293. data/test/unit/bio/db/test_rebase.rb +101 -0
  294. data/test/unit/bio/db/test_soft.rb +138 -0
  295. data/test/unit/bio/io/test_ddbjxml.rb +75 -0
  296. data/test/unit/bio/io/test_ensembl.rb +109 -0
  297. data/test/unit/bio/io/test_fastacmd.rb +42 -0
  298. data/test/unit/bio/io/test_flatfile.rb +237 -0
  299. data/test/unit/bio/io/test_soapwsdl.rb +32 -0
  300. data/test/unit/bio/sequence/test_aa.rb +103 -0
  301. data/test/unit/bio/sequence/test_common.rb +174 -0
  302. data/test/unit/bio/sequence/test_compat.rb +69 -0
  303. data/test/unit/bio/sequence/test_na.rb +330 -0
  304. data/test/unit/bio/shell/plugin/test_seq.rb +185 -0
  305. data/test/unit/bio/test_alignment.rb +1025 -0
  306. data/test/unit/bio/test_command.rb +288 -0
  307. data/test/unit/bio/test_db.rb +96 -0
  308. data/test/unit/bio/test_feature.rb +116 -0
  309. data/test/unit/bio/test_location.rb +39 -0
  310. data/test/unit/bio/test_map.rb +230 -0
  311. data/test/unit/bio/test_pathway.rb +473 -0
  312. data/test/unit/bio/test_reference.rb +224 -0
  313. data/test/unit/bio/test_sequence.rb +329 -0
  314. data/test/unit/bio/test_shell.rb +18 -0
  315. data/test/unit/bio/test_tree.rb +593 -0
  316. data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +299 -0
  317. data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +103 -0
  318. data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +240 -0
  319. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +101 -0
  320. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +75 -0
  321. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +73 -0
  322. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +53 -0
  323. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +104 -0
  324. data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +83 -0
  325. data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +246 -0
  326. data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +44 -0
  327. data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +115 -0
  328. data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +147 -0
  329. data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +147 -0
  330. data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +60 -0
  331. data/test/unit/bio/util/test_color_scheme.rb +33 -0
  332. data/test/unit/bio/util/test_contingency_table.rb +94 -0
  333. data/test/unit/bio/util/test_restriction_enzyme.rb +42 -0
  334. data/test/unit/bio/util/test_sirna.rb +245 -0
  335. metadata +479 -0
@@ -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
@@ -0,0 +1,548 @@
1
+ module Bio
2
+
3
+ #
4
+ # = bio/appl/psort.rb - PSORT, protein sorting site prediction systems
5
+ #
6
+ # Copyright:: Copyright (C) 2003-2006
7
+ # Mitsuteru C. Nakao <n@bioruby.org>
8
+ # License:: The Ruby License
9
+ #
10
+ # $Id: psort.rb,v 1.13 2007/04/05 23:35:39 trevor Exp $
11
+ #
12
+
13
+ require 'bio/appl/psort/report'
14
+ autoload :FastaFormat, 'bio/db/fasta'
15
+ autoload :Command, 'bio/command'
16
+ require 'cgi'
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
+ #
35
+ class PSORT
36
+
37
+ # a Hash for PSORT official hosts:
38
+ # Key value (host)
39
+ # ------- -----------------------
40
+ # IMSUT psort.ims.u-tokyo.ac.jp
41
+ # Okazaki psort.nibb.ac.jp
42
+ # Peking srs.pku.edu.cn:8088
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") },
53
+ }
54
+
55
+ # = Generic CGI client class
56
+ # A generic CGI client class for Bio::PSORT::* classes.
57
+ # The class provides an interface for CGI argument processing and output
58
+ # report parsing.
59
+ #
60
+ # == Example
61
+ #
62
+ # class NewClient < CGIDriver
63
+ # def initialize(host, path)
64
+ # super(host, path)
65
+ # end
66
+ # end
67
+ # private
68
+ # def make_args(query)
69
+ # # ...
70
+ # end
71
+ # def parse_report(output)
72
+ # # ...
73
+ # end
74
+ #
75
+ class CGIDriver
76
+
77
+ # CGI query argument in Hash ({key => value, ...}).
78
+ attr_accessor :args
79
+
80
+ # CGI output raw text
81
+ attr_reader :report
82
+
83
+
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)
102
+ @args = {}
103
+ @report = ''
104
+ end
105
+
106
+
107
+ # Executes a CGI ``query'' and returns aReport
108
+ def exec(query)
109
+ data = make_args(query)
110
+
111
+ begin
112
+ result = nil
113
+ Bio::Command.start_http(@uri.host) {|http|
114
+ result, = http.post(@uri.path, data)
115
+ }
116
+ @report = result.body
117
+ output = parse_report(@report)
118
+ end
119
+
120
+ return output
121
+ end
122
+
123
+ private
124
+
125
+ # Bio::CGIDriver#make_args. An API skelton.
126
+ def make_args(args_hash)
127
+ # The routin should be provided in the inherited class
128
+ end
129
+
130
+ # Bio::CGIDriver#parse_report. An API skelton.
131
+ def parse_report(result_body)
132
+ # The routin should be provided in the inherited class
133
+ end
134
+
135
+ # Erases HTML tags
136
+ def erase_html_tags(str)
137
+ return str.gsub(/<\S.*?>/, '')
138
+ end
139
+
140
+ # Returns CGI argument text in String (key=value&) from a Hash ({key=>value}).
141
+ def args_join(hash, delim = '&')
142
+ tmp = []
143
+ hash.each do |key, val|
144
+ tmp << CGI.escape(key.to_s) + '=' + CGI.escape(val.to_s)
145
+ end
146
+ return tmp.join(delim) # not ';' but '&' in the psort cgi script.
147
+ end
148
+
149
+ end # class CGIDriver
150
+
151
+
152
+
153
+ # = Bio::PSORT::PSORT1
154
+ #
155
+ # Bio::PSORT::PSORT1 is a wapper class for the original PSORT program.
156
+ #
157
+ # == Example
158
+ #
159
+ # serv = Bio::PSORT::PSORT1.imsut
160
+ # serv.title = 'Query_title_splited_by_white space'
161
+ # serv.exec(seq, false) # seq.class => String
162
+ # serv.exec(seq)
163
+ # report = serv.exec(Bio::FastaFormat.new(seq))
164
+ # report_raw = serv.exec(Bio::FastaFormat.new(seq), false)
165
+ #
166
+ # == References
167
+ #
168
+ # 1. Nakai, K. and Kanehisa, M., A knowledge base for predicting protein
169
+ # localization sites in eukaryotic cells, Genomics 14, 897-911 (1992).
170
+ # [PMID:1478671]
171
+ #
172
+ class PSORT1
173
+
174
+ autoload :Report, 'bio/appl/psort/report'
175
+
176
+ # Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
177
+ # connecting to the IMSUT server.
178
+ def self.imsut
179
+ self.new(Remote.new(ServerURI[:IMSUT][:PSORT1]))
180
+ end
181
+
182
+
183
+ # Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
184
+ # connecting to the NIBB server.
185
+ def self.okazaki
186
+ self.new(Remote.new(ServerURI[:Okazaki][:PSORT1]))
187
+ end
188
+
189
+
190
+ # Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
191
+ # connecting to the Peking server.
192
+ def self.peking
193
+ self.new(Remote.new(ServerURI[:Peking][:PSORT1]))
194
+ end
195
+
196
+
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
204
+ @sequence = ''
205
+ end
206
+
207
+
208
+ # An accessor of the origin argument. Default setting is "yeast".
209
+ # Usable values:
210
+ # 1. Gram-positive bacterium
211
+ # 2. Gram-negative bacterium
212
+ # 3. yeast
213
+ # 4. animal
214
+ # 5. plant
215
+ attr_accessor :origin
216
+
217
+ # An accessor of the query sequence argument.
218
+ attr_accessor :sequence
219
+
220
+ # An accessor of the title argument. Default setting is 'MYSEQ'.
221
+ # The value is automatically setted if you use a query in
222
+ # Bio::FastaFormat.
223
+ attr_accessor :title
224
+
225
+
226
+ # Executes the query (faa) and returns an Bio::PSORT::PSORT1::Report.
227
+ #
228
+ # The ``faa'' argument is acceptable a sequence both in String and in
229
+ # Bio::FastaFormat.
230
+ #
231
+ # If you set the second argument is ``parsing = false'',
232
+ # returns ourput text without any parsing.
233
+ def exec(faa, parsing = true)
234
+ if faa.class == Bio::FastaFormat
235
+ @title = faa.entry_id if @title == 'MYSEQ'
236
+ @sequence = faa.seq
237
+ @serv.args = {'title' => @title, 'origin' => @origin}
238
+ @serv.parsing = parsing
239
+ return @serv.exec(sequence)
240
+ else
241
+ self.exec(Bio::FastaFormat.new(faa), parsing)
242
+ end
243
+ end
244
+
245
+
246
+ # = Bio::PSORT::PSORT1::Remote
247
+ # PSORT1 specific CGIDriver.
248
+ class Remote < CGIDriver
249
+
250
+ # Accessor for Bio::PSORT::PSORT1::Remote#origin to contein target domain.
251
+ # Taget domains:
252
+ # 1. Gram-positive bacterium
253
+ # 2. Gram-negative bacterium
254
+ # 3. yeast
255
+ # 4. animal
256
+ # 5. plant
257
+ attr_accessor :origin
258
+
259
+ # Accessor for Bio::POSRT::PSORT1#sequence to contein the query sequence.
260
+ attr_accessor :title
261
+
262
+ # Accessor for Bio::PSORT::PSORT1#title to contain the query title.
263
+ attr_accessor :parsing
264
+
265
+ # Sets remote ``host'' and cgi ``path''.
266
+ def initialize(host, path = nil, title = 'MYSEQ', origin = 'yeast')
267
+ @title = title
268
+ @origin = origin
269
+ @parsing = true
270
+ super(host, path)
271
+ end
272
+
273
+ private
274
+
275
+ # Returns parsed CGI argument.
276
+ # An API implementation.
277
+ def make_args(query)
278
+ @args.update({'sequence' => query})
279
+ return args_join(@args)
280
+ end
281
+
282
+
283
+ # Returns parsed output report.
284
+ # An API implementation.
285
+ def parse_report(str)
286
+ str = erase_html_tags(str)
287
+ str = Bio::PSORT::PSORT1::Report.parser(str) if @parsing
288
+ return str
289
+ end
290
+
291
+ end # Class Remote
292
+
293
+ end # class PSORT1
294
+
295
+
296
+ # = Bio::PSORT::PSORT2
297
+ # Bio::PSORT::PSORT2 is a wapper class for the original PSORT program.
298
+ #
299
+ # == Example
300
+ #
301
+ # serv = Bio::PSORT::PSORT2.imsut
302
+ # serv.title = 'Query_title_splited_by_white space'
303
+ # serv.exec(seq, false) # seq.class => String
304
+ # serv.exec(seq)
305
+ # report = serv.exec(Bio::FastaFormat.new(seq))
306
+ # report_raw = serv.exec(Bio::FastaFormat.new(seq), false)
307
+ #
308
+ # == References
309
+ # 1. Nakai, K. and Horton, P., PSORT: a program for detecting the sorting
310
+ # signals of proteins and predicting their subcellular localization,
311
+ # Trends Biochem. Sci, 24(1) 34-35 (1999).
312
+ # [PMID:10087920]
313
+ class PSORT2
314
+
315
+ autoload :Report, 'bio/appl/psort/report'
316
+
317
+ # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote).
318
+ #
319
+ # PSORT official hosts:
320
+ # key host path
321
+ # ------- ----------------------- -------------------- ---------
322
+ # IMSUT psort.ims.u-tokyo.ac.jp /cgi-bin/runpsort.pl (default)
323
+ # Okazaki psort.nibb.ac.jp /cgi-bin/runpsort.pl
324
+ # Peking srs.pku.edu.cn:8088 /cgi-bin/runpsort.pl
325
+ def self.remote(host, path = nil)
326
+ self.new(Remote.new(host, path))
327
+ end
328
+
329
+ # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
330
+ # connecting to the IMSUT server.
331
+ def self.imsut
332
+ self.remote(ServerURI[:IMSUT][:PSORT2])
333
+ end
334
+
335
+ # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
336
+ # connecting to the NIBB server.
337
+ def self.okazaki
338
+ self.remote(ServerURI[:Okazaki][:PSORT2])
339
+ end
340
+
341
+ # Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
342
+ # connecting to the Peking server.
343
+ def self.peking
344
+ self.remote(ServerURI[:Peking][:PSORT2])
345
+ end
346
+
347
+ # An accessor of the origin argument.
348
+ # Default setting is ``yeast''.
349
+ attr_accessor :origin
350
+
351
+ # An accessor of the title argument. Default setting is ``QUERY''.
352
+ # The value is automatically setted if you use a query in
353
+ # Bio::FastaFormat.
354
+ attr_accessor :title
355
+
356
+ # Sets a server CGI Driver (Bio::PSORT::PSORT2::Remote).
357
+ def initialize(driver, origin = 'yeast')
358
+ @serv = driver
359
+ @origin = origin
360
+ @title = ''
361
+ end
362
+
363
+
364
+ # Executes PSORT II prediction and returns Report object
365
+ # (Bio::PSORT::PSORT2::Report) if parsing = true.
366
+ # Returns PSORT II report in text if parsing = false.
367
+ def exec(faa, parsing = true)
368
+ if faa.class == Bio::FastaFormat
369
+ @title = faa.entry_id if @title == nil
370
+ @sequence = faa.seq
371
+ @serv.args = {'origin' => @origin, 'title' => @title}
372
+ @serv.parsing = parsing
373
+ return @serv.exec(@sequence)
374
+ else
375
+ self.exec(Bio::FastaFormat.new(faa), parsing)
376
+ end
377
+ end
378
+
379
+
380
+ # = Bio::PSORT::PSORT2::Remote
381
+ # PSORT2 specific CGIDriver
382
+ class Remote < CGIDriver
383
+
384
+ # Sets remote ``host'' and cgi ``path''.
385
+ def initialize(host, path)
386
+ @origin = 'yeast'
387
+ super(host, path)
388
+ @parsing = true
389
+ end
390
+
391
+ # An accessor of the origin argument.
392
+ # Default setting is ``yeast''.
393
+ attr_accessor :origin
394
+
395
+ # An accessor of the output parsing.
396
+ # Default setting is ``true''.
397
+ attr_accessor :parsing
398
+
399
+
400
+ private
401
+
402
+ # Returns parsed CGI argument.
403
+ # An API implementation.
404
+ def make_args(query)
405
+ @args.update({'sequence' => query})
406
+ return args_join(@args)
407
+ end
408
+
409
+
410
+ # Returns parsed output report.
411
+ # An API implementation.
412
+ def parse_report(str)
413
+ str = str.gsub(/\n<hr>/i, Report::BOUNDARY)
414
+ str = erase_html_tags(str)
415
+ str = Bio::PSORT::PSORT2::Report.parser(str, self.args['title']) if @parsing
416
+ return str
417
+ end
418
+
419
+ end # class Remote
420
+
421
+ end # class PSORT2
422
+
423
+
424
+ class IPSORT
425
+ end # class IPSORT
426
+
427
+
428
+ class PSORTB
429
+ end # class PSORTB
430
+
431
+ class WoLF_PSORT
432
+ end # class PSORTB
433
+
434
+ end # class PSORT
435
+
436
+ end # module Bio
437
+
438
+
439
+
440
+
441
+
442
+ if __FILE__ == $0
443
+
444
+ begin
445
+ require 'psort/report.rb'
446
+ rescue LoadError
447
+ end
448
+
449
+
450
+ seq = ">hoge mit
451
+ MALEPIDYTT RDEDDLDENE LLMKISNAAG SSRVNDNNDD LTFVENDKII
452
+ ARYSIQTSSK QQGKASTPPV EEAEEAAPQL PSRSSAAPPP PPRRATPEKK
453
+ DVKDLKSKFE GLAASEKEEE EMENKFAPPP KKSEPTIISP KPFSKPQEPV
454
+ FKGYHVQVTA HSREIDAEYL KIVRGSDPDT TWLIISPNAK KEYEPESTGS
455
+ KKSFTPSKSP APVSKKEPVK TPSPAPAAKI PKENPWATAE YDYDAAEDNE
456
+ NIEFVDDDWW LGELEKDGSK GLFPSNYVSL LPSRNVASGA PVQKEEPEQE
457
+ SFHDFLQLFD ETKVQYGLAR RKAKQNSGNA ETKAEAPKPE VPEDEPEGEP
458
+ DDWNEPELKE RDFDQAPLKP NQSSYKPIGK IDLQKVIAEE KAKEDPRLVQ
459
+ DYKKIGNPLP GMHIEADNEE EPEENDDDWD DDEDEAAQPP ANFAAVANNL
460
+ KPTAAGSKID DDKVIKGFRN EKSPAQLWAE VSPPGSDVEK IIIIGWCPDS
461
+ APLKTRASFA PSSDIANLKN ESKLKRDSEF NSFLGTTKPP SMTESSLKND
462
+ KAEEAEQPKT EIAPSLPSRN SIPAPKQEEA PEQAPEEEIE GN
463
+ "
464
+ Seq1 = ">hgoe
465
+ LTFVENDKII NI
466
+ "
467
+
468
+ puts "\n Bio::PSORT::PSORT"
469
+
470
+ puts "\n ==> p serv = Bio::PSORT::PSORT.imsut"
471
+ p serv = Bio::PSORT::PSORT1.imsut
472
+
473
+ puts "\n ==> p serv.class "
474
+ p serv.class
475
+
476
+ puts "\n ==> p serv.title = 'Query_title_splited_by_white space'"
477
+ p serv.title = 'Query_title_splited_by_white space'
478
+
479
+ puts "\n ==> p serv.exec(seq, false) "
480
+ p serv.exec(seq, false)
481
+
482
+ puts "\n ==> p serv.exec(seq) "
483
+ p serv.exec(seq)
484
+
485
+ puts "\n ==> p report = serv.exec(Bio::FastaFormat.new(seq)) "
486
+ p report = serv.exec(Bio::FastaFormat.new(seq))
487
+
488
+ puts "\n ==> p report.class"
489
+ p report.class
490
+
491
+
492
+ puts "\n ==> p report_raw = serv.exec(Bio::FastaFormat.new(seq), false) "
493
+ p report_raw = serv.exec(Bio::FastaFormat.new(seq), false)
494
+
495
+ puts "\n ==> p report_raw.class"
496
+ p report_raw.class
497
+
498
+
499
+ puts "\n ==> p report.methods"
500
+ p report.methods
501
+
502
+ methods = ['entry_id', 'origin', 'title', 'sequence','result_info',
503
+ 'reasoning', 'final_result', 'raw']
504
+ methods.each do |method|
505
+ puts "\n ==> p report.#{method}"
506
+ p eval("report.#{method}")
507
+ end
508
+
509
+
510
+
511
+ puts "\n Bio::PSORT::PSORT2"
512
+
513
+ puts "\n ==> p serv = Bio::PSORT::PSORT2.imsut"
514
+ p serv = Bio::PSORT::PSORT2.imsut
515
+
516
+ puts "\n ==> p serv.class "
517
+ p serv.class
518
+
519
+ puts "\n ==> p seq "
520
+ p seq
521
+
522
+ puts "\n ==> p serv.title = 'Query_title_splited_by_white space'"
523
+ p serv.title = 'Query_title_splited_by_white space'
524
+
525
+ puts "\n ==> p serv.exec(seq) # parsed report"
526
+ p serv.exec(seq)
527
+
528
+ puts "\n ==> p report = serv.exec(Bio::FastaFormat.new(seq)) # parsed report"
529
+ p report = serv.exec(Bio::FastaFormat.new(seq))
530
+
531
+
532
+
533
+ puts "\n ==> p serv.exec(seq, false) # report in plain text"
534
+ p serv.exec(seq, false)
535
+
536
+ puts "\n ==> p report_raw = serv.exec(Bio::FastaFormat.new(seq), false) # report in plain text"
537
+ p report_raw = serv.exec(Bio::FastaFormat.new(seq), false)
538
+
539
+
540
+ puts "\n ==> p report.methods"
541
+ p report.methods
542
+
543
+ methods = ['entry_id', 'scl', 'definition', 'seq', 'features', 'prob', 'pred', 'k', 'raw']
544
+ methods.each do |method|
545
+ puts "\n ==> p report.#{method}"
546
+ p eval("report.#{method}")
547
+ end
548
+ end