bio 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. data/ChangeLog +2105 -3728
  2. data/KNOWN_ISSUES.rdoc +35 -3
  3. data/README.rdoc +8 -2
  4. data/RELEASE_NOTES.rdoc +166 -0
  5. data/bin/bioruby +4 -1
  6. data/bioruby.gemspec +146 -1
  7. data/bioruby.gemspec.erb +3 -1
  8. data/doc/ChangeLog-before-1.3.1 +3961 -0
  9. data/doc/Tutorial.rd +154 -22
  10. data/doc/Tutorial.rd.html +125 -68
  11. data/lib/bio.rb +21 -6
  12. data/lib/bio/appl/bl2seq/report.rb +11 -202
  13. data/lib/bio/appl/blast/format0.rb +0 -193
  14. data/lib/bio/appl/blast/report.rb +2 -147
  15. data/lib/bio/appl/blast/wublast.rb +0 -208
  16. data/lib/bio/appl/fasta.rb +4 -19
  17. data/lib/bio/appl/fasta/format10.rb +0 -14
  18. data/lib/bio/appl/genscan/report.rb +0 -176
  19. data/lib/bio/appl/hmmer.rb +1 -15
  20. data/lib/bio/appl/hmmer/report.rb +0 -100
  21. data/lib/bio/appl/meme/mast.rb +156 -0
  22. data/lib/bio/appl/meme/mast/report.rb +91 -0
  23. data/lib/bio/appl/meme/motif.rb +48 -0
  24. data/lib/bio/appl/psort.rb +0 -111
  25. data/lib/bio/appl/psort/report.rb +1 -45
  26. data/lib/bio/appl/pts1.rb +2 -4
  27. data/lib/bio/appl/sosui/report.rb +5 -54
  28. data/lib/bio/appl/targetp/report.rb +1 -104
  29. data/lib/bio/appl/tmhmm/report.rb +0 -36
  30. data/lib/bio/command.rb +94 -10
  31. data/lib/bio/data/aa.rb +1 -77
  32. data/lib/bio/data/codontable.rb +1 -95
  33. data/lib/bio/data/na.rb +1 -26
  34. data/lib/bio/db/aaindex.rb +1 -38
  35. data/lib/bio/db/fasta.rb +1 -134
  36. data/lib/bio/db/fasta/format_qual.rb +204 -0
  37. data/lib/bio/db/fasta/qual.rb +102 -0
  38. data/lib/bio/db/fastq.rb +645 -0
  39. data/lib/bio/db/fastq/fastq_to_biosequence.rb +40 -0
  40. data/lib/bio/db/fastq/format_fastq.rb +175 -0
  41. data/lib/bio/db/genbank/genbank.rb +1 -86
  42. data/lib/bio/db/gff.rb +0 -17
  43. data/lib/bio/db/go.rb +4 -72
  44. data/lib/bio/db/kegg/common.rb +112 -0
  45. data/lib/bio/db/kegg/compound.rb +29 -20
  46. data/lib/bio/db/kegg/drug.rb +74 -34
  47. data/lib/bio/db/kegg/enzyme.rb +26 -5
  48. data/lib/bio/db/kegg/genes.rb +128 -15
  49. data/lib/bio/db/kegg/genome.rb +3 -41
  50. data/lib/bio/db/kegg/glycan.rb +19 -24
  51. data/lib/bio/db/kegg/orthology.rb +16 -56
  52. data/lib/bio/db/kegg/reaction.rb +81 -28
  53. data/lib/bio/db/kegg/taxonomy.rb +1 -52
  54. data/lib/bio/db/litdb.rb +1 -16
  55. data/lib/bio/db/phyloxml/phyloxml.xsd +582 -0
  56. data/lib/bio/db/phyloxml/phyloxml_elements.rb +1174 -0
  57. data/lib/bio/db/phyloxml/phyloxml_parser.rb +954 -0
  58. data/lib/bio/db/phyloxml/phyloxml_writer.rb +228 -0
  59. data/lib/bio/db/prosite.rb +2 -95
  60. data/lib/bio/db/rebase.rb +5 -6
  61. data/lib/bio/db/sanger_chromatogram/abif.rb +120 -0
  62. data/lib/bio/db/sanger_chromatogram/chromatogram.rb +133 -0
  63. data/lib/bio/db/sanger_chromatogram/chromatogram_to_biosequence.rb +32 -0
  64. data/lib/bio/db/sanger_chromatogram/scf.rb +210 -0
  65. data/lib/bio/io/das.rb +0 -44
  66. data/lib/bio/io/ddbjxml.rb +1 -181
  67. data/lib/bio/io/flatfile.rb +1 -7
  68. data/lib/bio/io/flatfile/autodetection.rb +6 -0
  69. data/lib/bio/io/keggapi.rb +0 -442
  70. data/lib/bio/io/ncbirest.rb +130 -132
  71. data/lib/bio/io/ncbisoap.rb +2 -1
  72. data/lib/bio/io/pubmed.rb +0 -88
  73. data/lib/bio/location.rb +0 -73
  74. data/lib/bio/pathway.rb +0 -171
  75. data/lib/bio/sequence.rb +18 -1
  76. data/lib/bio/sequence/adapter.rb +3 -0
  77. data/lib/bio/sequence/format.rb +16 -0
  78. data/lib/bio/sequence/quality_score.rb +205 -0
  79. data/lib/bio/tree.rb +70 -5
  80. data/lib/bio/util/restriction_enzyme/single_strand.rb +3 -2
  81. data/lib/bio/util/sirna.rb +1 -23
  82. data/lib/bio/version.rb +1 -1
  83. data/sample/demo_aaindex.rb +67 -0
  84. data/sample/demo_aminoacid.rb +101 -0
  85. data/sample/demo_bl2seq_report.rb +220 -0
  86. data/sample/demo_blast_report.rb +285 -0
  87. data/sample/demo_codontable.rb +119 -0
  88. data/sample/demo_das.rb +105 -0
  89. data/sample/demo_ddbjxml.rb +212 -0
  90. data/sample/demo_fasta_remote.rb +51 -0
  91. data/sample/demo_fastaformat.rb +105 -0
  92. data/sample/demo_genbank.rb +132 -0
  93. data/sample/demo_genscan_report.rb +202 -0
  94. data/sample/demo_gff1.rb +49 -0
  95. data/sample/demo_go.rb +98 -0
  96. data/sample/demo_hmmer_report.rb +149 -0
  97. data/sample/demo_kegg_compound.rb +57 -0
  98. data/sample/demo_kegg_drug.rb +65 -0
  99. data/sample/demo_kegg_genome.rb +74 -0
  100. data/sample/demo_kegg_glycan.rb +72 -0
  101. data/sample/demo_kegg_orthology.rb +62 -0
  102. data/sample/demo_kegg_reaction.rb +66 -0
  103. data/sample/demo_kegg_taxonomy.rb +92 -0
  104. data/sample/demo_keggapi.rb +502 -0
  105. data/sample/demo_litdb.rb +42 -0
  106. data/sample/demo_locations.rb +99 -0
  107. data/sample/demo_ncbi_rest.rb +130 -0
  108. data/sample/demo_nucleicacid.rb +49 -0
  109. data/sample/demo_pathway.rb +196 -0
  110. data/sample/demo_prosite.rb +120 -0
  111. data/sample/demo_psort.rb +138 -0
  112. data/sample/demo_psort_report.rb +70 -0
  113. data/sample/demo_pubmed.rb +118 -0
  114. data/sample/demo_sirna.rb +63 -0
  115. data/sample/demo_sosui_report.rb +89 -0
  116. data/sample/demo_targetp_report.rb +135 -0
  117. data/sample/demo_tmhmm_report.rb +68 -0
  118. data/sample/pmfetch.rb +13 -4
  119. data/sample/pmsearch.rb +15 -4
  120. data/sample/test_phyloxml_big.rb +205 -0
  121. data/test/bioruby_test_helper.rb +61 -0
  122. data/test/data/KEGG/1.1.1.1.enzyme +935 -0
  123. data/test/data/KEGG/C00025.compound +102 -0
  124. data/test/data/KEGG/D00063.drug +104 -0
  125. data/test/data/KEGG/G00024.glycan +47 -0
  126. data/test/data/KEGG/G01366.glycan +18 -0
  127. data/test/data/KEGG/K02338.orthology +902 -0
  128. data/test/data/KEGG/R00006.reaction +14 -0
  129. data/test/data/fastq/README.txt +109 -0
  130. data/test/data/fastq/error_diff_ids.fastq +20 -0
  131. data/test/data/fastq/error_double_qual.fastq +22 -0
  132. data/test/data/fastq/error_double_seq.fastq +22 -0
  133. data/test/data/fastq/error_long_qual.fastq +20 -0
  134. data/test/data/fastq/error_no_qual.fastq +20 -0
  135. data/test/data/fastq/error_qual_del.fastq +20 -0
  136. data/test/data/fastq/error_qual_escape.fastq +20 -0
  137. data/test/data/fastq/error_qual_null.fastq +0 -0
  138. data/test/data/fastq/error_qual_space.fastq +21 -0
  139. data/test/data/fastq/error_qual_tab.fastq +21 -0
  140. data/test/data/fastq/error_qual_unit_sep.fastq +20 -0
  141. data/test/data/fastq/error_qual_vtab.fastq +20 -0
  142. data/test/data/fastq/error_short_qual.fastq +20 -0
  143. data/test/data/fastq/error_spaces.fastq +20 -0
  144. data/test/data/fastq/error_tabs.fastq +21 -0
  145. data/test/data/fastq/error_trunc_at_plus.fastq +19 -0
  146. data/test/data/fastq/error_trunc_at_qual.fastq +19 -0
  147. data/test/data/fastq/error_trunc_at_seq.fastq +18 -0
  148. data/test/data/fastq/error_trunc_in_plus.fastq +19 -0
  149. data/test/data/fastq/error_trunc_in_qual.fastq +20 -0
  150. data/test/data/fastq/error_trunc_in_seq.fastq +18 -0
  151. data/test/data/fastq/error_trunc_in_title.fastq +17 -0
  152. data/test/data/fastq/illumina_full_range_as_illumina.fastq +8 -0
  153. data/test/data/fastq/illumina_full_range_as_sanger.fastq +8 -0
  154. data/test/data/fastq/illumina_full_range_as_solexa.fastq +8 -0
  155. data/test/data/fastq/illumina_full_range_original_illumina.fastq +8 -0
  156. data/test/data/fastq/longreads_as_illumina.fastq +40 -0
  157. data/test/data/fastq/longreads_as_sanger.fastq +40 -0
  158. data/test/data/fastq/longreads_as_solexa.fastq +40 -0
  159. data/test/data/fastq/longreads_original_sanger.fastq +120 -0
  160. data/test/data/fastq/misc_dna_as_illumina.fastq +16 -0
  161. data/test/data/fastq/misc_dna_as_sanger.fastq +16 -0
  162. data/test/data/fastq/misc_dna_as_solexa.fastq +16 -0
  163. data/test/data/fastq/misc_dna_original_sanger.fastq +16 -0
  164. data/test/data/fastq/misc_rna_as_illumina.fastq +16 -0
  165. data/test/data/fastq/misc_rna_as_sanger.fastq +16 -0
  166. data/test/data/fastq/misc_rna_as_solexa.fastq +16 -0
  167. data/test/data/fastq/misc_rna_original_sanger.fastq +16 -0
  168. data/test/data/fastq/sanger_full_range_as_illumina.fastq +8 -0
  169. data/test/data/fastq/sanger_full_range_as_sanger.fastq +8 -0
  170. data/test/data/fastq/sanger_full_range_as_solexa.fastq +8 -0
  171. data/test/data/fastq/sanger_full_range_original_sanger.fastq +8 -0
  172. data/test/data/fastq/solexa_full_range_as_illumina.fastq +8 -0
  173. data/test/data/fastq/solexa_full_range_as_sanger.fastq +8 -0
  174. data/test/data/fastq/solexa_full_range_as_solexa.fastq +8 -0
  175. data/test/data/fastq/solexa_full_range_original_solexa.fastq +8 -0
  176. data/test/data/fastq/wrapping_as_illumina.fastq +12 -0
  177. data/test/data/fastq/wrapping_as_sanger.fastq +12 -0
  178. data/test/data/fastq/wrapping_as_solexa.fastq +12 -0
  179. data/test/data/fastq/wrapping_original_sanger.fastq +24 -0
  180. data/test/data/meme/db +0 -0
  181. data/test/data/meme/mast +0 -0
  182. data/test/data/meme/mast.out +13 -0
  183. data/test/data/meme/meme.out +3 -0
  184. data/test/data/phyloxml/apaf.xml +666 -0
  185. data/test/data/phyloxml/bcl_2.xml +2097 -0
  186. data/test/data/phyloxml/made_up.xml +144 -0
  187. data/test/data/phyloxml/ncbi_taxonomy_mollusca_short.xml +65 -0
  188. data/test/data/phyloxml/phyloxml_examples.xml +415 -0
  189. data/test/data/sanger_chromatogram/test_chromatogram_abif.ab1 +0 -0
  190. data/test/data/sanger_chromatogram/test_chromatogram_scf_v2.scf +0 -0
  191. data/test/data/sanger_chromatogram/test_chromatogram_scf_v3.scf +0 -0
  192. data/test/functional/bio/appl/test_pts1.rb +7 -5
  193. data/test/functional/bio/io/test_ensembl.rb +4 -3
  194. data/test/functional/bio/io/test_pubmed.rb +9 -3
  195. data/test/functional/bio/io/test_soapwsdl.rb +5 -4
  196. data/test/functional/bio/io/test_togows.rb +5 -4
  197. data/test/functional/bio/sequence/test_output_embl.rb +6 -4
  198. data/test/functional/bio/test_command.rb +54 -5
  199. data/test/runner.rb +5 -3
  200. data/test/unit/bio/appl/bl2seq/test_report.rb +5 -4
  201. data/test/unit/bio/appl/blast/test_ncbioptions.rb +4 -2
  202. data/test/unit/bio/appl/blast/test_report.rb +5 -4
  203. data/test/unit/bio/appl/blast/test_rpsblast.rb +5 -4
  204. data/test/unit/bio/appl/gcg/test_msf.rb +5 -5
  205. data/test/unit/bio/appl/genscan/test_report.rb +8 -9
  206. data/test/unit/bio/appl/hmmer/test_report.rb +5 -4
  207. data/test/unit/bio/appl/iprscan/test_report.rb +6 -5
  208. data/test/unit/bio/appl/mafft/test_report.rb +6 -5
  209. data/test/unit/bio/appl/meme/mast/test_report.rb +46 -0
  210. data/test/unit/bio/appl/meme/test_mast.rb +103 -0
  211. data/test/unit/bio/appl/meme/test_motif.rb +38 -0
  212. data/test/unit/bio/appl/paml/codeml/test_rates.rb +5 -4
  213. data/test/unit/bio/appl/paml/codeml/test_report.rb +5 -4
  214. data/test/unit/bio/appl/paml/test_codeml.rb +5 -4
  215. data/test/unit/bio/appl/sim4/test_report.rb +5 -4
  216. data/test/unit/bio/appl/sosui/test_report.rb +6 -5
  217. data/test/unit/bio/appl/targetp/test_report.rb +5 -3
  218. data/test/unit/bio/appl/test_blast.rb +5 -4
  219. data/test/unit/bio/appl/test_fasta.rb +4 -2
  220. data/test/unit/bio/appl/test_pts1.rb +4 -2
  221. data/test/unit/bio/appl/tmhmm/test_report.rb +6 -5
  222. data/test/unit/bio/data/test_aa.rb +5 -3
  223. data/test/unit/bio/data/test_codontable.rb +5 -4
  224. data/test/unit/bio/data/test_na.rb +5 -3
  225. data/test/unit/bio/db/biosql/tc_biosql.rb +5 -1
  226. data/test/unit/bio/db/embl/test_common.rb +4 -2
  227. data/test/unit/bio/db/embl/test_embl.rb +6 -6
  228. data/test/unit/bio/db/embl/test_embl_rel89.rb +6 -6
  229. data/test/unit/bio/db/embl/test_embl_to_bioseq.rb +7 -8
  230. data/test/unit/bio/db/embl/test_sptr.rb +6 -8
  231. data/test/unit/bio/db/embl/test_uniprot.rb +6 -5
  232. data/test/unit/bio/db/fasta/test_format_qual.rb +346 -0
  233. data/test/unit/bio/db/kegg/test_compound.rb +146 -0
  234. data/test/unit/bio/db/kegg/test_drug.rb +194 -0
  235. data/test/unit/bio/db/kegg/test_enzyme.rb +241 -0
  236. data/test/unit/bio/db/kegg/test_genes.rb +32 -4
  237. data/test/unit/bio/db/kegg/test_glycan.rb +260 -0
  238. data/test/unit/bio/db/kegg/test_orthology.rb +50 -0
  239. data/test/unit/bio/db/kegg/test_reaction.rb +96 -0
  240. data/test/unit/bio/db/pdb/test_pdb.rb +4 -2
  241. data/test/unit/bio/db/sanger_chromatogram/test_abif.rb +76 -0
  242. data/test/unit/bio/db/sanger_chromatogram/test_scf.rb +98 -0
  243. data/test/unit/bio/db/test_aaindex.rb +6 -6
  244. data/test/unit/bio/db/test_fasta.rb +5 -46
  245. data/test/unit/bio/db/test_fastq.rb +829 -0
  246. data/test/unit/bio/db/test_gff.rb +4 -2
  247. data/test/unit/bio/db/test_lasergene.rb +7 -5
  248. data/test/unit/bio/db/test_medline.rb +4 -2
  249. data/test/unit/bio/db/test_newick.rb +6 -6
  250. data/test/unit/bio/db/test_nexus.rb +4 -2
  251. data/test/unit/bio/db/test_phyloxml.rb +769 -0
  252. data/test/unit/bio/db/test_phyloxml_writer.rb +328 -0
  253. data/test/unit/bio/db/test_prosite.rb +6 -5
  254. data/test/unit/bio/db/test_qual.rb +63 -0
  255. data/test/unit/bio/db/test_rebase.rb +5 -3
  256. data/test/unit/bio/db/test_soft.rb +7 -6
  257. data/test/unit/bio/io/flatfile/test_autodetection.rb +6 -7
  258. data/test/unit/bio/io/flatfile/test_buffer.rb +6 -5
  259. data/test/unit/bio/io/flatfile/test_splitter.rb +4 -4
  260. data/test/unit/bio/io/test_ddbjxml.rb +4 -3
  261. data/test/unit/bio/io/test_ensembl.rb +5 -3
  262. data/test/unit/bio/io/test_fastacmd.rb +4 -3
  263. data/test/unit/bio/io/test_flatfile.rb +6 -5
  264. data/test/unit/bio/io/test_soapwsdl.rb +4 -3
  265. data/test/unit/bio/io/test_togows.rb +4 -2
  266. data/test/unit/bio/sequence/test_aa.rb +5 -3
  267. data/test/unit/bio/sequence/test_common.rb +4 -2
  268. data/test/unit/bio/sequence/test_compat.rb +4 -2
  269. data/test/unit/bio/sequence/test_dblink.rb +5 -3
  270. data/test/unit/bio/sequence/test_na.rb +4 -2
  271. data/test/unit/bio/sequence/test_quality_score.rb +330 -0
  272. data/test/unit/bio/shell/plugin/test_seq.rb +5 -3
  273. data/test/unit/bio/test_alignment.rb +5 -3
  274. data/test/unit/bio/test_command.rb +4 -3
  275. data/test/unit/bio/test_db.rb +5 -3
  276. data/test/unit/bio/test_feature.rb +4 -2
  277. data/test/unit/bio/test_location.rb +4 -2
  278. data/test/unit/bio/test_map.rb +5 -3
  279. data/test/unit/bio/test_pathway.rb +4 -2
  280. data/test/unit/bio/test_reference.rb +4 -2
  281. data/test/unit/bio/test_sequence.rb +5 -3
  282. data/test/unit/bio/test_shell.rb +5 -3
  283. data/test/unit/bio/test_tree.rb +6 -6
  284. data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +4 -2
  285. data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +4 -2
  286. data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +4 -2
  287. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +4 -2
  288. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +4 -2
  289. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +4 -2
  290. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +4 -2
  291. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +4 -2
  292. data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +4 -2
  293. data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +4 -2
  294. data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +4 -2
  295. data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +4 -2
  296. data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +17 -13
  297. data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +17 -13
  298. data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +4 -2
  299. data/test/unit/bio/util/test_color_scheme.rb +5 -3
  300. data/test/unit/bio/util/test_contingency_table.rb +5 -3
  301. data/test/unit/bio/util/test_restriction_enzyme.rb +4 -2
  302. data/test/unit/bio/util/test_sirna.rb +6 -4
  303. metadata +147 -2
@@ -0,0 +1,42 @@
1
+ #
2
+ # = sample/demo_litdb.rb - demonstration of Bio::LITDB
3
+ #
4
+ # Copyright:: Copyright (C) 2001 Toshiaki Katayama <k@bioruby.org>
5
+ # License:: The Ruby License
6
+ #
7
+ #
8
+ # == Description
9
+ #
10
+ # Demonstration of Bio::LITDB, LITDB literature database parser class.
11
+ #
12
+ # == Requirements
13
+ #
14
+ # Internet connection and/or OBDA (Open Bio Database Access) configuration.
15
+ #
16
+ # == Usage
17
+ #
18
+ # Simply run this script.
19
+ #
20
+ # $ ruby demo_litdb.rb
21
+ #
22
+ # == Development information
23
+ #
24
+ # The code was moved from lib/bio/db/litdb.rb.
25
+ #
26
+
27
+ require 'bio'
28
+
29
+ #if __FILE__ == $0
30
+
31
+ entry = Bio::Fetch.query('litdb', '0308004')
32
+ puts entry
33
+ p Bio::LITDB.new(entry).reference
34
+
35
+ entry = Bio::Fetch.query('litdb', '0309094')
36
+ puts entry
37
+ p Bio::LITDB.new(entry).reference
38
+
39
+ entry = Bio::Fetch.query('litdb', '0309093')
40
+ puts entry
41
+ p Bio::LITDB.new(entry).reference
42
+ #end
@@ -0,0 +1,99 @@
1
+ #
2
+ # = sample/demo_locations.rb - demonstration of Bio::Locations
3
+ #
4
+ # Copyright:: Copyright (C) 2001, 2005 Toshiaki Katayama <k@bioruby.org>
5
+ # 2006 Jan Aerts <jan.aerts@bbsrc.ac.uk>
6
+ # 2008 Naohisa Goto <ng@bioruby.org>
7
+ # License:: The Ruby License
8
+ #
9
+ # == Description
10
+ #
11
+ # Demonstration of Bio::Locations, a parser class for the location string
12
+ # used in the INSDC Feature Table.
13
+ #
14
+ # == Usage
15
+ #
16
+ # Simply run this script.
17
+ #
18
+ # $ ruby demo_locations.rb
19
+ #
20
+ # == Development information
21
+ #
22
+ # The code was moved from lib/bio/location.rb.
23
+ #
24
+
25
+ require 'bio'
26
+
27
+ #if __FILE__ == $0
28
+ puts "Test new & span methods"
29
+ [
30
+ '450',
31
+ '500..600',
32
+ 'join(500..550, 600..625)',
33
+ 'complement(join(500..550, 600..625))',
34
+ 'join(complement(500..550), 600..625)',
35
+ '754^755',
36
+ 'complement(53^54)',
37
+ 'replace(4792^4793,"a")',
38
+ 'replace(1905^1906,"acaaagacaccgccctacgcc")',
39
+ '157..(800.806)',
40
+ '(67.68)..(699.703)',
41
+ '(45934.45974)..46135',
42
+ '<180..(731.761)',
43
+ '(88.89)..>1122',
44
+ 'complement((1700.1708)..(1715.1721))',
45
+ 'complement(<22..(255.275))',
46
+ 'complement((64.74)..1525)',
47
+ 'join((8298.8300)..10206,1..855)',
48
+ 'replace((651.655)..(651.655),"")',
49
+ 'one-of(898,900)..983',
50
+ 'one-of(5971..6308,5971..6309)',
51
+ '8050..one-of(10731,10758,10905,11242)',
52
+ 'one-of(623,627,632)..one-of(628,633,637)',
53
+ 'one-of(845,953,963,1078,1104)..1354',
54
+ 'join(2035..2050,complement(1775..1818),13..345,414..992,1232..1253,1024..1157)',
55
+ 'join(complement(1..61),complement(AP000007.1:252907..253505))',
56
+ 'complement(join(71606..71829,75327..75446,76039..76203))',
57
+ 'order(3..26,complement(964..987))',
58
+ 'order(L44135.1:(454.445)..>538,<1..181)',
59
+ '<200001..<318389',
60
+ ].each do |pos|
61
+ p pos
62
+ # p Bio::Locations.new(pos)
63
+ # p Bio::Locations.new(pos).span
64
+ # p Bio::Locations.new(pos).range
65
+ Bio::Locations.new(pos).each do |location|
66
+ puts "class=" + location.class.to_s
67
+ puts "start=" + location.from.to_s + "\tend=" + location.to.to_s + "\tstrand=" + location.strand.to_s
68
+ end
69
+
70
+ end
71
+
72
+ puts "Test rel2abs/abs2rel method"
73
+ [
74
+ '6..15',
75
+ 'join(6..10,16..30)',
76
+ 'complement(join(6..10,16..30))',
77
+ 'join(complement(6..10),complement(16..30))',
78
+ 'join(6..10,complement(16..30))',
79
+ ].each do |pos|
80
+ loc = Bio::Locations.new(pos)
81
+ p pos
82
+ # p loc
83
+ (1..21).each do |x|
84
+ print "absolute(#{x}) #=> ", y = loc.absolute(x), "\n"
85
+ print "relative(#{y}) #=> ", y ? loc.relative(y) : y, "\n"
86
+ print "absolute(#{x}, :aa) #=> ", y = loc.absolute(x, :aa), "\n"
87
+ print "relative(#{y}, :aa) #=> ", y ? loc.relative(y, :aa) : y, "\n"
88
+ end
89
+ end
90
+
91
+ pos = 'join(complement(6..10),complement(16..30))'
92
+ loc = Bio::Locations.new(pos)
93
+ print "pos : "; p pos
94
+ print "`- loc[1] : "; p loc[1]
95
+ print " `- range : "; p loc[1].range
96
+
97
+ puts Bio::Location.new('5').<=>(Bio::Location.new('3'))
98
+ #end
99
+
@@ -0,0 +1,130 @@
1
+ #
2
+ # = sample/demo_ncbi_rest.rb - demonstration of Bio::NCBI::REST, NCBI E-Utilities client
3
+ #
4
+ # Copyright:: Copyright (C) 2008 Toshiaki Katayama <k@bioruby.org>
5
+ # License:: The Ruby License
6
+ #
7
+ #
8
+ # == Description
9
+ #
10
+ # Demonstration of Bio::NCBI::REST, NCBI E-Utilities client.
11
+ #
12
+ # == Requirements
13
+ #
14
+ # Internet connection is needed.
15
+ #
16
+ # == Usage
17
+ #
18
+ # Simply run this script.
19
+ #
20
+ # $ ruby demo_ncbi_rest.rb
21
+ #
22
+ # == Development information
23
+ #
24
+ # The code was moved from lib/bio/io/ncbirest.rb.
25
+ #
26
+
27
+ require 'bio'
28
+
29
+ Bio::NCBI.default_email = 'staff@bioruby.org'
30
+
31
+ #if __FILE__ == $0
32
+
33
+ gbopts = {"db"=>"nuccore", "rettype"=>"gb"}
34
+ pmopts = {"db"=>"pubmed", "rettype"=>"medline"}
35
+ count = {"rettype" => "count"}
36
+ xml = {"retmode"=>"xml"}
37
+ max = {"retmax"=>5}
38
+
39
+ puts "=== class methods ==="
40
+
41
+ puts "--- Search NCBI by E-Utils ---"
42
+
43
+ puts Time.now
44
+ puts "# count of 'tardigrada' in nuccore"
45
+ puts Bio::NCBI::REST.esearch("tardigrada", gbopts.merge(count))
46
+
47
+ puts Time.now
48
+ puts "# max 5 'tardigrada' entries in nuccore"
49
+ puts Bio::NCBI::REST.esearch("tardigrada", gbopts.merge(max))
50
+
51
+ puts Time.now
52
+ puts "# count of 'yeast kinase' in nuccore"
53
+ puts Bio::NCBI::REST.esearch("yeast kinase", gbopts.merge(count))
54
+
55
+ puts Time.now
56
+ puts "# max 5 'yeast kinase' entries in nuccore (XML)"
57
+ puts Bio::NCBI::REST.esearch("yeast kinase", gbopts.merge(xml).merge(max))
58
+
59
+ puts Time.now
60
+ puts "# count of 'genome&analysis|bioinformatics' in pubmed"
61
+ puts Bio::NCBI::REST.esearch("(genome AND analysis) OR bioinformatics", pmopts.merge(count))
62
+
63
+ puts Time.now
64
+ puts "# max 5 'genome&analysis|bioinformatics' entries in pubmed (XML)"
65
+ puts Bio::NCBI::REST.esearch("(genome AND analysis) OR bioinformatics", pmopts.merge(xml).merge(max))
66
+
67
+ puts Time.now
68
+ Bio::NCBI::REST.esearch("(genome AND analysis) OR bioinformatics", pmopts.merge(max)).each do |x|
69
+ puts "# each of 5 'genome&analysis|bioinformatics' entries in pubmed"
70
+ puts x
71
+ end
72
+
73
+ puts "--- Retrieve NCBI entry by E-Utils ---"
74
+
75
+ puts Time.now
76
+ puts "# '185041' entry in nuccore"
77
+ puts Bio::NCBI::REST.efetch("185041", gbopts)
78
+
79
+ puts Time.now
80
+ puts "# 'J00231' entry in nuccore (XML)"
81
+ puts Bio::NCBI::REST.efetch("J00231", gbopts.merge(xml))
82
+
83
+ puts Time.now
84
+ puts "# 16381885 entry in pubmed"
85
+ puts Bio::NCBI::REST.efetch(16381885, pmopts)
86
+
87
+ puts Time.now
88
+ puts "# '16381885' entry in pubmed"
89
+ puts Bio::NCBI::REST.efetch("16381885", pmopts)
90
+
91
+ puts Time.now
92
+ puts "# [10592173,14693808] entries in pubmed"
93
+ puts Bio::NCBI::REST.efetch([10592173, 14693808], pmopts)
94
+
95
+ puts Time.now
96
+ puts "# [10592173,14693808] entries in pubmed (XML)"
97
+ puts Bio::NCBI::REST.efetch([10592173, 14693808], pmopts.merge(xml))
98
+
99
+
100
+ puts "=== instance methods ==="
101
+
102
+ ncbi = Bio::NCBI::REST.new
103
+
104
+ puts "--- Search NCBI by E-Utils ---"
105
+
106
+ puts Time.now
107
+ puts "# count of 'genome&analysis|bioinformatics' in pubmed"
108
+ puts ncbi.esearch("(genome AND analysis) OR bioinformatics", pmopts.merge(count))
109
+
110
+ puts Time.now
111
+ puts "# max 5 'genome&analysis|bioinformatics' entries in pubmed"
112
+ puts ncbi.esearch("(genome AND analysis) OR bioinformatics", pmopts.merge(max))
113
+
114
+ puts Time.now
115
+ ncbi.esearch("(genome AND analysis) OR bioinformatics", pmopts).each do |x|
116
+ puts "# each 'genome&analysis|bioinformatics' entries in pubmed"
117
+ puts x
118
+ end
119
+
120
+ puts "--- Retrieve NCBI entry by E-Utils ---"
121
+
122
+ puts Time.now
123
+ puts "# 16381885 entry in pubmed"
124
+ puts ncbi.efetch(16381885, pmopts)
125
+
126
+ puts Time.now
127
+ puts "# [10592173,14693808] entries in pubmed"
128
+ puts ncbi.efetch([10592173, 14693808], pmopts)
129
+
130
+ #end
@@ -0,0 +1,49 @@
1
+ #
2
+ # = sample/demo_nucleicacid.rb - demonstration of Bio::NucleicAcid
3
+ #
4
+ # Copyright:: Copyright (C) 2001, 2005
5
+ # Toshiaki Katayama <k@bioruby.org>
6
+ # License:: The Ruby License
7
+ #
8
+ #
9
+ # == Description
10
+ #
11
+ # Demonstration of Bio::NucleicAcid, data related to nucleic acids.
12
+ #
13
+ # == Usage
14
+ #
15
+ # Simply run this script.
16
+ #
17
+ # $ ruby demo_nucleicacid.rb
18
+ #
19
+ # == Development information
20
+ #
21
+ # The code was moved from lib/bio/data/na.rb.
22
+ #
23
+
24
+ require 'bio'
25
+
26
+ #if __FILE__ == $0
27
+
28
+ puts "### na = Bio::NucleicAcid.new"
29
+ na = Bio::NucleicAcid.new
30
+
31
+ puts "# na.to_re('yrwskmbdhvnatgc')"
32
+ p na.to_re('yrwskmbdhvnatgc')
33
+
34
+ puts "# Bio::NucleicAcid.to_re('yrwskmbdhvnatgc')"
35
+ p Bio::NucleicAcid.to_re('yrwskmbdhvnatgc')
36
+
37
+ puts "# na.weight('A')"
38
+ p na.weight('A')
39
+
40
+ puts "# Bio::NucleicAcid.weight('A')"
41
+ p Bio::NucleicAcid.weight('A')
42
+
43
+ puts "# na.weight('atgc')"
44
+ p na.weight('atgc')
45
+
46
+ puts "# Bio::NucleicAcid.weight('atgc')"
47
+ p Bio::NucleicAcid.weight('atgc')
48
+
49
+ #end
@@ -0,0 +1,196 @@
1
+ #
2
+ # = sample/demo_pathway.rb - demonstration of Bio::Pathway
3
+ #
4
+ # Copyright: Copyright (C) 2001
5
+ # Toshiaki Katayama <k@bioruby.org>,
6
+ # Shuichi Kawashima <shuichi@hgc.jp>
7
+ # License:: The Ruby License
8
+ #
9
+ #
10
+ # == Description
11
+ #
12
+ # Demonstration of Bio::Pathway, an implementation of the graph data structure
13
+ # and graph algorithms.
14
+ #
15
+ # == Usage
16
+ #
17
+ # Simply run this script.
18
+ #
19
+ # $ ruby demo_pathway.rb
20
+ #
21
+ # == Development information
22
+ #
23
+ # The code was moved from lib/bio/pathway.rb.
24
+ #
25
+
26
+ require 'bio'
27
+
28
+ #if __FILE__ == $0
29
+
30
+ puts "--- Test === method true/false"
31
+ r1 = Bio::Relation.new('a', 'b', 1)
32
+ r2 = Bio::Relation.new('b', 'a', 1)
33
+ r3 = Bio::Relation.new('b', 'a', 2)
34
+ r4 = Bio::Relation.new('a', 'b', 1)
35
+ p r1 === r2
36
+ p r1 === r3
37
+ p r1 === r4
38
+ p [ r1, r2, r3, r4 ].uniq
39
+ p r1.eql?(r2)
40
+ p r3.eql?(r2)
41
+
42
+ # Sample Graph :
43
+ # +----------------+
44
+ # | |
45
+ # v |
46
+ # +---------(q)-->(t)------->(y)<----(r)
47
+ # | | | ^ |
48
+ # v | v | |
49
+ # +--(s)<--+ | (x)<---+ (u)<-----+
50
+ # | | | | |
51
+ # v | | v |
52
+ # (v)----->(w)<---+ (z)----+
53
+
54
+ data = [
55
+ [ 'q', 's', 1, ],
56
+ [ 'q', 't', 1, ],
57
+ [ 'q', 'w', 1, ],
58
+ [ 'r', 'u', 1, ],
59
+ [ 'r', 'y', 1, ],
60
+ [ 's', 'v', 1, ],
61
+ [ 't', 'x', 1, ],
62
+ [ 't', 'y', 1, ],
63
+ [ 'u', 'y', 1, ],
64
+ [ 'v', 'w', 1, ],
65
+ [ 'w', 's', 1, ],
66
+ [ 'x', 'z', 1, ],
67
+ [ 'y', 'q', 1, ],
68
+ [ 'z', 'x', 1, ],
69
+ ]
70
+
71
+ ary = []
72
+
73
+ puts "--- List of relations"
74
+ data.each do |x|
75
+ ary << Bio::Relation.new(*x)
76
+ end
77
+ p ary
78
+
79
+ puts "--- Generate graph from list of relations"
80
+ graph = Bio::Pathway.new(ary)
81
+ p graph
82
+
83
+ puts "--- Test to_matrix method"
84
+ p graph.to_matrix
85
+
86
+ puts "--- Test dump_matrix method"
87
+ puts graph.dump_matrix(0)
88
+
89
+ puts "--- Test dump_list method"
90
+ puts graph.dump_list
91
+
92
+ puts "--- Labeling some nodes"
93
+ hash = { 'q' => "L1", 's' => "L2", 'v' => "L3", 'w' => "L4" }
94
+ graph.label = hash
95
+ p graph
96
+
97
+ puts "--- Extract subgraph by label"
98
+ p graph.subgraph
99
+
100
+ puts "--- Extract subgraph by list"
101
+ p graph.subgraph(['q', 't', 'x', 'y', 'z'])
102
+
103
+ puts "--- Test cliquishness of the node 'q'"
104
+ p graph.cliquishness('q')
105
+
106
+ puts "--- Test cliquishness of the node 'q' (undirected)"
107
+ u_graph = Bio::Pathway.new(ary, 'undirected')
108
+ p u_graph.cliquishness('q')
109
+
110
+ puts "--- Test small_world histgram"
111
+ p graph.small_world
112
+
113
+ puts "--- Test breadth_first_search method"
114
+ distance, predecessor = graph.breadth_first_search('q')
115
+ p distance
116
+ p predecessor
117
+
118
+ puts "--- Test bfs_shortest_path method"
119
+ step, path = graph.bfs_shortest_path('y', 'w')
120
+ p step
121
+ p path
122
+
123
+ puts "--- Test depth_first_search method"
124
+ timestamp, tree, back, cross, forward = graph.depth_first_search
125
+ p timestamp
126
+ print "tree edges : "; p tree
127
+ print "back edges : "; p back
128
+ print "cross edges : "; p cross
129
+ print "forward edges : "; p forward
130
+
131
+ puts "--- Test dfs_topological_sort method"
132
+ #
133
+ # Professor Bumstead topologically sorts his clothing when getting dressed.
134
+ #
135
+ # "undershorts" "socks"
136
+ # | | |
137
+ # v | v "watch"
138
+ # "pants" --+-------> "shoes"
139
+ # |
140
+ # v
141
+ # "belt" <----- "shirt" ----> "tie" ----> "jacket"
142
+ # | ^
143
+ # `---------------------------------------'
144
+ #
145
+ dag = Bio::Pathway.new([
146
+ Bio::Relation.new("undeershorts", "pants", true),
147
+ Bio::Relation.new("undeershorts", "shoes", true),
148
+ Bio::Relation.new("socks", "shoes", true),
149
+ Bio::Relation.new("watch", "watch", true),
150
+ Bio::Relation.new("pants", "belt", true),
151
+ Bio::Relation.new("pants", "shoes", true),
152
+ Bio::Relation.new("shirt", "belt", true),
153
+ Bio::Relation.new("shirt", "tie", true),
154
+ Bio::Relation.new("tie", "jacket", true),
155
+ Bio::Relation.new("belt", "jacket", true),
156
+ ])
157
+ p dag.dfs_topological_sort
158
+
159
+ puts "--- Test dijkstra method"
160
+ distance, predecessor = graph.dijkstra('q')
161
+ p distance
162
+ p predecessor
163
+
164
+ puts "--- Test dijkstra method by weighted graph"
165
+ #
166
+ # 'a' --> 'b'
167
+ # | 1 | 3
168
+ # |5 v
169
+ # `----> 'c'
170
+ #
171
+ r1 = Bio::Relation.new('a', 'b', 1)
172
+ r2 = Bio::Relation.new('a', 'c', 5)
173
+ r3 = Bio::Relation.new('b', 'c', 3)
174
+ w_graph = Bio::Pathway.new([r1, r2, r3])
175
+ p w_graph
176
+ p w_graph.dijkstra('a')
177
+
178
+ puts "--- Test bellman_ford method by negative weighted graph"
179
+ #
180
+ # ,-- 'a' --> 'b'
181
+ # | | 1 | 3
182
+ # | |5 v
183
+ # | `----> 'c'
184
+ # | ^
185
+ # |2 | -5
186
+ # `--> 'd' ----'
187
+ #
188
+ r4 = Bio::Relation.new('a', 'd', 2)
189
+ r5 = Bio::Relation.new('d', 'c', -5)
190
+ w_graph.append(r4)
191
+ w_graph.append(r5)
192
+ p w_graph.bellman_ford('a')
193
+ p graph.bellman_ford('q')
194
+
195
+ #end
196
+