bio 1.5.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +35 -36
  3. data/ChangeLog +911 -2554
  4. data/{gemfiles/Gemfile.travis-ruby2.2 → Gemfile} +0 -3
  5. data/KNOWN_ISSUES.rdoc +10 -13
  6. data/LEGAL +0 -10
  7. data/README.rdoc +40 -96
  8. data/README_DEV.rdoc +5 -5
  9. data/RELEASE_NOTES.rdoc +118 -234
  10. data/Rakefile +13 -43
  11. data/appveyor.yml +29 -0
  12. data/bioruby.gemspec +18 -81
  13. data/bioruby.gemspec.erb +8 -28
  14. data/doc/ChangeLog-1.5.0 +2919 -0
  15. data/doc/RELEASE_NOTES-1.5.0.rdoc +285 -0
  16. data/doc/Tutorial.rd +6 -108
  17. data/doc/Tutorial.rd.html +19 -98
  18. data/gemfiles/Gemfile.travis-jruby1.8 +3 -5
  19. data/gemfiles/Gemfile.travis-jruby1.9 +0 -3
  20. data/gemfiles/Gemfile.travis-rbx +0 -3
  21. data/gemfiles/Gemfile.travis-ruby1.8 +3 -5
  22. data/gemfiles/Gemfile.travis-ruby1.9 +0 -3
  23. data/gemfiles/Gemfile.windows +6 -0
  24. data/gemfiles/prepare-gemspec.rb +4 -0
  25. data/lib/bio.rb +0 -10
  26. data/lib/bio/appl/blast/genomenet.rb +4 -4
  27. data/lib/bio/appl/blast/report.rb +40 -8
  28. data/lib/bio/appl/fasta/format10.rb +2 -1
  29. data/lib/bio/command.rb +10 -0
  30. data/lib/bio/data/codontable.rb +99 -3
  31. data/lib/bio/db/aaindex.rb +74 -5
  32. data/lib/bio/db/gff.rb +3 -1
  33. data/lib/bio/db/kegg/common.rb +14 -0
  34. data/lib/bio/db/kegg/genes.rb +26 -0
  35. data/lib/bio/db/kegg/pathway.rb +5 -11
  36. data/lib/bio/db/soft.rb +2 -2
  37. data/lib/bio/io/flatfile/autodetection.rb +5 -0
  38. data/lib/bio/io/togows.rb +5 -5
  39. data/lib/bio/map.rb +4 -4
  40. data/lib/bio/sequence/format.rb +1 -0
  41. data/lib/bio/util/restriction_enzyme/range/sequence_range/calculated_cuts.rb +1 -1
  42. data/lib/bio/util/sirna.rb +2 -0
  43. data/lib/bio/version.rb +6 -8
  44. data/sample/color_scheme_aa.rb +82 -0
  45. data/sample/color_scheme_na.rb +5 -6
  46. data/sample/fastq2html.cwl +23 -0
  47. data/sample/fastq2html.rb +94 -0
  48. data/sample/fastq2html.testdata.yaml +5 -0
  49. data/sample/na2aa.cwl +23 -0
  50. data/sample/na2aa.rb +11 -25
  51. data/sample/na2aa.testdata.yaml +7 -0
  52. data/sample/rev_comp.cwl +23 -0
  53. data/sample/rev_comp.rb +20 -0
  54. data/sample/rev_comp.testdata.yaml +7 -0
  55. data/sample/test_restriction_enzyme_long.rb +1 -1
  56. data/test/network/bio/db/kegg/test_genes_hsa7422.rb +91 -0
  57. data/test/unit/bio/appl/blast/test_report.rb +4 -4
  58. data/test/unit/bio/data/test_codontable.rb +3 -0
  59. data/test/unit/bio/db/test_gff.rb +5 -0
  60. data/test/unit/bio/test_alignment.rb +2 -2
  61. metadata +20 -77
  62. data/bin/bioruby +0 -47
  63. data/bin/br_biofetch.rb +0 -71
  64. data/bin/br_bioflat.rb +0 -293
  65. data/bin/br_biogetseq.rb +0 -45
  66. data/bin/br_pmfetch.rb +0 -422
  67. data/lib/bio/appl/blast/xmlparser.rb +0 -236
  68. data/lib/bio/db/biosql/biosql_to_biosequence.rb +0 -78
  69. data/lib/bio/db/biosql/sequence.rb +0 -444
  70. data/lib/bio/db/phyloxml/phyloxml.xsd +0 -582
  71. data/lib/bio/db/phyloxml/phyloxml_elements.rb +0 -1197
  72. data/lib/bio/db/phyloxml/phyloxml_parser.rb +0 -1001
  73. data/lib/bio/db/phyloxml/phyloxml_writer.rb +0 -227
  74. data/lib/bio/io/biosql/ar-biosql.rb +0 -257
  75. data/lib/bio/io/biosql/biosql.rb +0 -39
  76. data/lib/bio/io/biosql/config/database.yml +0 -21
  77. data/lib/bio/io/sql.rb +0 -79
  78. data/lib/bio/shell.rb +0 -44
  79. data/lib/bio/shell/core.rb +0 -578
  80. data/lib/bio/shell/demo.rb +0 -146
  81. data/lib/bio/shell/interface.rb +0 -217
  82. data/lib/bio/shell/irb.rb +0 -94
  83. data/lib/bio/shell/object.rb +0 -71
  84. data/lib/bio/shell/plugin/blast.rb +0 -42
  85. data/lib/bio/shell/plugin/codon.rb +0 -218
  86. data/lib/bio/shell/plugin/das.rb +0 -58
  87. data/lib/bio/shell/plugin/emboss.rb +0 -23
  88. data/lib/bio/shell/plugin/entry.rb +0 -137
  89. data/lib/bio/shell/plugin/flatfile.rb +0 -101
  90. data/lib/bio/shell/plugin/midi.rb +0 -430
  91. data/lib/bio/shell/plugin/ncbirest.rb +0 -68
  92. data/lib/bio/shell/plugin/obda.rb +0 -45
  93. data/lib/bio/shell/plugin/psort.rb +0 -56
  94. data/lib/bio/shell/plugin/seq.rb +0 -248
  95. data/lib/bio/shell/plugin/togows.rb +0 -40
  96. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/bioruby_generator.rb +0 -29
  97. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_classes.rhtml +0 -4
  98. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_log.rhtml +0 -27
  99. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_methods.rhtml +0 -11
  100. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_modules.rhtml +0 -4
  101. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_variables.rhtml +0 -7
  102. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-bg.gif +0 -0
  103. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-gem.png +0 -0
  104. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-link.gif +0 -0
  105. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.css +0 -368
  106. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.rhtml +0 -47
  107. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_controller.rb +0 -144
  108. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_helper.rb +0 -47
  109. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/commands.rhtml +0 -8
  110. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/history.rhtml +0 -10
  111. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/index.rhtml +0 -26
  112. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/spinner.gif +0 -0
  113. data/lib/bio/shell/script.rb +0 -25
  114. data/lib/bio/shell/setup.rb +0 -108
  115. data/lib/bio/shell/web.rb +0 -102
  116. data/sample/test_phyloxml_big.rb +0 -205
  117. data/setup.rb +0 -1600
  118. data/test/data/phyloxml/apaf.xml +0 -666
  119. data/test/data/phyloxml/bcl_2.xml +0 -2097
  120. data/test/data/phyloxml/made_up.xml +0 -144
  121. data/test/data/phyloxml/ncbi_taxonomy_mollusca_short.xml +0 -65
  122. data/test/data/phyloxml/phyloxml_examples.xml +0 -415
  123. data/test/unit/bio/db/biosql/tc_biosql.rb +0 -114
  124. data/test/unit/bio/db/biosql/ts_suite_biosql.rb +0 -8
  125. data/test/unit/bio/db/test_phyloxml.rb +0 -821
  126. data/test/unit/bio/db/test_phyloxml_writer.rb +0 -334
  127. data/test/unit/bio/shell/plugin/test_seq.rb +0 -187
  128. data/test/unit/bio/test_shell.rb +0 -20
@@ -0,0 +1,285 @@
1
+ = BioRuby 1.5.0 RELEASE NOTES
2
+
3
+ A lot of changes have been made to the BioRuby 1.5.0 after the version 1.4.3
4
+ is released. This document describes important and/or incompatible changes
5
+ since the BioRuby 1.4.3 release.
6
+
7
+ For known problems, see KNOWN_ISSUES.rdoc.
8
+
9
+ == NEWS
10
+
11
+ === Full support of Ruby 2.0.0, 2.1, and 2.2
12
+
13
+ Ruby 2.0.0, 2.1, and 2.2 are now recommended Ruby versions for running
14
+ BioRuby codes.
15
+
16
+ === Support of Ruby 1.8 will be stopped
17
+
18
+ This release is the final BioRuby version that can be run on Ruby 1.8.
19
+
20
+ === License is updated to the new Ruby's License
21
+
22
+ BioRuby is distributed under the same license as Ruby's. In October 2011,
23
+ Ruby's License was changed from a dual license with GPLv2 to a dual license
24
+ with 2-clause BSDL. Since BioRuby 1.5.0, we have updated to the
25
+ new version of Ruby's License. For details about the license, see COPYING
26
+ or COPYING.ja and BSDL. In addition, please do not forget to see LEGAL for
27
+ exception files that are subjected to different licenses.
28
+
29
+ === Semantic Versioning will be introduced
30
+
31
+ We will adopt the Semantic Versioning since the next release version, which
32
+ will be BioRuby 1.5.1. This means that BioRuby 1.5.0 is NOT subject to the
33
+ Semantic Versioning.
34
+
35
+
36
+ == New features and improvements
37
+
38
+ === New method Bio::FastaFormat#first_name
39
+
40
+ Bio::FastaFormat#first_name method is added to get the first word in the
41
+ definition line. This method was proposed by Ben J. Woodcroft.
42
+
43
+ === Accuracy of Bio::SiRNA
44
+
45
+ Accuracy of siRNA designing algorithms in Bio::SiRNA is improved,
46
+ contributed by meso_cacase.
47
+
48
+ === Speed up of Bio::ClustalW::Report
49
+
50
+ Running speed of Bio::ClustalW::Report is optimized, contributed by
51
+ Andrew Grimm.
52
+
53
+ === Many warning messages are squashed
54
+
55
+ Most warning messages when running ruby with "-w" option, e.g. "assigned
56
+ but unused variable", "instance variable @xxx not initialized", are
57
+ suppressed. Fixes are contributed by Kenichi Kamiya, Andrew Grimm, and
58
+ BioRuby core members.
59
+
60
+ === Refactoring of codes
61
+
62
+ Many existing codes are reviewed and refactored. Patches are contributed
63
+ by Iain Barnett, Kenichi Kamiya, and BioRuby core members.
64
+
65
+
66
+ == Bug fixes
67
+
68
+ === Bugs due to remote server changes
69
+
70
+ ==== Bio::PubMed
71
+
72
+ Bio::PubMed#search, query, and pmfetch are re-implemented by using NCBI
73
+ E-Utilities. They were broken because unofficial API was used.
74
+ Paul Leader reported the bug and gave discussion.
75
+
76
+ ==== Bio::Hinv
77
+
78
+ Bio::Hinv did not work because of the API server URL is changed.
79
+
80
+ ==== Bio::TogoWS::REST
81
+
82
+ * Bio::TogoWS::REST#search with offset and limit did not work due to
83
+ TogoWS server spec change about URI escape.
84
+ * Bio::TogoWS::REST#convert did not work because of the spec change of
85
+ TogoWS REST API.
86
+
87
+ === Bio::Fetch
88
+
89
+ Bio::Fetch with default parameters did not work because BioRuby's default
90
+ BioFetch server had been down. We have decided not to restore the service.
91
+ For smooth migration of codes using BioRuby's BioFetch server, we provide
92
+ "bio-old-biofetch-emulator" gem. See below "Imcompatible changes" for details.
93
+
94
+ The bug was reported and discussed by Jose Irizarry, Robert A. Heiler, and
95
+ others.
96
+
97
+ === BioSQL
98
+
99
+ * Only do gsub on bio_ref.reference.authors if it exists.
100
+ * Missing require when generating genbank output for BioSQL sequence.
101
+
102
+ Contributed by Brynjar Smari Bjarnason.
103
+
104
+ === Bugs found in data format parsers
105
+
106
+ * Bio::PDB#seqres SEQRES serNum digits were extended in PDB v3.2 (2008).
107
+ Thanks to a researcher who sent the patch.
108
+ * Bio::Blast::Default::Report parse error when subject sequence contains
109
+ spaces. Edward Rice reported the bug.
110
+ * Bio::UniProtKB#gene_name raised NoMethodError when gene_names method
111
+ returns nil. It should return nil. Candidate fix sent by Jose Irizarry.
112
+ * Bio::PhyloXML::Parser.open_uri did not return block return value when
113
+ giving a block.
114
+
115
+ === Other bugs
116
+
117
+ * lib/bio/shell/plugin/seq.rb: String#step and #skip (extended by bioruby
118
+ shell) did not yield the last part of the string due to a change from
119
+ Ruby 1.8 to 1.9.
120
+ * Documentation and typo fixes. Contributed by many persons, including
121
+ Iain Barnett and ctSkennerton.
122
+
123
+
124
+ == Renamed features
125
+
126
+ === Bio::SPTR, Bio::UniProt, Bio::SwissProt, and Bio::TrEMBL => Bio::UniProtKB
127
+
128
+ The classes for parsing UniProtKB (former SwissProt and TrEMBL) data,
129
+ Bio::SPTR, Bio::UniProt, Bio::SwissProt, and Bio::TrEMBL, are unified into
130
+ the new class name Bio::UniProtKB, and old names are deprecated.
131
+
132
+ For keeping backward compatibility, old class names Bio::SPTR, Bio::UniProt,
133
+ Bio::SwissProt, and Bio::TrEMBL are still available, but warning message
134
+ will be shown when using the old class names. These old class names will be
135
+ deleted in the future.
136
+
137
+ The file contatining Bio::UniProtKB class definition is also changed to
138
+ lib/bio/db/embl/uniprotkb.rb. For keeping backward compatibility, old
139
+ files sptr.rb, uniprot.rb, tremble.rb are still kept, but they will be
140
+ removed in the future.
141
+
142
+
143
+ == Deprecated features
144
+
145
+ === Bio::RefSeq, Bio::DDBJ
146
+
147
+ Bio::RefSeq and Bio::DDBJ are deprecated because they are only an alias of
148
+ Bio::GenBank. Warning message will be shown when loading the classes and
149
+ initializing new instances. Please use Bio::GenBank instead.
150
+
151
+ lib/bio/db/genbank/ddbj.rb and lib/bio/db/genbank/refseq.rb which contain
152
+ Bio::DDBJ and Bio::RefSeq, respectively, are also deprecated. For keeping
153
+ backward compatibility, old file are still kept, but they will be removed
154
+ in the future.
155
+
156
+
157
+ == Removed features
158
+
159
+ === Bio::SOAPWSDL
160
+
161
+ Bio::SOAPWSDL (lib/bio/io/soapwsdl.rb) is removed because SOAP4R
162
+ (SOAP/WSDL library in Ruby) is no longer bundled with Ruby since Ruby 1.9.
163
+ For Ruby 1.9 or later, some gems of SOAP4R are available, but we think they
164
+ are not well-maintained. Moreover, many SOAP servers have been retired
165
+ (see below). So, we give up maintaining Bio::SOAPWSDL and all SOAP client
166
+ classes in BioRuby.
167
+
168
+ === Bio::EBI::SOAP
169
+
170
+ Bio::EBI::SOAP (lib/bio/io/ebisoap.rb) is removed because Bio::SOAPWSDL
171
+ is removed.
172
+
173
+ === Bio::KEGG::API
174
+
175
+ Bio::KEGG::API is removed because KEGG API SOAP service was discontinued in
176
+ December 31, 2012. See http://www.kegg.jp/kegg/rest/ for the announcement
177
+ of service discontinuation.
178
+
179
+ === Bio::DBGET
180
+
181
+ Bio::DBGET is removed because it only supports old original DBGET protocols
182
+ that was discontinued in 2004. Note that the DBGET is still available via
183
+ the web. See http://www.genome.jp/en/gn_dbget.html for details.
184
+
185
+ === Bio::Ensembl
186
+
187
+ Bio::Ensembl is removed because it does not work after the renewal of Ensembl
188
+ web site in 2008. Instead, bio-ensembl gem which supports recent ensembl API
189
+ is available.
190
+
191
+ === Bio::DDBJ::XML, Bio::DDBJ::REST
192
+
193
+ Bio::DDBJ::XML and Bio::DDBJ::REST are removed because DDBJ Web API (WABI)
194
+ web services were suspended in 2012 and then they were completely renewed
195
+ with incompatible APIs in 2013.
196
+
197
+ === Bio::HGC::HiGet
198
+
199
+ Bio::HGC::HiGet (lib/bio/io/higet.rb) is removed because the HiGet web server
200
+ http://higet.hgc.jp/ have been down since 2011, and we think that the server
201
+ will not be restored again.
202
+
203
+ === Bio::NCBI::SOAP
204
+
205
+ Bio::NCBI::SOAP is removed because it always raises error during the parsing
206
+ of WSDL files provided by NCBI. In addition, NCBI announced that the SOAP
207
+ web service for the E-utilities will be terminated on July 1, 2015. Instead,
208
+ Bio::NCBI::REST, REST client for the NCBI E-utility web service, is available.
209
+
210
+ === Bio::KEGG::Taxonomy
211
+
212
+ Bio::KEGG::Taxonomy is removed because it does not work correctly. It raises
213
+ error, it falls into infinite loop, or it returns apparently broken data.
214
+ Moreover, KEGG closed public FTP site and the file "taxonomy" could only be
215
+ obtained by paid subscribers.
216
+
217
+ === Bio.method_missing
218
+
219
+ Bio.method_missing, that aims to provide shortcuts of Bio::Shell methods
220
+ with shorter name without typing "Shell", is removed because most of the
221
+ methods raises error mainly due to bypassing of initialization procedure.
222
+ In addition, we now think that the use of method_missing should generally
223
+ be avoid unless it is really necessary.
224
+
225
+ === extconf.rb
226
+
227
+ extconf.rb, an alternative way to install BioRuby to the system, is removed
228
+ because of avoiding potential confusions. Nowadays, extconf.rb is usually
229
+ only used for building native extensions, but no native extensions are
230
+ included in this release. Use gem or setup.rb to install BioRuby.
231
+
232
+
233
+ == Incompatible changes
234
+
235
+ Also see the above "Renamed features", "Deprecated features", and
236
+ "Removed features" sections.
237
+
238
+ === Bio::Fetch
239
+
240
+ The BioRuby default BioFetch server http://bioruby.org/cgi-bin/biofetch.rb,
241
+ that was the default server for Bio::Fetch before BioRuby 1.4, is deprecated.
242
+ Due to the service stop, default server URL in Bio::Fetch is removed, and
243
+ we decide not to give any server URL by default for Bio::Fetch.
244
+
245
+ As an alternative, new class Bio::Fetch::EBI which uses the EBI Dbfetch
246
+ server is added. When changing codes form Bio::Fetch to Bio::Fetch::EBI,
247
+ be careful of the differences of database names, default and available
248
+ data formats between the former BioRuby BioFetch server and the EBI Dbfetch
249
+ server.
250
+
251
+ Methods directly affected are:
252
+
253
+ * Bio::Fetch.new (Bio::Fetch#initialize) does not have default server URL,
254
+ and URL of a server must always be explicitly given as the first argument.
255
+ * Bio::Fetch.query is removed.
256
+
257
+ For the purpose running old codes, it is recommended to install
258
+ bio-old-biofetch-emulator gem. The bio-old-biofetch-emulator gem emulates
259
+ old BioRuby's default BioFetch server by using other existing web services.
260
+ See https://rubygems.org/gems/bio-old-biofetch-emulator for details.
261
+ We think many codes can run with no changes by simply installing the gem and
262
+ adding "-r bio-old-biofetch-emulator" into the command-line when executing
263
+ ruby.
264
+
265
+
266
+ == Known issues
267
+
268
+ The following issues are added or updated. See KNOWN_ISSUES.rdoc for other
269
+ already known issues.
270
+
271
+ === Bio::PDB
272
+
273
+ Bio::PDB should be updated to follow PDB format version 3.3.
274
+
275
+ === Bio::Blast::Report
276
+
277
+ NCBI announces that that they are makeing a new version of BLAST XML data
278
+ format. BioRuby should support it.
279
+
280
+ === Bio::Blast::Default::Report
281
+
282
+ Bio::Blast::Default::Report currently supports legacy BLAST only.
283
+ It may be better to support BLAST+ text output format, although NCBI
284
+ do not recommend to do so because the format is unstable.
285
+
@@ -1248,102 +1248,13 @@ annotated phylogenetic trees. PhyloXML's parser in BioRuby is implemented in
1248
1248
  Bio::PhyloXML::Parser, and its writer in Bio::PhyloXML::Writer.
1249
1249
  More information can be found at ((<www.phyloxml.org|URL:http://www.phyloxml.org>)).
1250
1250
 
1251
- == Requirements
1251
+ Bio::PhyloXML have been split out from BioRuby core and have been released
1252
+ as bio-phyloxml gem. To use Bio::PhyloXML, install the bio-phyloxml gem.
1252
1253
 
1253
- In addition to BioRuby, you need the libxml Ruby bindings. To install, execute:
1254
-
1255
- % gem install -r libxml-ruby
1256
-
1257
- For more information see the ((<libxml installer page|URL:http://libxml.rubyforge.org/install.xml>))
1258
-
1259
- == Parsing a file
1260
-
1261
- require 'bio'
1262
-
1263
- # Create new phyloxml parser
1264
- phyloxml = Bio::PhyloXML::Parser.open('example.xml')
1265
-
1266
- # Print the names of all trees in the file
1267
- phyloxml.each do |tree|
1268
- puts tree.name
1269
- end
1270
-
1271
- If there are several trees in the file, you can access the one you wish by specifying its index:
1272
-
1273
- tree = phyloxml[3]
1274
-
1275
- You can use all Bio::Tree methods on the tree, since PhyloXML::Tree inherits from Bio::Tree. For example,
1276
-
1277
- tree.leaves.each do |node|
1278
- puts node.name
1279
- end
1280
-
1281
- PhyloXML files can hold additional information besides phylogenies at the end of the file. This info can be accessed through the 'other' array of the parser object.
1282
-
1283
- phyloxml = Bio::PhyloXML::Parser.open('example.xml')
1284
- while tree = phyloxml.next_tree
1285
- # do stuff with trees
1286
- end
1287
-
1288
- puts phyloxml.other
1289
-
1290
- == Writing a file
1291
-
1292
- # Create new phyloxml writer
1293
- writer = Bio::PhyloXML::Writer.new('tree.xml')
1294
-
1295
- # Write tree to the file tree.xml
1296
- writer.write(tree1)
1297
-
1298
- # Add another tree to the file
1299
- writer.write(tree2)
1300
-
1301
- == Retrieving data
1302
-
1303
- Here is an example of how to retrieve the scientific name of the clades included in each tree.
1304
-
1305
- require 'bio'
1306
-
1307
- phyloxml = Bio::PhyloXML::Parser.open('ncbi_taxonomy_mollusca.xml')
1308
- phyloxml.each do |tree|
1309
- tree.each_node do |node|
1310
- print "Scientific name: ", node.taxonomies[0].scientific_name, "\n"
1311
- end
1312
- end
1313
-
1314
- == Retrieving 'other' data
1315
-
1316
- require 'bio'
1317
-
1318
- phyloxml = Bio::PhyloXML::Parser.open('phyloxml_examples.xml')
1319
- while tree = phyloxml.next_tree
1320
- #do something with the trees
1321
- end
1322
-
1323
- p phyloxml.other
1324
- puts "\n"
1325
- #=> output is an object representation
1326
-
1327
- #Print in a readable way
1328
- puts phyloxml.other[0].to_xml, "\n"
1329
- #=>:
1330
- #
1331
- #<align:alignment xmlns:align="http://example.org/align">
1332
- # <seq name="A">acgtcgcggcccgtggaagtcctctcct</seq>
1333
- # <seq name="B">aggtcgcggcctgtggaagtcctctcct</seq>
1334
- # <seq name="C">taaatcgc--cccgtgg-agtccc-cct</seq>
1335
- #</align:alignment>
1336
-
1337
- #Once we know whats there, lets output just sequences
1338
- phyloxml.other[0].children.each do |node|
1339
- puts node.value
1340
- end
1341
- #=>
1342
- #
1343
- #acgtcgcggcccgtggaagtcctctcct
1344
- #aggtcgcggcctgtggaagtcctctcct
1345
- #taaatcgc--cccgtgg-agtccc-cct
1254
+ % gem install bio-phyloxml
1346
1255
 
1256
+ The tutorial of Bio::PhyloXML is bundled in bio-phyloxml.
1257
+ ((<URL:https://github.com/bioruby/bioruby-phyloxml/blob/master/doc/Tutorial.rd>))
1347
1258
 
1348
1259
  == The BioRuby example programs
1349
1260
 
@@ -1446,8 +1357,7 @@ At the moment there is no easy way of accessing BioPerl or BioPython directly fr
1446
1357
 
1447
1358
  == Installing required external libraries
1448
1359
 
1449
- At this point for using BioRuby no additional libraries are needed, except if
1450
- you are using the Bio::PhyloXML module; then you have to install libxml-ruby.
1360
+ At this point for using BioRuby no additional libraries are needed.
1451
1361
 
1452
1362
  This may change, so keep an eye on the Bioruby website. Also when
1453
1363
  a package is missing BioRuby should show an informative message.
@@ -1457,18 +1367,6 @@ painful, as the gem standard for packages evolved late and some still
1457
1367
  force you to copy things by hand. Therefore read the README's
1458
1368
  carefully that come with each package.
1459
1369
 
1460
- === Installing libxml-ruby
1461
-
1462
- The simplest way is to use the RubyGems packaging system:
1463
-
1464
- gem install -r libxml-ruby
1465
-
1466
- If you get `require': no such file to load - mkmf (LoadError) error then do
1467
-
1468
- sudo apt-get install ruby-dev
1469
-
1470
- If you have other problems with installation, then see ((<URL:http://libxml.rubyforge.org/install.xml>)).
1471
-
1472
1370
  == Trouble shooting
1473
1371
 
1474
1372
  * Error: in `require': no such file to load -- bio (LoadError)
@@ -1011,99 +1011,27 @@ ToDo: add exemaples from George. I remember he did some cool post on BioSQL and
1011
1011
  annotated phylogenetic trees. PhyloXML's parser in BioRuby is implemented in
1012
1012
  Bio::PhyloXML::Parser, and its writer in Bio::PhyloXML::Writer.
1013
1013
  More information can be found at <a href="http://www.phyloxml.org">www.phyloxml.org</a>.</p>
1014
- <h2><a name="label-24" id="label-24">Requirements</a></h2><!-- RDLabel: "Requirements" -->
1015
- <p>In addition to BioRuby, you need the libxml Ruby bindings. To install, execute:</p>
1016
- <pre>% gem install -r libxml-ruby</pre>
1017
- <p>For more information see the <a href="http://libxml.rubyforge.org/install.xml">libxml installer page</a></p>
1018
- <h2><a name="label-25" id="label-25">Parsing a file</a></h2><!-- RDLabel: "Parsing a file" -->
1019
- <pre>require 'bio'
1020
-
1021
- # Create new phyloxml parser
1022
- phyloxml = Bio::PhyloXML::Parser.open('example.xml')
1023
-
1024
- # Print the names of all trees in the file
1025
- phyloxml.each do |tree|
1026
- puts tree.name
1027
- end</pre>
1028
- <p>If there are several trees in the file, you can access the one you wish by specifying its index:</p>
1029
- <pre>tree = phyloxml[3]</pre>
1030
- <p>You can use all Bio::Tree methods on the tree, since PhyloXML::Tree inherits from Bio::Tree. For example, </p>
1031
- <pre>tree.leaves.each do |node|
1032
- puts node.name
1033
- end</pre>
1034
- <p>PhyloXML files can hold additional information besides phylogenies at the end of the file. This info can be accessed through the 'other' array of the parser object.</p>
1035
- <pre>phyloxml = Bio::PhyloXML::Parser.open('example.xml')
1036
- while tree = phyloxml.next_tree
1037
- # do stuff with trees
1038
- end
1039
-
1040
- puts phyloxml.other</pre>
1041
- <h2><a name="label-26" id="label-26">Writing a file</a></h2><!-- RDLabel: "Writing a file" -->
1042
- <pre># Create new phyloxml writer
1043
- writer = Bio::PhyloXML::Writer.new('tree.xml')
1044
-
1045
- # Write tree to the file tree.xml
1046
- writer.write(tree1)
1047
-
1048
- # Add another tree to the file
1049
- writer.write(tree2)</pre>
1050
- <h2><a name="label-27" id="label-27">Retrieving data</a></h2><!-- RDLabel: "Retrieving data" -->
1051
- <p>Here is an example of how to retrieve the scientific name of the clades included in each tree.</p>
1052
- <pre>require 'bio'
1053
-
1054
- phyloxml = Bio::PhyloXML::Parser.open('ncbi_taxonomy_mollusca.xml')
1055
- phyloxml.each do |tree|
1056
- tree.each_node do |node|
1057
- print "Scientific name: ", node.taxonomies[0].scientific_name, "\n"
1058
- end
1059
- end</pre>
1060
- <h2><a name="label-28" id="label-28">Retrieving 'other' data</a></h2><!-- RDLabel: "Retrieving 'other' data" -->
1061
- <pre>require 'bio'
1062
-
1063
- phyloxml = Bio::PhyloXML::Parser.open('phyloxml_examples.xml')
1064
- while tree = phyloxml.next_tree
1065
- #do something with the trees
1066
- end
1067
-
1068
- p phyloxml.other
1069
- puts "\n"
1070
- #=&gt; output is an object representation
1071
-
1072
- #Print in a readable way
1073
- puts phyloxml.other[0].to_xml, "\n"
1074
- #=&gt;:
1075
- #
1076
- #&lt;align:alignment xmlns:align="http://example.org/align"&gt;
1077
- # &lt;seq name="A"&gt;acgtcgcggcccgtggaagtcctctcct&lt;/seq&gt;
1078
- # &lt;seq name="B"&gt;aggtcgcggcctgtggaagtcctctcct&lt;/seq&gt;
1079
- # &lt;seq name="C"&gt;taaatcgc--cccgtgg-agtccc-cct&lt;/seq&gt;
1080
- #&lt;/align:alignment&gt;
1081
-
1082
- #Once we know whats there, lets output just sequences
1083
- phyloxml.other[0].children.each do |node|
1084
- puts node.value
1085
- end
1086
- #=&gt;
1087
- #
1088
- #acgtcgcggcccgtggaagtcctctcct
1089
- #aggtcgcggcctgtggaagtcctctcct
1090
- #taaatcgc--cccgtgg-agtccc-cct</pre>
1091
- <h2><a name="label-29" id="label-29">The BioRuby example programs</a></h2><!-- RDLabel: "The BioRuby example programs" -->
1014
+ <p>Bio::PhyloXML have been split out from BioRuby core and have been released
1015
+ as bio-phyloxml gem. To use Bio::PhyloXML, install the bio-phyloxml gem.</p>
1016
+ <pre>% gem install bio-phyloxml</pre>
1017
+ <p>The tutorial of Bio::PhyloXML is bundled in bio-phyloxml.
1018
+ <a href="https://github.com/bioruby/bioruby-phyloxml/blob/master/doc/Tutorial.rd">&lt;URL:https://github.com/bioruby/bioruby-phyloxml/blob/master/doc/Tutorial.rd&gt;</a></p>
1019
+ <h2><a name="label-24" id="label-24">The BioRuby example programs</a></h2><!-- RDLabel: "The BioRuby example programs" -->
1092
1020
  <p>Some sample programs are stored in ./samples/ directory. For example, the n2aa.rb program (transforms a nucleic acid sequence into an amino acid sequence) can be run using:</p>
1093
1021
  <pre>./sample/na2aa.rb test/data/fasta/example1.txt </pre>
1094
- <h2><a name="label-30" id="label-30">Unit testing and doctests</a></h2><!-- RDLabel: "Unit testing and doctests" -->
1022
+ <h2><a name="label-25" id="label-25">Unit testing and doctests</a></h2><!-- RDLabel: "Unit testing and doctests" -->
1095
1023
  <p>BioRuby comes with an extensive testing framework with over 1300 tests and 2700
1096
1024
  assertions. To run the unit tests:</p>
1097
1025
  <pre>cd test
1098
1026
  ruby runner.rb</pre>
1099
1027
  <p>We have also started with doctest for Ruby. We are porting the examples
1100
1028
  in this tutorial to doctest - more info upcoming.</p>
1101
- <h2><a name="label-31" id="label-31">Further reading</a></h2><!-- RDLabel: "Further reading" -->
1029
+ <h2><a name="label-26" id="label-26">Further reading</a></h2><!-- RDLabel: "Further reading" -->
1102
1030
  <p>See the BioRuby in anger Wiki. A lot of BioRuby's documentation exists in the
1103
1031
  source code and unit tests. To really dive in you will need the latest source
1104
1032
  code tree. The embedded rdoc documentation for the BioRuby source code can be viewed online at
1105
1033
  <a href="http://bioruby.org/rdoc/">&lt;URL:http://bioruby.org/rdoc/&gt;</a>.</p>
1106
- <h2><a name="label-32" id="label-32">BioRuby Shell</a></h2><!-- RDLabel: "BioRuby Shell" -->
1034
+ <h2><a name="label-27" id="label-27">BioRuby Shell</a></h2><!-- RDLabel: "BioRuby Shell" -->
1107
1035
  <p>The BioRuby shell implementation is located in ./lib/bio/shell. It is very interesting
1108
1036
  as it uses IRB (the Ruby intepreter) which is a powerful environment described in
1109
1037
  <a href="http://ruby-doc.org/docs/ProgrammingRuby/html/irb.html">Programming Ruby's IRB chapter</a>. IRB commands can be typed directly into the shell, e.g.</p>
@@ -1112,26 +1040,26 @@ as it uses IRB (the Ruby intepreter) which is a powerful environment described i
1112
1040
  <p>Additionally, you also may want to install the optional Ruby readline support -
1113
1041
  with Debian libreadline-ruby. To edit a previous line you may have to press
1114
1042
  line down (down arrow) first.</p>
1115
- <h1><a name="label-33" id="label-33">Helpful tools</a></h1><!-- RDLabel: "Helpful tools" -->
1043
+ <h1><a name="label-28" id="label-28">Helpful tools</a></h1><!-- RDLabel: "Helpful tools" -->
1116
1044
  <p>Apart from rdoc you may also want to use rtags - which allows jumping around
1117
1045
  source code by clicking on class and method names. </p>
1118
1046
  <pre>cd bioruby/lib
1119
1047
  rtags -R --vi</pre>
1120
1048
  <p>For a tutorial see <a href="http://rtags.rubyforge.org/">here</a></p>
1121
- <h1><a name="label-34" id="label-34">APPENDIX</a></h1><!-- RDLabel: "APPENDIX" -->
1122
- <h2><a name="label-35" id="label-35">Biogem: Additional BioRuby plugins</a></h2><!-- RDLabel: "Biogem: Additional BioRuby plugins" -->
1049
+ <h1><a name="label-29" id="label-29">APPENDIX</a></h1><!-- RDLabel: "APPENDIX" -->
1050
+ <h2><a name="label-30" id="label-30">Biogem: Additional BioRuby plugins</a></h2><!-- RDLabel: "Biogem: Additional BioRuby plugins" -->
1123
1051
  <p>Biogem is one of the exciting developments for Ruby in bioinformatics! Biogems
1124
1052
  add new functionality next to the BioRuby core project (BioRuby is a biogem itself). A biogem is simply installed with </p>
1125
1053
  <pre>gem install bio # The core BioRuby gem
1126
1054
  gem install bio-core # BioRuby + stable pure Ruby biogems
1127
1055
  gem install bio-core-ext # bio-core + stable Ruby extensions</pre>
1128
1056
  <p>Information on these biogems, and the many others available, see <a href="http://biogems.info/">Biogems.info</a> or <a href="http://gems.bioruby.org/">gems.bioruby.org</a>.</p>
1129
- <h2><a name="label-36" id="label-36">Ruby Ensembl API</a></h2><!-- RDLabel: "Ruby Ensembl API" -->
1057
+ <h2><a name="label-31" id="label-31">Ruby Ensembl API</a></h2><!-- RDLabel: "Ruby Ensembl API" -->
1130
1058
  <p>The Ruby Ensembl API is a Ruby API to the Ensembl database. It is NOT currently
1131
1059
  included in the BioRuby archives. To install it, see
1132
1060
  <a href="http://wiki.github.com/jandot/ruby-ensembl-api">the Ruby-Ensembl Github</a>
1133
1061
  for more information.</p>
1134
- <h3><a name="label-37" id="label-37">Gene Ontology (GO) through the Ruby Ensembl API</a></h3><!-- RDLabel: "Gene Ontology (GO) through the Ruby Ensembl API" -->
1062
+ <h3><a name="label-32" id="label-32">Gene Ontology (GO) through the Ruby Ensembl API</a></h3><!-- RDLabel: "Gene Ontology (GO) through the Ruby Ensembl API" -->
1135
1063
  <p>Gene Ontologies can be fetched through the Ruby Ensembl API package:</p>
1136
1064
  <pre>require 'ensembl'
1137
1065
  Ensembl::Core::DBConnection.connect('drosophila_melanogaster')
@@ -1148,32 +1076,25 @@ infile.each do |line|
1148
1076
  end</pre>
1149
1077
  <p>Prints each mosq. accession/uniq identifier and the GO terms from the Drosphila
1150
1078
  homologues.</p>
1151
- <h2><a name="label-38" id="label-38">Using BioPerl or BioPython from Ruby</a></h2><!-- RDLabel: "Using BioPerl or BioPython from Ruby" -->
1079
+ <h2><a name="label-33" id="label-33">Using BioPerl or BioPython from Ruby</a></h2><!-- RDLabel: "Using BioPerl or BioPython from Ruby" -->
1152
1080
  <p>A possible route is to opt for JRuby and Jython on the JAVA virtual machine (JVM).</p>
1153
1081
  <p>At the moment there is no easy way of accessing BioPerl or BioPython directly from Ruby. A possibility is to create a Perl or Python server that gets accessed through XML/RPC or SOAP.</p>
1154
- <h2><a name="label-39" id="label-39">Installing required external libraries</a></h2><!-- RDLabel: "Installing required external libraries" -->
1155
- <p>At this point for using BioRuby no additional libraries are needed, except if
1156
- you are using the Bio::PhyloXML module; then you have to install libxml-ruby.</p>
1082
+ <h2><a name="label-34" id="label-34">Installing required external libraries</a></h2><!-- RDLabel: "Installing required external libraries" -->
1083
+ <p>At this point for using BioRuby no additional libraries are needed.</p>
1157
1084
  <p>This may change, so keep an eye on the Bioruby website. Also when
1158
1085
  a package is missing BioRuby should show an informative message.</p>
1159
1086
  <p>At this point installing third party Ruby packages can be a bit
1160
1087
  painful, as the gem standard for packages evolved late and some still
1161
1088
  force you to copy things by hand. Therefore read the README's
1162
1089
  carefully that come with each package.</p>
1163
- <h3><a name="label-40" id="label-40">Installing libxml-ruby</a></h3><!-- RDLabel: "Installing libxml-ruby" -->
1164
- <p>The simplest way is to use the RubyGems packaging system:</p>
1165
- <pre>gem install -r libxml-ruby</pre>
1166
- <p>If you get `require': no such file to load - mkmf (LoadError) error then do</p>
1167
- <pre>sudo apt-get install ruby-dev</pre>
1168
- <p>If you have other problems with installation, then see <a href="http://libxml.rubyforge.org/install.xml">&lt;URL:http://libxml.rubyforge.org/install.xml&gt;</a>.</p>
1169
- <h2><a name="label-41" id="label-41">Trouble shooting</a></h2><!-- RDLabel: "Trouble shooting" -->
1090
+ <h2><a name="label-35" id="label-35">Trouble shooting</a></h2><!-- RDLabel: "Trouble shooting" -->
1170
1091
  <ul>
1171
1092
  <li>Error: in `require': no such file to load -- bio (LoadError)</li>
1172
1093
  </ul>
1173
1094
  <p>Ruby is failing to find the BioRuby libraries - add it to the RUBYLIB path, or pass
1174
1095
  it to the interpeter. For example:</p>
1175
1096
  <pre>ruby -I$BIORUBYPATH/lib yourprogram.rb</pre>
1176
- <h2><a name="label-42" id="label-42">Modifying this page</a></h2><!-- RDLabel: "Modifying this page" -->
1097
+ <h2><a name="label-36" id="label-36">Modifying this page</a></h2><!-- RDLabel: "Modifying this page" -->
1177
1098
  <p>IMPORTANT NOTICE: This page is maintained in the BioRuby source code
1178
1099
  repository. Please edit the file there otherwise changes may get
1179
1100
  lost. See <!-- Reference, RDLabel "BioRuby Developer Information" doesn't exist --><em class="label-not-found">BioRuby Developer Information</em><!-- Reference end --> for repository and mailing list