wwood-bioruby 1.2.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) hide show
  1. data/README.rdoc +205 -0
  2. data/README_DEV.rdoc +285 -0
  3. data/VERSION.yml +4 -0
  4. data/bin/bioruby +44 -0
  5. data/bin/br_biofetch.rb +47 -0
  6. data/bin/br_bioflat.rb +293 -0
  7. data/bin/br_biogetseq.rb +45 -0
  8. data/bin/br_pmfetch.rb +421 -0
  9. data/lib/bio.rb +306 -0
  10. data/lib/bio/alignment.rb +2518 -0
  11. data/lib/bio/appl/bl2seq/report.rb +334 -0
  12. data/lib/bio/appl/blast.rb +505 -0
  13. data/lib/bio/appl/blast/ddbj.rb +142 -0
  14. data/lib/bio/appl/blast/format0.rb +1438 -0
  15. data/lib/bio/appl/blast/format8.rb +83 -0
  16. data/lib/bio/appl/blast/genomenet.rb +263 -0
  17. data/lib/bio/appl/blast/ncbioptions.rb +220 -0
  18. data/lib/bio/appl/blast/remote.rb +105 -0
  19. data/lib/bio/appl/blast/report.rb +767 -0
  20. data/lib/bio/appl/blast/rexml.rb +144 -0
  21. data/lib/bio/appl/blast/rpsblast.rb +277 -0
  22. data/lib/bio/appl/blast/wublast.rb +635 -0
  23. data/lib/bio/appl/blast/xmlparser.rb +236 -0
  24. data/lib/bio/appl/blat/report.rb +530 -0
  25. data/lib/bio/appl/clustalw.rb +219 -0
  26. data/lib/bio/appl/clustalw/report.rb +152 -0
  27. data/lib/bio/appl/emboss.rb +203 -0
  28. data/lib/bio/appl/fasta.rb +235 -0
  29. data/lib/bio/appl/fasta/format10.rb +325 -0
  30. data/lib/bio/appl/gcg/msf.rb +212 -0
  31. data/lib/bio/appl/gcg/seq.rb +195 -0
  32. data/lib/bio/appl/genscan/report.rb +552 -0
  33. data/lib/bio/appl/hmmer.rb +126 -0
  34. data/lib/bio/appl/hmmer/report.rb +683 -0
  35. data/lib/bio/appl/iprscan/report.rb +374 -0
  36. data/lib/bio/appl/mafft.rb +259 -0
  37. data/lib/bio/appl/mafft/report.rb +226 -0
  38. data/lib/bio/appl/muscle.rb +52 -0
  39. data/lib/bio/appl/paml/baseml.rb +95 -0
  40. data/lib/bio/appl/paml/baseml/report.rb +32 -0
  41. data/lib/bio/appl/paml/codeml.rb +242 -0
  42. data/lib/bio/appl/paml/codeml/rates.rb +67 -0
  43. data/lib/bio/appl/paml/codeml/report.rb +67 -0
  44. data/lib/bio/appl/paml/common.rb +348 -0
  45. data/lib/bio/appl/paml/common_report.rb +38 -0
  46. data/lib/bio/appl/paml/yn00.rb +103 -0
  47. data/lib/bio/appl/paml/yn00/report.rb +32 -0
  48. data/lib/bio/appl/phylip/alignment.rb +133 -0
  49. data/lib/bio/appl/phylip/distance_matrix.rb +96 -0
  50. data/lib/bio/appl/probcons.rb +41 -0
  51. data/lib/bio/appl/psort.rb +548 -0
  52. data/lib/bio/appl/psort/report.rb +542 -0
  53. data/lib/bio/appl/pts1.rb +263 -0
  54. data/lib/bio/appl/sim4.rb +124 -0
  55. data/lib/bio/appl/sim4/report.rb +485 -0
  56. data/lib/bio/appl/sosui/report.rb +151 -0
  57. data/lib/bio/appl/spidey/report.rb +593 -0
  58. data/lib/bio/appl/targetp/report.rb +267 -0
  59. data/lib/bio/appl/tcoffee.rb +55 -0
  60. data/lib/bio/appl/tmhmm/report.rb +231 -0
  61. data/lib/bio/command.rb +593 -0
  62. data/lib/bio/compat/features.rb +157 -0
  63. data/lib/bio/compat/references.rb +128 -0
  64. data/lib/bio/data/aa.rb +353 -0
  65. data/lib/bio/data/codontable.rb +722 -0
  66. data/lib/bio/data/na.rb +223 -0
  67. data/lib/bio/db.rb +329 -0
  68. data/lib/bio/db/aaindex.rb +357 -0
  69. data/lib/bio/db/biosql/biosql_to_biosequence.rb +67 -0
  70. data/lib/bio/db/biosql/sequence.rb +508 -0
  71. data/lib/bio/db/embl/common.rb +352 -0
  72. data/lib/bio/db/embl/embl.rb +500 -0
  73. data/lib/bio/db/embl/embl_to_biosequence.rb +85 -0
  74. data/lib/bio/db/embl/format_embl.rb +190 -0
  75. data/lib/bio/db/embl/sptr.rb +1283 -0
  76. data/lib/bio/db/embl/swissprot.rb +42 -0
  77. data/lib/bio/db/embl/trembl.rb +41 -0
  78. data/lib/bio/db/embl/uniprot.rb +42 -0
  79. data/lib/bio/db/fantom.rb +597 -0
  80. data/lib/bio/db/fasta.rb +410 -0
  81. data/lib/bio/db/fasta/defline.rb +532 -0
  82. data/lib/bio/db/fasta/fasta_to_biosequence.rb +63 -0
  83. data/lib/bio/db/fasta/format_fasta.rb +97 -0
  84. data/lib/bio/db/genbank/common.rb +307 -0
  85. data/lib/bio/db/genbank/ddbj.rb +22 -0
  86. data/lib/bio/db/genbank/format_genbank.rb +187 -0
  87. data/lib/bio/db/genbank/genbank.rb +250 -0
  88. data/lib/bio/db/genbank/genbank_to_biosequence.rb +86 -0
  89. data/lib/bio/db/genbank/genpept.rb +60 -0
  90. data/lib/bio/db/genbank/refseq.rb +18 -0
  91. data/lib/bio/db/gff.rb +1846 -0
  92. data/lib/bio/db/go.rb +481 -0
  93. data/lib/bio/db/kegg/brite.rb +41 -0
  94. data/lib/bio/db/kegg/compound.rb +131 -0
  95. data/lib/bio/db/kegg/drug.rb +98 -0
  96. data/lib/bio/db/kegg/enzyme.rb +148 -0
  97. data/lib/bio/db/kegg/expression.rb +155 -0
  98. data/lib/bio/db/kegg/genes.rb +263 -0
  99. data/lib/bio/db/kegg/genome.rb +241 -0
  100. data/lib/bio/db/kegg/glycan.rb +166 -0
  101. data/lib/bio/db/kegg/keggtab.rb +357 -0
  102. data/lib/bio/db/kegg/kgml.rb +256 -0
  103. data/lib/bio/db/kegg/orthology.rb +136 -0
  104. data/lib/bio/db/kegg/reaction.rb +82 -0
  105. data/lib/bio/db/kegg/taxonomy.rb +331 -0
  106. data/lib/bio/db/lasergene.rb +209 -0
  107. data/lib/bio/db/litdb.rb +107 -0
  108. data/lib/bio/db/medline.rb +326 -0
  109. data/lib/bio/db/nbrf.rb +191 -0
  110. data/lib/bio/db/newick.rb +658 -0
  111. data/lib/bio/db/nexus.rb +1854 -0
  112. data/lib/bio/db/pdb.rb +29 -0
  113. data/lib/bio/db/pdb/atom.rb +77 -0
  114. data/lib/bio/db/pdb/chain.rb +210 -0
  115. data/lib/bio/db/pdb/chemicalcomponent.rb +224 -0
  116. data/lib/bio/db/pdb/model.rb +148 -0
  117. data/lib/bio/db/pdb/pdb.rb +1911 -0
  118. data/lib/bio/db/pdb/residue.rb +176 -0
  119. data/lib/bio/db/pdb/utils.rb +399 -0
  120. data/lib/bio/db/prosite.rb +597 -0
  121. data/lib/bio/db/rebase.rb +456 -0
  122. data/lib/bio/db/soft.rb +404 -0
  123. data/lib/bio/db/transfac.rb +375 -0
  124. data/lib/bio/db/url.rb +42 -0
  125. data/lib/bio/feature.rb +139 -0
  126. data/lib/bio/io/biosql/biodatabase.rb +64 -0
  127. data/lib/bio/io/biosql/bioentry.rb +29 -0
  128. data/lib/bio/io/biosql/bioentry_dbxref.rb +11 -0
  129. data/lib/bio/io/biosql/bioentry_path.rb +12 -0
  130. data/lib/bio/io/biosql/bioentry_qualifier_value.rb +10 -0
  131. data/lib/bio/io/biosql/bioentry_reference.rb +10 -0
  132. data/lib/bio/io/biosql/bioentry_relationship.rb +10 -0
  133. data/lib/bio/io/biosql/biosequence.rb +11 -0
  134. data/lib/bio/io/biosql/comment.rb +7 -0
  135. data/lib/bio/io/biosql/config/database.yml +20 -0
  136. data/lib/bio/io/biosql/dbxref.rb +13 -0
  137. data/lib/bio/io/biosql/dbxref_qualifier_value.rb +12 -0
  138. data/lib/bio/io/biosql/location.rb +32 -0
  139. data/lib/bio/io/biosql/location_qualifier_value.rb +11 -0
  140. data/lib/bio/io/biosql/ontology.rb +10 -0
  141. data/lib/bio/io/biosql/reference.rb +9 -0
  142. data/lib/bio/io/biosql/seqfeature.rb +32 -0
  143. data/lib/bio/io/biosql/seqfeature_dbxref.rb +11 -0
  144. data/lib/bio/io/biosql/seqfeature_path.rb +11 -0
  145. data/lib/bio/io/biosql/seqfeature_qualifier_value.rb +20 -0
  146. data/lib/bio/io/biosql/seqfeature_relationship.rb +11 -0
  147. data/lib/bio/io/biosql/taxon.rb +12 -0
  148. data/lib/bio/io/biosql/taxon_name.rb +9 -0
  149. data/lib/bio/io/biosql/term.rb +27 -0
  150. data/lib/bio/io/biosql/term_dbxref.rb +11 -0
  151. data/lib/bio/io/biosql/term_path.rb +12 -0
  152. data/lib/bio/io/biosql/term_relationship.rb +13 -0
  153. data/lib/bio/io/biosql/term_relationship_term.rb +11 -0
  154. data/lib/bio/io/biosql/term_synonym.rb +10 -0
  155. data/lib/bio/io/das.rb +461 -0
  156. data/lib/bio/io/dbget.rb +194 -0
  157. data/lib/bio/io/ddbjxml.rb +638 -0
  158. data/lib/bio/io/ebisoap.rb +158 -0
  159. data/lib/bio/io/ensembl.rb +229 -0
  160. data/lib/bio/io/fastacmd.rb +163 -0
  161. data/lib/bio/io/fetch.rb +195 -0
  162. data/lib/bio/io/flatfile.rb +482 -0
  163. data/lib/bio/io/flatfile/autodetection.rb +545 -0
  164. data/lib/bio/io/flatfile/bdb.rb +253 -0
  165. data/lib/bio/io/flatfile/buffer.rb +237 -0
  166. data/lib/bio/io/flatfile/index.rb +1381 -0
  167. data/lib/bio/io/flatfile/indexer.rb +805 -0
  168. data/lib/bio/io/flatfile/splitter.rb +297 -0
  169. data/lib/bio/io/higet.rb +73 -0
  170. data/lib/bio/io/hinv.rb +442 -0
  171. data/lib/bio/io/keggapi.rb +805 -0
  172. data/lib/bio/io/ncbirest.rb +733 -0
  173. data/lib/bio/io/ncbisoap.rb +155 -0
  174. data/lib/bio/io/pubmed.rb +307 -0
  175. data/lib/bio/io/registry.rb +292 -0
  176. data/lib/bio/io/soapwsdl.rb +119 -0
  177. data/lib/bio/io/sql.rb +186 -0
  178. data/lib/bio/location.rb +867 -0
  179. data/lib/bio/map.rb +410 -0
  180. data/lib/bio/pathway.rb +960 -0
  181. data/lib/bio/reference.rb +602 -0
  182. data/lib/bio/sequence.rb +456 -0
  183. data/lib/bio/sequence/aa.rb +152 -0
  184. data/lib/bio/sequence/adapter.rb +108 -0
  185. data/lib/bio/sequence/common.rb +310 -0
  186. data/lib/bio/sequence/compat.rb +123 -0
  187. data/lib/bio/sequence/dblink.rb +54 -0
  188. data/lib/bio/sequence/format.rb +358 -0
  189. data/lib/bio/sequence/format_raw.rb +23 -0
  190. data/lib/bio/sequence/generic.rb +24 -0
  191. data/lib/bio/sequence/na.rb +491 -0
  192. data/lib/bio/shell.rb +44 -0
  193. data/lib/bio/shell/core.rb +578 -0
  194. data/lib/bio/shell/demo.rb +146 -0
  195. data/lib/bio/shell/interface.rb +218 -0
  196. data/lib/bio/shell/irb.rb +95 -0
  197. data/lib/bio/shell/object.rb +71 -0
  198. data/lib/bio/shell/plugin/blast.rb +42 -0
  199. data/lib/bio/shell/plugin/codon.rb +218 -0
  200. data/lib/bio/shell/plugin/das.rb +58 -0
  201. data/lib/bio/shell/plugin/emboss.rb +23 -0
  202. data/lib/bio/shell/plugin/entry.rb +105 -0
  203. data/lib/bio/shell/plugin/flatfile.rb +101 -0
  204. data/lib/bio/shell/plugin/keggapi.rb +181 -0
  205. data/lib/bio/shell/plugin/midi.rb +430 -0
  206. data/lib/bio/shell/plugin/obda.rb +45 -0
  207. data/lib/bio/shell/plugin/psort.rb +56 -0
  208. data/lib/bio/shell/plugin/seq.rb +247 -0
  209. data/lib/bio/shell/plugin/soap.rb +87 -0
  210. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/bioruby_generator.rb +29 -0
  211. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_classes.rhtml +4 -0
  212. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_log.rhtml +27 -0
  213. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_methods.rhtml +11 -0
  214. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_modules.rhtml +4 -0
  215. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_variables.rhtml +7 -0
  216. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-bg.gif +0 -0
  217. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-gem.png +0 -0
  218. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-link.gif +0 -0
  219. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.css +368 -0
  220. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.rhtml +47 -0
  221. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_controller.rb +144 -0
  222. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_helper.rb +47 -0
  223. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/commands.rhtml +8 -0
  224. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/history.rhtml +10 -0
  225. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/index.rhtml +26 -0
  226. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/spinner.gif +0 -0
  227. data/lib/bio/shell/script.rb +25 -0
  228. data/lib/bio/shell/setup.rb +109 -0
  229. data/lib/bio/shell/web.rb +102 -0
  230. data/lib/bio/tree.rb +852 -0
  231. data/lib/bio/util/color_scheme.rb +191 -0
  232. data/lib/bio/util/color_scheme/buried.rb +59 -0
  233. data/lib/bio/util/color_scheme/helix.rb +59 -0
  234. data/lib/bio/util/color_scheme/hydropathy.rb +64 -0
  235. data/lib/bio/util/color_scheme/nucleotide.rb +31 -0
  236. data/lib/bio/util/color_scheme/strand.rb +59 -0
  237. data/lib/bio/util/color_scheme/taylor.rb +50 -0
  238. data/lib/bio/util/color_scheme/turn.rb +59 -0
  239. data/lib/bio/util/color_scheme/zappo.rb +50 -0
  240. data/lib/bio/util/contingency_table.rb +370 -0
  241. data/lib/bio/util/restriction_enzyme.rb +228 -0
  242. data/lib/bio/util/restriction_enzyme/analysis.rb +249 -0
  243. data/lib/bio/util/restriction_enzyme/analysis_basic.rb +217 -0
  244. data/lib/bio/util/restriction_enzyme/cut_symbol.rb +107 -0
  245. data/lib/bio/util/restriction_enzyme/double_stranded.rb +321 -0
  246. data/lib/bio/util/restriction_enzyme/double_stranded/aligned_strands.rb +130 -0
  247. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair.rb +103 -0
  248. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair_in_enzyme_notation.rb +38 -0
  249. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations.rb +76 -0
  250. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations_in_enzyme_notation.rb +107 -0
  251. data/lib/bio/util/restriction_enzyme/enzymes.yaml +7061 -0
  252. data/lib/bio/util/restriction_enzyme/range/cut_range.rb +24 -0
  253. data/lib/bio/util/restriction_enzyme/range/cut_ranges.rb +47 -0
  254. data/lib/bio/util/restriction_enzyme/range/horizontal_cut_range.rb +67 -0
  255. data/lib/bio/util/restriction_enzyme/range/sequence_range.rb +257 -0
  256. data/lib/bio/util/restriction_enzyme/range/sequence_range/calculated_cuts.rb +242 -0
  257. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragment.rb +51 -0
  258. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragments.rb +41 -0
  259. data/lib/bio/util/restriction_enzyme/range/vertical_cut_range.rb +77 -0
  260. data/lib/bio/util/restriction_enzyme/single_strand.rb +200 -0
  261. data/lib/bio/util/restriction_enzyme/single_strand/cut_locations_in_enzyme_notation.rb +135 -0
  262. data/lib/bio/util/restriction_enzyme/single_strand_complement.rb +23 -0
  263. data/lib/bio/util/restriction_enzyme/string_formatting.rb +111 -0
  264. data/lib/bio/util/sirna.rb +288 -0
  265. data/test/data/HMMER/hmmpfam.out +64 -0
  266. data/test/data/HMMER/hmmsearch.out +88 -0
  267. data/test/data/SOSUI/sample.report +11 -0
  268. data/test/data/TMHMM/sample.report +21 -0
  269. data/test/data/aaindex/DAYM780301 +30 -0
  270. data/test/data/aaindex/PRAM900102 +20 -0
  271. data/test/data/bl2seq/cd8a_cd8b_blastp.bl2seq +53 -0
  272. data/test/data/bl2seq/cd8a_p53_e-5blastp.bl2seq +37 -0
  273. data/test/data/blast/2.2.15.blastp.m7 +876 -0
  274. data/test/data/blast/b0002.faa +15 -0
  275. data/test/data/blast/b0002.faa.m0 +128 -0
  276. data/test/data/blast/b0002.faa.m7 +65 -0
  277. data/test/data/blast/b0002.faa.m8 +1 -0
  278. data/test/data/blast/blastp-multi.m7 +188 -0
  279. data/test/data/command/echoarg2.bat +1 -0
  280. data/test/data/embl/AB090716.embl +65 -0
  281. data/test/data/embl/AB090716.embl.rel89 +63 -0
  282. data/test/data/fasta/example1.txt +75 -0
  283. data/test/data/fasta/example2.txt +21 -0
  284. data/test/data/genscan/sample.report +63 -0
  285. data/test/data/iprscan/merged.raw +32 -0
  286. data/test/data/iprscan/merged.txt +74 -0
  287. data/test/data/paml/codeml/control_file.txt +30 -0
  288. data/test/data/paml/codeml/output.txt +78 -0
  289. data/test/data/paml/codeml/rates +217 -0
  290. data/test/data/prosite/prosite.dat +2233 -0
  291. data/test/data/refseq/nm_126355.entret +64 -0
  292. data/test/data/rpsblast/misc.rpsblast +193 -0
  293. data/test/data/soft/GDS100_partial.soft +92 -0
  294. data/test/data/soft/GSE3457_family_partial.soft +874 -0
  295. data/test/data/uniprot/p53_human.uniprot +1456 -0
  296. data/test/functional/bio/appl/test_pts1.rb +115 -0
  297. data/test/functional/bio/io/test_ensembl.rb +229 -0
  298. data/test/functional/bio/io/test_soapwsdl.rb +52 -0
  299. data/test/functional/bio/sequence/test_output_embl.rb +51 -0
  300. data/test/functional/bio/test_command.rb +301 -0
  301. data/test/runner.rb +14 -0
  302. data/test/unit/bio/appl/bl2seq/test_report.rb +134 -0
  303. data/test/unit/bio/appl/blast/test_ncbioptions.rb +112 -0
  304. data/test/unit/bio/appl/blast/test_report.rb +1135 -0
  305. data/test/unit/bio/appl/blast/test_rpsblast.rb +398 -0
  306. data/test/unit/bio/appl/genscan/test_report.rb +182 -0
  307. data/test/unit/bio/appl/hmmer/test_report.rb +342 -0
  308. data/test/unit/bio/appl/iprscan/test_report.rb +338 -0
  309. data/test/unit/bio/appl/mafft/test_report.rb +63 -0
  310. data/test/unit/bio/appl/paml/codeml/test_rates.rb +45 -0
  311. data/test/unit/bio/appl/paml/codeml/test_report.rb +45 -0
  312. data/test/unit/bio/appl/paml/test_codeml.rb +174 -0
  313. data/test/unit/bio/appl/sosui/test_report.rb +81 -0
  314. data/test/unit/bio/appl/targetp/test_report.rb +146 -0
  315. data/test/unit/bio/appl/test_blast.rb +277 -0
  316. data/test/unit/bio/appl/test_fasta.rb +130 -0
  317. data/test/unit/bio/appl/test_psort.rb +57 -0
  318. data/test/unit/bio/appl/test_pts1.rb +77 -0
  319. data/test/unit/bio/appl/tmhmm/test_report.rb +126 -0
  320. data/test/unit/bio/data/test_aa.rb +90 -0
  321. data/test/unit/bio/data/test_codontable.rb +107 -0
  322. data/test/unit/bio/data/test_na.rb +80 -0
  323. data/test/unit/bio/db/embl/test_common.rb +117 -0
  324. data/test/unit/bio/db/embl/test_embl.rb +214 -0
  325. data/test/unit/bio/db/embl/test_embl_rel89.rb +219 -0
  326. data/test/unit/bio/db/embl/test_embl_to_bioseq.rb +203 -0
  327. data/test/unit/bio/db/embl/test_sptr.rb +1812 -0
  328. data/test/unit/bio/db/embl/test_uniprot.rb +31 -0
  329. data/test/unit/bio/db/kegg/test_genes.rb +45 -0
  330. data/test/unit/bio/db/pdb/test_pdb.rb +152 -0
  331. data/test/unit/bio/db/test_aaindex.rb +197 -0
  332. data/test/unit/bio/db/test_fasta.rb +250 -0
  333. data/test/unit/bio/db/test_gff.rb +1190 -0
  334. data/test/unit/bio/db/test_lasergene.rb +95 -0
  335. data/test/unit/bio/db/test_medline.rb +127 -0
  336. data/test/unit/bio/db/test_newick.rb +293 -0
  337. data/test/unit/bio/db/test_nexus.rb +364 -0
  338. data/test/unit/bio/db/test_prosite.rb +1437 -0
  339. data/test/unit/bio/db/test_rebase.rb +101 -0
  340. data/test/unit/bio/db/test_soft.rb +138 -0
  341. data/test/unit/bio/db/test_url.rb +36 -0
  342. data/test/unit/bio/io/flatfile/test_autodetection.rb +375 -0
  343. data/test/unit/bio/io/flatfile/test_buffer.rb +251 -0
  344. data/test/unit/bio/io/flatfile/test_splitter.rb +369 -0
  345. data/test/unit/bio/io/test_ddbjxml.rb +80 -0
  346. data/test/unit/bio/io/test_ensembl.rb +109 -0
  347. data/test/unit/bio/io/test_fastacmd.rb +42 -0
  348. data/test/unit/bio/io/test_flatfile.rb +505 -0
  349. data/test/unit/bio/io/test_soapwsdl.rb +32 -0
  350. data/test/unit/bio/sequence/test_aa.rb +115 -0
  351. data/test/unit/bio/sequence/test_common.rb +373 -0
  352. data/test/unit/bio/sequence/test_compat.rb +69 -0
  353. data/test/unit/bio/sequence/test_dblink.rb +58 -0
  354. data/test/unit/bio/sequence/test_na.rb +330 -0
  355. data/test/unit/bio/shell/plugin/test_seq.rb +185 -0
  356. data/test/unit/bio/test_alignment.rb +1025 -0
  357. data/test/unit/bio/test_command.rb +349 -0
  358. data/test/unit/bio/test_db.rb +96 -0
  359. data/test/unit/bio/test_feature.rb +144 -0
  360. data/test/unit/bio/test_location.rb +599 -0
  361. data/test/unit/bio/test_map.rb +230 -0
  362. data/test/unit/bio/test_pathway.rb +499 -0
  363. data/test/unit/bio/test_reference.rb +252 -0
  364. data/test/unit/bio/test_sequence.rb +329 -0
  365. data/test/unit/bio/test_shell.rb +18 -0
  366. data/test/unit/bio/test_tree.rb +593 -0
  367. data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +299 -0
  368. data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +103 -0
  369. data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +240 -0
  370. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +101 -0
  371. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +75 -0
  372. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +73 -0
  373. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +53 -0
  374. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +104 -0
  375. data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +83 -0
  376. data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +246 -0
  377. data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +44 -0
  378. data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +115 -0
  379. data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +147 -0
  380. data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +147 -0
  381. data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +60 -0
  382. data/test/unit/bio/util/test_color_scheme.rb +33 -0
  383. data/test/unit/bio/util/test_contingency_table.rb +94 -0
  384. data/test/unit/bio/util/test_restriction_enzyme.rb +42 -0
  385. data/test/unit/bio/util/test_sirna.rb +245 -0
  386. metadata +543 -0
@@ -0,0 +1,805 @@
1
+ #
2
+ # = bio/io/keggapi.rb - KEGG API access class
3
+ #
4
+ # Copyright:: Copyright (C) 2003, 2004 Toshiaki Katayama <k@bioruby.org>
5
+ # License:: The Ruby License
6
+ #
7
+ # $Id:$
8
+ #
9
+
10
+ require 'bio/io/soapwsdl'
11
+ require 'uri'
12
+ require 'net/http'
13
+ require 'bio/command'
14
+
15
+ module Bio
16
+ class KEGG
17
+
18
+ # == Description
19
+ #
20
+ # KEGG API is a web service to use KEGG system via SOAP/WSDL.
21
+ #
22
+ # == References
23
+ #
24
+ # For more informations on KEGG API, see the following site and read the
25
+ # reference manual.
26
+ #
27
+ # * http://www.genome.jp/kegg/soap/
28
+ # * http://www.genome.jp/kegg/soap/doc/keggapi_manual.html
29
+ #
30
+ # == List of methods
31
+ #
32
+ # As of KEGG API v5.0
33
+ #
34
+ # * list_databases
35
+ # * list_organisms
36
+ # * list_pathways(org)
37
+ # * binfo(string)
38
+ # * bget(string)
39
+ # * bfind(string)
40
+ # * btit(string)
41
+ # * get_linkdb_by_entry(entry_id, db, start, max_results)
42
+ # * get_best_best_neighbors_by_gene(genes_id, start, max_results)
43
+ # * get_best_neighbors_by_gene(genes_id, start, max_results)
44
+ # * get_reverse_best_neighbors_by_gene(genes_id, start, max_results)
45
+ # * get_paralogs_by_gene(genes_id, start, max_results)
46
+ # * get_similarity_between_genes(genes_id1, genes_id2)
47
+ # * get_motifs_by_gene(genes_id, db)
48
+ # * get_genes_by_motifs(motif_id_list, start, max_results)
49
+ # * get_ko_by_gene(genes_id)
50
+ # * get_ko_members(ko_id)
51
+ # * get_oc_members_by_gene(genes_id, start, max_results)
52
+ # * get_pc_members_by_gene(genes_id, start, max_results)
53
+ # * mark_pathway_by_objects(pathway_id, object_id_list)
54
+ # * color_pathway_by_objects(pathway_id, object_id_list, fg_color_list, bg_color_list)
55
+ # * get_genes_by_pathway(pathway_id)
56
+ # * get_enzymes_by_pathway(pathway_id)
57
+ # * get_compounds_by_pathway(pathway_id)
58
+ # * get_reactions_by_pathway(pathway_id)
59
+ # * get_pathways_by_genes(genes_id_list)
60
+ # * get_pathways_by_enzymes(enzyme_id_list)
61
+ # * get_pathways_by_compounds(compound_id_list)
62
+ # * get_pathways_by_reactions(reaction_id_list)
63
+ # * get_linked_pathways(pathway_id)
64
+ # * get_genes_by_enzyme(enzyme_id, org)
65
+ # * get_enzymes_by_gene(genes_id)
66
+ # * get_enzymes_by_compound(compound_id)
67
+ # * get_enzymes_by_reaction(reaction_id)
68
+ # * get_compounds_by_enzyme(enzyme_id)
69
+ # * get_compounds_by_reaction(reaction_id)
70
+ # * get_reactions_by_enzyme(enzyme_id)
71
+ # * get_reactions_by_compound(compound_id)
72
+ # * get_genes_by_organism(org, start, max_results)
73
+ # * get_number_of_genes_by_organism(org)
74
+ #
75
+ # == KEGG API methods implemented only in BioRuby
76
+ #
77
+ # In BioRuby, returned values are added filter method to pick up
78
+ # values in a complex data type as an array.
79
+ #
80
+ # #!/usr/bin/env ruby
81
+ #
82
+ # require 'bio'
83
+ #
84
+ # serv = Bio::KEGG::API.new
85
+ # results = serv.get_best_neighbors_by_gene("eco:b0002", "bsu")
86
+ #
87
+ # # case 0 : without filter
88
+ # results.each do |hit|
89
+ # print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
90
+ # end
91
+ #
92
+ # # case 1 : select gene names and SW score only
93
+ # fields = [:genes_id1, :genes_id2, :sw_score]
94
+ # results.each do |hit|
95
+ # puts hit.filter(fields).join("\t")
96
+ # end
97
+ #
98
+ # # case 2 : also uses aligned position in each amino acid sequence etc.
99
+ # fields1 = [:genes_id1, :start_position1, :end_position1, :best_flag_1to2]
100
+ # fields2 = [:genes_id2, :start_position2, :end_position2, :best_flag_2to1]
101
+ # results.each do |hit|
102
+ # print "> score: ", hit.sw_score, ", identity: ", hit.identity, "\n"
103
+ # print "1:\t", hit.filter(fields1).join("\t"), "\n"
104
+ # print "2:\t", hit.filter(fields2).join("\t"), "\n"
105
+ # end
106
+ #
107
+ # Using filter method will make it easy to change fields to select and
108
+ # keep the script clean.
109
+ #
110
+ # * Bio::KEGG::API#get_all_neighbors_by_gene(genes_id, org)
111
+ # * Bio::KEGG::API#get_all_best_best_neighbors_by_gene(genes_id)
112
+ # * Bio::KEGG::API#get_all_best_neighbors_by_gene(genes_id)
113
+ # * Bio::KEGG::API#get_all_reverse_best_neighbors_by_gene(genes_id)
114
+ # * Bio::KEGG::API#get_all_paralogs_by_gene(genes_id)
115
+ # * Bio::KEGG::API#get_all_genes_by_motifs(motif_id_list)
116
+ # * Bio::KEGG::API#get_all_oc_members_by_gene(genes_id)
117
+ # * Bio::KEGG::API#get_all_pc_members_by_gene(genes_id)
118
+ # * Bio::KEGG::API#get_all_genes_by_organism(org)
119
+ #
120
+ # These methods are wrapper for the methods without _all_ in its name
121
+ # and internally iterate to retrive all the results using start/max_results
122
+ # value pairs described above. For example,
123
+ #
124
+ # #!/usr/bin/env ruby
125
+ #
126
+ # require 'soap/wsdlDriver'
127
+ #
128
+ # wsdl = "http://soap.genome.jp/KEGG.wsdl"
129
+ # serv = SOAP::WSDLDriverFactory.new(wsdl).create_driver
130
+ # serv.generate_explicit_type = true
131
+ #
132
+ # start = 1
133
+ # max_results = 100
134
+ #
135
+ # loop do
136
+ # results = serv.get_best_neighbors_by_gene('eco:b0002', start, max_results)
137
+ # break unless results # when no more results returned
138
+ # results.each do |hit|
139
+ # print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
140
+ # end
141
+ # start += max_results
142
+ # end
143
+ #
144
+ # can be witten as
145
+ #
146
+ # #!/usr/bin/env ruby
147
+ #
148
+ # require 'bio'
149
+ #
150
+ # serv = Bio::KEGG::API.new
151
+ #
152
+ # results = serv.get_all_best_neighbors_by_gene('eco:b0002')
153
+ # results.each do |hit|
154
+ # print hit.genes_id1, "\t", hit.genes_id2, "\t", hit.sw_score, "\n"
155
+ # end
156
+ #
157
+ #
158
+ # * Bio::KEGG::API#save_image(url, filename = nil)
159
+ #
160
+ # Some methods of the KEGG API will return a URL of the generated image.
161
+ # This method save an image specified by the URL. The filename can be
162
+ # specified by its second argument, otherwise basename of the URL will
163
+ # be used.
164
+ #
165
+ # #!/usr/bin/env ruby
166
+ #
167
+ # require 'bio'
168
+ #
169
+ # serv = Bio::KEGG::API.new("http://soap.genome.jp/v3.0/KEGG.wsdl")
170
+ #
171
+ # list = ["eco:b1002", "eco:b2388"]
172
+ # url = serv.mark_pathway_by_objects("path:eco00010", list)
173
+ #
174
+ # # Save with the original filename (eco00010.gif in this case)
175
+ # serv.save_image(url)
176
+ #
177
+ # # or save as "save_image.gif"
178
+ # serv.save_image(url, "save_image.gif")
179
+ #
180
+ # * Bio::KEGG::API#get_entries(entry_id_list)
181
+ # * Bio::KEGG::API#get_aaseqs(entry_id_list)
182
+ # * Bio::KEGG::API#get_naseqs(entry_id_list)
183
+ # * Bio::KEGG::API#get_definitions(entry_id_list)
184
+ #
185
+ # These methods are for the shortcut and backward compatibility
186
+ # (these methods existed in the older version of the KEGG API).
187
+ #
188
+ class API < Bio::SOAPWSDL
189
+
190
+ SERVER_URI = "http://soap.genome.jp/KEGG.wsdl"
191
+
192
+ # Connect to the KEGG API's SOAP server. A WSDL file will be automatically
193
+ # downloaded and parsed to generate the SOAP client driver. The default URL
194
+ # for the WSDL is http://soap.genome.jp/KEGG.wsdl but it can be changed by
195
+ # the argument or by wsdl= method.
196
+ def initialize(wsdl = nil)
197
+ @wsdl = wsdl || SERVER_URI
198
+ @log = nil
199
+ @start = 1
200
+ @max_results = 100
201
+ create_driver
202
+ end
203
+
204
+ # Returns current value for the 'start' count for the methods having
205
+ # start/max_results argument pairs or changes the default value for
206
+ # the 'start' count.
207
+ attr_accessor :start
208
+
209
+ # Returns current value for the 'max_results' number for the methods having
210
+ # start/max_results argument pairs or changes the default value for the
211
+ # 'max_results' count. If your request timeouts, try smaller value for
212
+ # the max_results.
213
+ attr_accessor :max_results
214
+
215
+ def method_missing(*arg)
216
+ begin
217
+ results = @driver.send(*arg)
218
+ rescue Timeout::Error
219
+ retry
220
+ end
221
+ results = add_filter(results)
222
+ return results
223
+ end
224
+
225
+
226
+ # def get_all_neighbors_by_gene(genes_id, org)
227
+ # get_all(:get_neighbors_by_gene, genes_id, org)
228
+ # end
229
+
230
+ def get_all_best_best_neighbors_by_gene(genes_id)
231
+ get_all(:get_best_best_neighbors_by_gene, genes_id)
232
+ end
233
+
234
+ def get_all_best_neighbors_by_gene(genes_id)
235
+ get_all(:get_best_neighbors_by_gene, genes_id)
236
+ end
237
+
238
+ def get_all_reverse_best_neighbors_by_gene(genes_id)
239
+ get_all(:get_reverse_best_neighbors_by_gene, genes_id)
240
+ end
241
+
242
+ def get_all_paralogs_by_gene(genes_id)
243
+ get_all(:get_paralogs_by_gene, genes_id)
244
+ end
245
+
246
+ def get_all_genes_by_motifs(motif_id_list)
247
+ get_all(:get_genes_by_motifs, motif_id_list)
248
+ end
249
+
250
+ def get_all_oc_members_by_gene(genes_id)
251
+ get_all(:get_oc_members_by_gene, genes_id)
252
+ end
253
+
254
+ def get_all_pc_members_by_gene(genes_id)
255
+ get_all(:get_pc_members_by_gene, genes_id)
256
+ end
257
+
258
+ def get_all_genes_by_organism(org)
259
+ get_all(:get_genes_by_organism, org)
260
+ end
261
+
262
+ def get_all_linkdb_by_entry(entry_id, db)
263
+ get_all(:get_linkdb_by_entry, entry_id, db)
264
+ end
265
+
266
+
267
+ def save_image(url, filename = nil)
268
+ schema, user, host, port, reg, path, = URI.split(url)
269
+ filename ||= File.basename(path)
270
+
271
+ http = Bio::Command.new_http(host, port)
272
+ response = http.get(path)
273
+ File.open(filename, "w+") do |f|
274
+ f.print response.body
275
+ end
276
+ return filename
277
+ end
278
+
279
+
280
+ def get_entries(ary = [])
281
+ result = ''
282
+ step = [@max_results, 50].min
283
+ 0.step(ary.length, step) do |i|
284
+ str = ary[i, step].join(" ")
285
+ if entry = @driver.send(:bget, str)
286
+ result << entry.to_s
287
+ end
288
+ end
289
+ return result
290
+ end
291
+
292
+ def get_aaseqs(ary = [])
293
+ result = ''
294
+ step = [@max_results, 50].min
295
+ 0.step(ary.length, step) do |i|
296
+ str = "-f -n a " + ary[i, step].join(" ")
297
+ if entry = @driver.send(:bget, str)
298
+ result << entry.to_s
299
+ end
300
+ end
301
+ return result
302
+ end
303
+
304
+ def get_naseqs(ary = [])
305
+ result = ''
306
+ step = [@max_results, 50].min
307
+ 0.step(ary.length, step) do |i|
308
+ str = "-f -n n " + ary[i, step].join(" ")
309
+ if entry = @driver.send(:bget, str)
310
+ result << entry.to_s
311
+ end
312
+ end
313
+ return result
314
+ end
315
+
316
+ def get_definitions(ary = [])
317
+ result = ''
318
+ step = [@max_results, 50].min
319
+ 0.step(ary.length, step) do |i|
320
+ str = ary[i, step].join(" ")
321
+ if entry = @driver.send(:btit, str)
322
+ result << entry.to_s
323
+ end
324
+ end
325
+ return result
326
+ end
327
+
328
+
329
+ private
330
+
331
+ def add_filter(results)
332
+ if results.is_a?(Array)
333
+ results.each do |result|
334
+ next if result.is_a?(Fixnum)
335
+ def result.filter(fields)
336
+ fields.collect { |field| self.send(field) }
337
+ end
338
+ end
339
+ end
340
+ return results
341
+ end
342
+
343
+ def get_all(method, *args)
344
+ args << @start
345
+ args << @max_results
346
+
347
+ ary = []
348
+ loop do
349
+ results = @driver.send(method, *args)
350
+ break unless results
351
+ break if results.empty?
352
+ results = add_filter(results)
353
+ ary << results
354
+ args[-2] += @max_results # next start count
355
+ end
356
+ return ary.flatten
357
+ end
358
+
359
+ end # API
360
+
361
+ end # KEGG
362
+ end # Bio
363
+
364
+
365
+ if __FILE__ == $0
366
+
367
+ begin
368
+ require 'pp'
369
+ alias p pp
370
+ rescue LoadError
371
+ end
372
+
373
+ puts ">>> KEGG API"
374
+ serv = Bio::KEGG::API.new
375
+ # serv.log = STDERR
376
+
377
+ puts "# * parameters"
378
+ puts " wsdl : #{serv.wsdl}"
379
+ puts " log : #{serv.log}"
380
+ puts " start : #{serv.start}"
381
+ puts " max_results : #{serv.max_results}"
382
+
383
+ puts "=== META"
384
+
385
+ puts "### list_databases"
386
+ list = serv.list_databases
387
+ list.each do |db|
388
+ print db.entry_id, "\t", db.definition, "\n"
389
+ end
390
+
391
+ puts "### list_organisms"
392
+ list = serv.list_organisms
393
+ list.each do |org|
394
+ print org.entry_id, "\t", org.definition, "\n"
395
+ end
396
+
397
+ puts "### list_pathways('map') : reference pathway"
398
+ list = serv.list_pathways("map")
399
+ list.each do |path|
400
+ print path.entry_id, "\t", path.definition, "\n"
401
+ end
402
+
403
+ puts "### list_pathways('eco') : E. coli pathway"
404
+ list = serv.list_pathways("eco")
405
+ list.each do |path|
406
+ print path.entry_id, "\t", path.definition, "\n"
407
+ end
408
+
409
+ puts "=== DBGET"
410
+
411
+ puts "### binfo('all')"
412
+ puts serv.binfo("all")
413
+
414
+ puts "### binfo('genbank')"
415
+ puts serv.binfo("genbank")
416
+
417
+ puts "### bfind('genbank kinase cell cycle human')"
418
+ puts serv.bfind("genbank kinase cell cycle human")
419
+
420
+ puts "### bget('gb:AJ617376')"
421
+ puts serv.bget("gb:AJ617376")
422
+
423
+ puts "### bget('eco:b0002 eco:b0003')"
424
+ puts serv.bget("eco:b0002 eco:b0003")
425
+
426
+ puts "### btit('eco:b0002 eco:b0003')"
427
+ puts serv.btit("eco:b0002 eco:b0003")
428
+
429
+ puts "# * get_entries(['eco:b0002', 'eco:b0003'])"
430
+ puts serv.get_entries(["eco:b0002", "eco:b0003"])
431
+
432
+ puts "# * get_aaseqs(['eco:b0002', 'eco:b0003'])"
433
+ puts serv.get_aaseqs(["eco:b0002", "eco:b0003"])
434
+
435
+ puts "# * get_naseqs(['eco:b0002', 'eco:b0003'])"
436
+ puts serv.get_naseqs(["eco:b0002", "eco:b0003"])
437
+
438
+ puts "# * get_definitions(['eco:b0002', 'eco:b0003'])"
439
+ puts serv.get_definitions(["eco:b0002", "eco:b0003"])
440
+
441
+ puts "# * get_definitions(('eco:b0001'..'eco:b0200').to_a)"
442
+ puts serv.get_definitions(("eco:b0001".."eco:b0200").to_a)
443
+
444
+ puts "=== LinkDB"
445
+
446
+ puts "### get_linkdb_by_entry('eco:b0002', 'pathway', 1, 5)"
447
+ list = serv.get_linkdb_by_entry("eco:b0002", "pathway", 1, 5)
448
+ list.each do |link|
449
+ puts [ link.entry_id1, link.entry_id2, link.type, link.path ].join("\t")
450
+ end
451
+
452
+ puts "# * get_all_linkdb_by_entry('eco:b0002', 'pathway')"
453
+ list = serv.get_all_linkdb_by_entry("eco:b0002", "pathway")
454
+ list.each do |link|
455
+ puts [ link.entry_id1, link.entry_id2, link.type, link.path ].join("\t")
456
+ end
457
+
458
+ puts "=== SSDB"
459
+
460
+ puts "### get_neighbors_by_gene('eco:b0002', 'all', 1, 5)"
461
+ list = serv.get_neighbors_by_gene("eco:b0002", "all", 1, 5)
462
+ list.each do |hit|
463
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
464
+ end
465
+
466
+ puts "# * get_all_neighbors_by_gene('eco:b0002', 'bsu')"
467
+ list = serv.get_all_neighbors_by_gene("eco:b0002", "bsu")
468
+ list.each do |hit|
469
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
470
+ end
471
+
472
+ puts "### get_best_best_neighbors_by_gene('eco:b0002', 1, 5)"
473
+ list = serv.get_best_best_neighbors_by_gene("eco:b0002", 1, 5)
474
+ list.each do |hit|
475
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
476
+ end
477
+
478
+ puts "# * get_all_best_best_neighbors_by_gene('eco:b0002')"
479
+ list = serv.get_all_best_best_neighbors_by_gene("eco:b0002")
480
+ list.each do |hit|
481
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
482
+ end
483
+
484
+ puts "### get_best_neighbors_by_gene('eco:b0002', 1, 5)"
485
+ list = serv.get_best_neighbors_by_gene("eco:b0002", 1, 5)
486
+ list.each do |hit|
487
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
488
+ end
489
+
490
+ puts "# * get_all_best_neighbors_by_gene('eco:b0002')"
491
+ list = serv.get_all_best_neighbors_by_gene("eco:b0002")
492
+ list.each do |hit|
493
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
494
+ end
495
+
496
+ puts "### get_reverse_best_neighbors_by_gene('eco:b0002', 1, 5)"
497
+ list = serv.get_reverse_best_neighbors_by_gene("eco:b0002", 1, 5)
498
+ list.each do |hit|
499
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
500
+ end
501
+
502
+ puts "# * get_all_reverse_best_neighbors_by_gene('eco:b0002')"
503
+ list = serv.get_all_reverse_best_neighbors_by_gene("eco:b0002")
504
+ list.each do |hit|
505
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
506
+ end
507
+
508
+ puts "### get_paralogs_by_gene('eco:b0002', 1, 5)"
509
+ list = serv.get_paralogs_by_gene("eco:b0002", 1, 5)
510
+ list.each do |hit|
511
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
512
+ end
513
+
514
+ puts "# * get_all_paralogs_by_gene('eco:b0002')"
515
+ list = serv.get_all_paralogs_by_gene("eco:b0002")
516
+ list.each do |hit|
517
+ puts [ hit.genes_id1, hit.genes_id2, hit.sw_score ].join("\t")
518
+ end
519
+
520
+ puts "### get_similarity_between_genes('eco:b0002', 'bsu:BG10350')"
521
+ relation = serv.get_similarity_between_genes("eco:b0002", "bsu:BG10350")
522
+ puts " genes_id1 : #{relation.genes_id1}" # string
523
+ puts " genes_id2 : #{relation.genes_id2}" # string
524
+ puts " sw_score : #{relation.sw_score}" # int
525
+ puts " bit_score : #{relation.bit_score}" # float
526
+ puts " identity : #{relation.identity}" # float
527
+ puts " overlap : #{relation.overlap}" # int
528
+ puts " start_position1 : #{relation.start_position1}" # int
529
+ puts " end_position1 : #{relation.end_position1}" # int
530
+ puts " start_position2 : #{relation.start_position2}" # int
531
+ puts " end_position2 : #{relation.end_position2}" # int
532
+ puts " best_flag_1to2 : #{relation.best_flag_1to2}" # boolean
533
+ puts " best_flag_2to1 : #{relation.best_flag_2to1}" # boolean
534
+ puts " definition1 : #{relation.definition1}" # string
535
+ puts " definition2 : #{relation.definition2}" # string
536
+ puts " length1 : #{relation.length1}" # int
537
+ puts " length2 : #{relation.length2}" # int
538
+
539
+ puts "=== MOTIF"
540
+
541
+ puts "### get_motifs_by_gene('eco:b0002', 'pfam')"
542
+ list = serv.get_motifs_by_gene("eco:b0002", "pfam")
543
+ list.each do |motif|
544
+ puts motif.motif_id
545
+ end if list
546
+
547
+ puts "### get_motifs_by_gene('eco:b0002', 'tfam')"
548
+ list = serv.get_motifs_by_gene("eco:b0002", "tfam")
549
+ list.each do |motif|
550
+ puts motif.motif_id
551
+ end if list
552
+
553
+ puts "### get_motifs_by_gene('eco:b0002', 'pspt')"
554
+ list = serv.get_motifs_by_gene("eco:b0002", "pspt")
555
+ list.each do |motif|
556
+ puts motif.motif_id
557
+ end if list
558
+
559
+ puts "### get_motifs_by_gene('eco:b0002', 'pspf')"
560
+ list = serv.get_motifs_by_gene("eco:b0002", "pspf")
561
+ list.each do |motif|
562
+ puts motif.motif_id
563
+ end if list
564
+
565
+ puts "### get_motifs_by_gene('eco:b0002', 'all')"
566
+ list = serv.get_motifs_by_gene("eco:b0002", "all")
567
+ list.each do |motif|
568
+ puts "# * motif result"
569
+ puts " motif_id : #{motif.motif_id}"
570
+ puts " definition : #{motif.definition}"
571
+ puts " genes_id : #{motif.genes_id}"
572
+ puts " start_position : #{motif.start_position}"
573
+ puts " end_position : #{motif.end_position}"
574
+ puts " score : #{motif.score}"
575
+ puts " evalue : #{motif.evalue}"
576
+ end
577
+
578
+ puts "### get_genes_by_motifs(['pf:ACT', 'ps:ASPARTOKINASE'], 1, 5)"
579
+ list = serv.get_genes_by_motifs(["pf:ACT", "ps:ASPARTOKINASE"], 1, 5)
580
+ list.each do |gene|
581
+ puts [ gene.entry_id, gene.definition ].join("\t")
582
+ end
583
+
584
+ puts "# * get_all_genes_by_motifs(['pf:ACT', 'ps:ASPARTOKINASE'])"
585
+ list = serv.get_all_genes_by_motifs(["pf:ACT", "ps:ASPARTOKINASE"])
586
+ list.each do |gene|
587
+ puts [ gene.entry_id, gene.definition ].join("\t")
588
+ end
589
+
590
+ puts "=== KO, OC, PC"
591
+
592
+ puts "### get_ko_by_gene('eco:b0002')"
593
+ list = serv.get_ko_by_gene("eco:b0002")
594
+ list.each do |ko|
595
+ puts ko
596
+ end
597
+
598
+ puts "### get_ko_members('ko:K00003')"
599
+ list = serv.get_ko_members("ko:K00003")
600
+ list.each do |gene|
601
+ puts gene
602
+ end
603
+
604
+ puts "### get_oc_members_by_gene('eco:b0002', 1, 5)"
605
+ list = serv.get_oc_members_by_gene("eco:b0002", 1, 5)
606
+ list.each do |gene|
607
+ puts gene
608
+ end
609
+
610
+ puts "# * get_all_oc_members_by_gene('eco:b0002')"
611
+ list = serv.get_all_oc_members_by_gene("eco:b0002")
612
+ list.each do |gene|
613
+ puts gene
614
+ end
615
+
616
+ puts "### get_pc_members_by_gene('eco:b0002', 1, 5)"
617
+ list = serv.get_pc_members_by_gene("eco:b0002", 1, 5)
618
+ list.each do |gene|
619
+ puts gene
620
+ end
621
+
622
+ puts "# * get_all_pc_members_by_gene('eco:b0002')"
623
+ list = serv.get_all_pc_members_by_gene("eco:b0002")
624
+ list.each do |gene|
625
+ puts gene
626
+ end
627
+
628
+ puts "=== PATHWAY"
629
+
630
+ puts "==== coloring pathway"
631
+
632
+ puts "### mark_pathway_by_objects('path:eco00260', obj_list)"
633
+ puts " obj_list = ['eco:b0002', 'cpd:C00263']"
634
+ obj_list = ["eco:b0002", "cpd:C00263"]
635
+ url = serv.mark_pathway_by_objects("path:eco00260", obj_list)
636
+ puts url
637
+
638
+ puts "### color_pathway_by_objects('path:eco00053', obj_list, fg_list, bg_list)"
639
+ puts " obj_list = ['eco:b0207', 'eco:b1300']"
640
+ puts " fg_list = ['blue', '#00ff00']"
641
+ puts " bg_list = ['#ff0000', 'yellow']"
642
+ obj_list = ["eco:b0207", "eco:b1300"]
643
+ fg_list = ["blue", "#00ff00"]
644
+ bg_list = ["#ff0000", "yellow"]
645
+ url = serv.color_pathway_by_objects("path:eco00053", obj_list, fg_list, bg_list)
646
+ puts url
647
+
648
+ #puts "# * save_image(#{url})"
649
+ #filename = serv.save_image(url, "test.gif")
650
+ #filename = serv.save_image(url)
651
+ #puts filename
652
+
653
+ puts "==== objects on pathway"
654
+
655
+ puts "### get_genes_by_pathway('path:map00010')"
656
+ list = serv.get_genes_by_pathway("path:map00010")
657
+ list.each do |gene|
658
+ puts gene
659
+ end
660
+
661
+ puts "### get_genes_by_pathway('path:eco00010')"
662
+ list = serv.get_genes_by_pathway("path:eco00010")
663
+ list.each do |gene|
664
+ puts gene
665
+ end
666
+
667
+ puts "### get_enzymes_by_pathway('path:map00010')"
668
+ list = serv.get_enzymes_by_pathway("path:map00010")
669
+ list.each do |enzyme|
670
+ puts enzyme
671
+ end
672
+
673
+ puts "### get_enzymes_by_pathway('path:eco00010')"
674
+ list = serv.get_enzymes_by_pathway("path:eco00010")
675
+ list.each do |enzyme|
676
+ puts enzyme
677
+ end
678
+
679
+ puts "### get_compounds_by_pathway('path:map00010')"
680
+ list = serv.get_compounds_by_pathway("path:map00010")
681
+ list.each do |compound|
682
+ puts compound
683
+ end
684
+
685
+ puts "### get_compounds_by_pathway('path:eco00010')"
686
+ list = serv.get_compounds_by_pathway("path:eco00010")
687
+ list.each do |compound|
688
+ puts compound
689
+ end
690
+
691
+ puts "### get_reactions_by_pathway('path:map00010')"
692
+ list = serv.get_reactions_by_pathway("path:map00010")
693
+ list.each do |reaction|
694
+ puts reaction
695
+ end
696
+
697
+ puts "### get_reactions_by_pathway('path:eco00010')"
698
+ list = serv.get_reactions_by_pathway("path:eco00010")
699
+ list.each do |reaction|
700
+ puts reaction
701
+ end
702
+
703
+ puts "==== pathway by objects"
704
+
705
+ puts "### get_pathways_by_genes(['eco:b0756', 'eco:b1002'])"
706
+ list = serv.get_pathways_by_genes(["eco:b0756", "eco:b1002"])
707
+ list.each do |path|
708
+ puts path
709
+ end
710
+
711
+ puts "### get_pathways_by_enzymes(['ec:5.1.3.3', 'ec:3.1.3.10'])"
712
+ list = serv.get_pathways_by_enzymes(["ec:5.1.3.3", "ec:3.1.3.10"])
713
+ list.each do |path|
714
+ puts path
715
+ end
716
+
717
+ puts "### get_pathways_by_compounds(['cpd:C00221', 'cpd:C00267'])"
718
+ list = serv.get_pathways_by_compounds(["cpd:C00221", "cpd:C00267"])
719
+ list.each do |path|
720
+ puts path
721
+ end
722
+
723
+ puts "### get_pathways_by_reactions(['rn:R00014', 'rn:R00710'])"
724
+ list = serv.get_pathways_by_reactions(["rn:R00014", "rn:R00710"])
725
+ list.each do |path|
726
+ puts path
727
+ end
728
+
729
+ puts "==== relation between objects"
730
+
731
+ puts "### get_linked_pathways('path:eco00620')"
732
+ list = serv.get_linked_pathways('path:eco00620')
733
+ list.each do |path|
734
+ puts path
735
+ end
736
+
737
+ puts "### get_genes_by_enzyme('ec:1.1.1.1', 'eco')"
738
+ list = serv.get_genes_by_enzyme("ec:1.1.1.1", "eco")
739
+ list.each do |gene|
740
+ puts gene
741
+ end
742
+
743
+ puts "### get_enzymes_by_gene('eco:b0002')"
744
+ list = serv.get_enzymes_by_gene("eco:b0002")
745
+ list.each do |enzyme|
746
+ puts enzyme
747
+ end
748
+
749
+ puts "### get_enzymes_by_compound('cpd:C00345')"
750
+ list = serv.get_enzymes_by_compound("cpd:C00345")
751
+ list.each do |enzyme|
752
+ puts enzyme
753
+ end
754
+
755
+ puts "### get_enzymes_by_reaction('rn:R00100')"
756
+ list = serv.get_enzymes_by_reaction("rn:R00100")
757
+ list.each do |enzyme|
758
+ puts enzyme
759
+ end
760
+
761
+ puts "### get_compounds_by_enzyme('ec:2.7.1.12')"
762
+ list = serv.get_compounds_by_enzyme("ec:2.7.1.12")
763
+ list.each do |compound|
764
+ puts compound
765
+ end
766
+
767
+ puts "### get_compounds_by_reaction('rn:R00100')"
768
+ list = serv.get_compounds_by_reaction("rn:R00100")
769
+ list.each do |compound|
770
+ puts compound
771
+ end
772
+
773
+ puts "### get_reactions_by_enzyme('ec:2.7.1.12')"
774
+ list = serv.get_reactions_by_enzyme("ec:2.7.1.12")
775
+ list.each do |reaction|
776
+ puts reaction
777
+ end
778
+
779
+ puts "### get_reactions_by_compound('cpd:C00199')"
780
+ list = serv.get_reactions_by_compound("cpd:C00199")
781
+ list.each do |reaction|
782
+ puts reaction
783
+ end
784
+
785
+ puts "=== GENES"
786
+
787
+ puts "### get_genes_by_organism('mge', 1, 5)"
788
+ list = serv.get_genes_by_organism("mge", 1, 5)
789
+ list.each do |gene|
790
+ puts gene
791
+ end
792
+
793
+ puts "# * get_all_genes_by_organism('mge')"
794
+ list = serv.get_all_genes_by_organism("mge")
795
+ list.each do |gene|
796
+ puts gene
797
+ end
798
+
799
+ puts "=== GENOME"
800
+
801
+ puts "### get_number_of_genes_by_organism(org)"
802
+ puts serv.get_number_of_genes_by_organism("mge")
803
+
804
+ end
805
+