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,29 @@
1
+ #
2
+ # = bio/db/pdb.rb - PDB database classes
3
+ #
4
+ # Copyright:: Copyright (C) 2004
5
+ # GOTO Naohisa <ngoto@gen-info.osaka-u.ac.jp>
6
+ # License:: The Ruby License
7
+ #
8
+ # $Id: pdb.rb,v 1.8 2007/04/05 23:35:40 trevor Exp $
9
+ #
10
+
11
+ require 'bio/db'
12
+
13
+ # definition of the PDB class
14
+ module Bio
15
+ class PDB #< DB
16
+
17
+ autoload :ChemicalComponent, 'bio/db/pdb/chemicalcomponent'
18
+
19
+ end #class PDB
20
+ end #module Bio
21
+
22
+ # require other files under pdb directory
23
+ require 'bio/db/pdb/utils'
24
+ require 'bio/db/pdb/atom'
25
+ require 'bio/db/pdb/residue'
26
+ require 'bio/db/pdb/chain'
27
+ require 'bio/db/pdb/model'
28
+ require 'bio/db/pdb/pdb'
29
+
@@ -0,0 +1,77 @@
1
+ #
2
+ # = bio/db/pdb/atom.rb - Coordinate class for PDB
3
+ #
4
+ # Copyright:: Copyright (C) 2004, 2006
5
+ # Alex Gutteridge <alexg@ebi.ac.uk>
6
+ # Naohisa Goto <ng@bioruby.org>
7
+ # License:: The Ruby License
8
+ #
9
+ # $Id: atom.rb,v 1.8 2007/04/05 23:35:41 trevor Exp $
10
+ #
11
+ # = Bio::PDB::Coordinate
12
+ #
13
+ # Coordinate class for PDB.
14
+ #
15
+ # = Compatibility Note
16
+ #
17
+ # From bioruby 0.7.0, the Bio::PDB::Atom class is no longer available.
18
+ # Please use Bio::PDB::Record::ATOM and Bio::PDB::Record::HETATM instead.
19
+ #
20
+
21
+ require 'matrix'
22
+ require 'bio/db/pdb'
23
+
24
+ module Bio
25
+ class PDB
26
+
27
+ # Bio::PDB::Coordinate is a class to store a 3D coordinate.
28
+ # It inherits Vector (in bundled library in Ruby).
29
+ #
30
+ class Coordinate < Vector
31
+ # same as Vector.[x,y,z]
32
+ def self.[](x,y,z)
33
+ super
34
+ end
35
+
36
+ # same as Vector.elements
37
+ def self.elements(array, *a)
38
+ raise 'Size of given array must be 3' if array.size != 3
39
+ super
40
+ end
41
+
42
+ # x
43
+ def x; self[0]; end
44
+ # y
45
+ def y; self[1]; end
46
+ # z
47
+ def z; self[2]; end
48
+ # x=(n)
49
+ def x=(n); self[0]=n; end
50
+ # y=(n)
51
+ def y=(n); self[1]=n; end
52
+ # z=(n)
53
+ def z=(n); self[2]=n; end
54
+
55
+ # Implicit conversion to an array.
56
+ #
57
+ # Note that this method would be deprecated in the future.
58
+ #
59
+ #--
60
+ # Definition of 'to_ary' means objects of the class is
61
+ # implicitly regarded as an array.
62
+ #++
63
+ def to_ary; self.to_a; end
64
+
65
+ # returns self.
66
+ def xyz; self; end
67
+
68
+ # distance between <em>object2</em>.
69
+ def distance(object2)
70
+ Utils::convert_to_xyz(object2)
71
+ (self - object2).r
72
+ end
73
+ end #class Coordinate
74
+
75
+ end #class PDB
76
+ end #class Bio
77
+
@@ -0,0 +1,210 @@
1
+ #
2
+ # = bio/db/pdb/chain.rb - chain class for PDB
3
+ #
4
+ # Copyright:: Copyright (C) 2004, 2006
5
+ # Alex Gutteridge <alexg@ebi.ac.uk>
6
+ # Naohisa Goto <ng@bioruby.org>
7
+ # License:: The Ruby License
8
+ #
9
+ # $Id: chain.rb,v 1.10 2008/04/01 10:36:44 ngoto Exp $
10
+ #
11
+ # = Bio::PDB::Chain
12
+ #
13
+ # Please refer Bio::PDB::Chain.
14
+ #
15
+
16
+ require 'bio/db/pdb'
17
+
18
+ module Bio
19
+
20
+ class PDB
21
+
22
+ # Bio::PDB::Chain is a class to store a chain.
23
+ #
24
+ # The object would contain some residues (Bio::PDB::Residue objects)
25
+ # and some heterogens (Bio::PDB::Heterogen objects).
26
+ #
27
+ class Chain
28
+
29
+ include Utils
30
+ include AtomFinder
31
+ include ResidueFinder
32
+
33
+ include HetatmFinder
34
+ include HeterogenFinder
35
+
36
+ include Enumerable
37
+ include Comparable
38
+
39
+ # Creates a new chain object.
40
+ def initialize(id = nil, model = nil)
41
+
42
+ @chain_id = id
43
+
44
+ @model = model
45
+
46
+ @residues = []
47
+ @residues_hash = {}
48
+ @heterogens = []
49
+ @heterogens_hash = {}
50
+ end
51
+
52
+ # Identifier of this chain
53
+ attr_accessor :chain_id
54
+ # alias
55
+ alias id chain_id
56
+
57
+ # the model to which this chain belongs.
58
+ attr_reader :model
59
+
60
+ # residues in this chain
61
+ attr_reader :residues
62
+
63
+ # heterogens in this chain
64
+ attr_reader :heterogens
65
+
66
+ # get the residue by id
67
+ def get_residue_by_id(key)
68
+ #@residues.find { |r| r.residue_id == key }
69
+ @residues_hash[key]
70
+ end
71
+
72
+ # get the residue by id.
73
+ #
74
+ # Compatibility Note: Now, you cannot find HETATMS in this method.
75
+ # To add "LIGAND" to the id is no longer available.
76
+ # To get heterogens, you must use <code>get_heterogen_by_id</code>.
77
+ def [](key)
78
+ get_residue_by_id(key)
79
+ end
80
+
81
+ # get the heterogen (ligand) by id
82
+ def get_heterogen_by_id(key)
83
+ #@heterogens.find { |r| r.residue_id == key }
84
+ @heterogens_hash[key]
85
+ end
86
+
87
+ #Add a residue to this chain
88
+ def addResidue(residue)
89
+ raise "Expecting a Bio::PDB::Residue" unless residue.is_a? Bio::PDB::Residue
90
+ @residues.push(residue)
91
+ if @residues_hash[residue.residue_id] then
92
+ $stderr.puts "Warning: residue_id #{residue.residue_id.inspect} is already used" if $VERBOSE
93
+ else
94
+ @residues_hash[residue.residue_id] = residue
95
+ end
96
+ self
97
+ end
98
+
99
+ #Add a heterogen (ligand) to this chain
100
+ def addLigand(ligand)
101
+ raise "Expecting a Bio::PDB::Residue" unless ligand.is_a? Bio::PDB::Residue
102
+ @heterogens.push(ligand)
103
+ if @heterogens_hash[ligand.residue_id] then
104
+ $stderr.puts "Warning: heterogen_id (residue_id) #{ligand.residue_id.inspect} is already used" if $VERBOSE
105
+ else
106
+ @heterogens_hash[ligand.residue_id] = ligand
107
+ end
108
+ self
109
+ end
110
+
111
+ # rehash residues hash
112
+ def rehash_residues
113
+ begin
114
+ residues_bak = @residues
115
+ residues_hash_bak = @residues_hash
116
+ @residues = []
117
+ @residues_hash = {}
118
+ residues_bak.each do |residue|
119
+ self.addResidue(residue)
120
+ end
121
+ rescue RuntimeError
122
+ @residues = residues_bak
123
+ @residues_hash = residues_hash_bak
124
+ raise
125
+ end
126
+ self
127
+ end
128
+
129
+ # rehash heterogens hash
130
+ def rehash_heterogens
131
+ begin
132
+ heterogens_bak = @heterogens
133
+ heterogens_hash_bak = @heterogens_hash
134
+ @heterogens = []
135
+ @heterogens_hash = {}
136
+ heterogens_bak.each do |heterogen|
137
+ self.addLigand(heterogen)
138
+ end
139
+ rescue RuntimeError
140
+ @heterogens = heterogens_bak
141
+ @heterogens_hash = heterogens_hash_bak
142
+ raise
143
+ end
144
+ self
145
+ end
146
+
147
+ # rehash residues hash and heterogens hash
148
+ def rehash
149
+ rehash_residues
150
+ rehash_heterogens
151
+ end
152
+
153
+ # Iterates over each residue
154
+ def each(&x) #:yields: residue
155
+ @residues.each(&x)
156
+ end
157
+ #Alias to override ResidueFinder#each_residue
158
+ alias each_residue each
159
+
160
+ # Iterates over each hetero-compound
161
+ def each_heterogen(&x) #:yields: heterogen
162
+ @heterogens.each(&x)
163
+ end
164
+
165
+ # Operator aimed to sort based on chain id
166
+ def <=>(other)
167
+ return @chain_id <=> other.chain_id
168
+ end
169
+
170
+ # Stringifies each residue
171
+ def to_s
172
+ @residues.join('') + "TER\n" + @heterogens.join('')
173
+ end
174
+
175
+ # returns a string containing human-readable representation
176
+ # of this object.
177
+ def inspect
178
+ "#<#{self.class.to_s} id=#{chain_id.inspect} model.serial=#{(model ? model.serial : nil).inspect} residues.size=#{residues.size} heterogens.size=#{heterogens.size} aaseq=#{aaseq.inspect}>"
179
+ end
180
+
181
+ # gets an amino acid sequence of this chain from ATOM records
182
+ def aaseq
183
+ unless defined? @aaseq
184
+ string = ""
185
+ last_residue_num = nil
186
+ @residues.each do |residue|
187
+ if last_residue_num and
188
+ (x = (residue.resSeq.to_i - last_residue_num).abs) > 1 then
189
+ x.times { string << 'X' }
190
+ end
191
+ tlc = residue.resName.capitalize
192
+ olc = (begin
193
+ Bio::AminoAcid.three2one(tlc)
194
+ rescue ArgumentError
195
+ nil
196
+ end || 'X')
197
+ string << olc
198
+ end
199
+ @aaseq = Bio::Sequence::AA.new(string)
200
+ end
201
+ @aaseq
202
+ end
203
+ # for backward compatibility
204
+ alias atom_seq aaseq
205
+
206
+ end #class Chain
207
+
208
+ end #class PDB
209
+
210
+ end #module Bio
@@ -0,0 +1,224 @@
1
+ #
2
+ # = bio/db/pdb/chemicalcomponent.rb - PDB Chemical Component Dictionary parser
3
+ #
4
+ # Copyright:: Copyright (C) 2006
5
+ # GOTO Naohisa <ngoto@gen-info.osaka-u.ac.jp>
6
+ # License:: The Ruby License
7
+ #
8
+ # $Id: chemicalcomponent.rb,v 1.3 2007/04/05 23:35:41 trevor Exp $
9
+ #
10
+ # = About Bio::PDB::ChemicalComponent
11
+ #
12
+ # Please refer Bio::PDB::ChemicalComponent.
13
+ #
14
+ # = References
15
+ #
16
+ # * ((<URL:http://deposit.pdb.org/cc_dict_tut.html>))
17
+ # * http://deposit.pdb.org/het_dictionary.txt
18
+ #
19
+
20
+ require 'bio/db/pdb/pdb'
21
+
22
+ module Bio
23
+ class PDB
24
+
25
+ # Bio::PDB::ChemicalComponet is a parser for a entry of
26
+ # the PDB Chemical Component Dictionary.
27
+ #
28
+ # The PDB Chemical Component Dictionary is available in
29
+ # http://deposit.pdb.org/het_dictionary.txt
30
+ class ChemicalComponent
31
+
32
+ # delimiter for reading via Bio::FlatFile
33
+ DELIMITER = RS = "\n\n"
34
+
35
+ # Single field (normally single line) of a entry
36
+ class Record < Bio::PDB::Record
37
+
38
+ # fetches record name
39
+ def fetch_record_name(str)
40
+ str[0..6].strip
41
+ end
42
+ private :fetch_record_name
43
+
44
+ # fetches record name
45
+ def self.fetch_record_name(str)
46
+ str[0..6].strip
47
+ end
48
+ private_class_method :fetch_record_name
49
+
50
+ # RESIDUE field.
51
+ # It would be wrong because the definition described in documents
52
+ # seems ambiguous.
53
+ RESIDUE =
54
+ def_rec([ 11, 13, Pdb_LString[3], :hetID ],
55
+ [ 16, 20, Pdb_Integer, :numHetAtoms ]
56
+ )
57
+
58
+ # CONECT field
59
+ # It would be wrong because the definition described in documents
60
+ # seems ambiguous.
61
+ CONECT =
62
+ def_rec([ 12, 15, Pdb_Atom, :name ],
63
+ [ 19, 20, Pdb_Integer, :num ],
64
+ [ 21, 24, Pdb_Atom, :other_atoms ],
65
+ [ 26, 29, Pdb_Atom, :other_atoms ],
66
+ [ 31, 34, Pdb_Atom, :other_atoms ],
67
+ [ 36, 39, Pdb_Atom, :other_atoms ],
68
+ [ 41, 44, Pdb_Atom, :other_atoms ],
69
+ [ 46, 49, Pdb_Atom, :other_atoms ],
70
+ [ 51, 54, Pdb_Atom, :other_atoms ],
71
+ [ 56, 59, Pdb_Atom, :other_atoms ],
72
+ [ 61, 64, Pdb_Atom, :other_atoms ],
73
+ [ 66, 69, Pdb_Atom, :other_atoms ],
74
+ [ 71, 74, Pdb_Atom, :other_atoms ],
75
+ [ 76, 79, Pdb_Atom, :other_atoms ]
76
+ )
77
+
78
+ # HET field.
79
+ # It is the same as Bio::PDB::Record::HET.
80
+ HET = Bio::PDB::Record::HET
81
+
82
+ #--
83
+ #HETSYN = Bio::PDB::Record::HETSYN
84
+ #++
85
+
86
+ # HETSYN field.
87
+ # It is very similar to Bio::PDB::Record::HETSYN.
88
+ HETSYN =
89
+ def_rec([ 9, 10, Pdb_Continuation, nil ],
90
+ [ 12, 14, Pdb_LString(3), :hetID ],
91
+ [ 16, 70, Pdb_String, :hetSynonyms ]
92
+ )
93
+
94
+ # HETNAM field.
95
+ # It is the same as Bio::PDB::Record::HETNAM.
96
+ HETNAM = Bio::PDB::Record::HETNAM
97
+
98
+ # FORMUL field.
99
+ # It is the same as Bio::PDB::Record::FORMUL.
100
+ FORMUL = Bio::PDB::Record::FORMUL
101
+
102
+ # default definition for unknown fields.
103
+ Default = Bio::PDB::Record::Default
104
+
105
+ # Hash to store allowed definitions.
106
+ Definition = create_definition_hash
107
+
108
+ # END record class.
109
+ #
110
+ # Because END is a reserved word of Ruby, it is separately
111
+ # added to the hash
112
+ End = Bio::PDB::Record::End
113
+ Definition['END'] = End
114
+
115
+ # Look up the class in Definition hash
116
+ def self.get_record_class(str)
117
+ t = fetch_record_name(str)
118
+ return Definition[t]
119
+ end
120
+ end #class Record
121
+
122
+ # Creates a new object.
123
+ def initialize(str)
124
+ @data = str.split(/[\r\n]+/)
125
+ @hash = {}
126
+
127
+ #Flag to say whether the current line is part of a continuation
128
+ cont = false
129
+
130
+ #Goes through each line and replace that line with a PDB::Record
131
+ @data.collect! do |line|
132
+ #Go to next if the previous line was contiunation able, and
133
+ #add_continuation returns true. Line is added by add_continuation
134
+ next if cont and cont = cont.add_continuation(line)
135
+
136
+ #Make the new record
137
+ f = Record.get_record_class(line).new.initialize_from_string(line)
138
+ #p f
139
+ #Set cont
140
+ cont = f if f.continue?
141
+ #Set the hash to point to this record either by adding to an
142
+ #array, or on it's own
143
+ key = f.record_name
144
+ if a = @hash[key] then
145
+ a << f
146
+ else
147
+ @hash[key] = [ f ]
148
+ end
149
+ f
150
+ end #each
151
+ #At the end we need to add the final model
152
+ @data.compact!
153
+ end
154
+
155
+ # all records in this entry as an array.
156
+ attr_reader :data
157
+
158
+ # all records in this entry as an hash accessed by record names.
159
+ attr_reader :hash
160
+
161
+ # Identifier written in the first line "RESIDUE" record. (e.g. CMP)
162
+ def entry_id
163
+ @data[0].hetID
164
+ end
165
+
166
+ # Synonyms for the comical component. Returns an array of strings.
167
+ def hetsyn
168
+ unless defined? @hetsyn
169
+ if r = @hash["HETSYN"]
170
+ @hetsyn = r[0].hetSynonyms.to_s.split(/\;\s*/)
171
+ else
172
+ return []
173
+ end
174
+ end
175
+ @hetsyn
176
+ end
177
+
178
+ # The name of the chemical component.
179
+ # Returns a string (or nil, if the entry is something wrong).
180
+ def hetnam
181
+ @hash["HETNAM"][0].text
182
+ end
183
+
184
+ # The chemical formula of the chemical component.
185
+ # Returns a string (or nil, if the entry is something wrong).
186
+ def formul
187
+ @hash["FORMUL"][0].text
188
+ end
189
+
190
+ # Returns an hash of bindings of atoms.
191
+ # Note that each white spaces are stripped for atom symbols.
192
+ def conect
193
+ unless defined? @conect
194
+ c = {}
195
+ @hash["CONECT"].each do |e|
196
+ key = e.name.to_s.strip
197
+ unless key.empty?
198
+ val = e.other_atoms.collect { |x| x.strip }
199
+ #warn "Warning: #{key}: atom name conflict?" if c[key]
200
+ c[key] = val
201
+ end
202
+ end
203
+ @conect = c
204
+ end
205
+ @conect
206
+ end
207
+
208
+ # Gets all records whose record type is _name_.
209
+ # Returns an array of <code>Bio::PDB::Record::*</code> objects.
210
+ #
211
+ # if _name_ is nil, returns hash storing all record data.
212
+ #
213
+ # Example:
214
+ # p pdb.record('CONECT')
215
+ # p pdb.record['CONECT']
216
+ #
217
+ def record(name = nil)
218
+ name ? @hash[name] : @hash
219
+ end
220
+
221
+ end #class ChemicalComponent
222
+ end #class PDB
223
+ end #module Bio
224
+