RELEASE_NOTES.rdoc in bio-1.4.2 vs RELEASE_NOTES.rdoc in bio-1.4.3

- old
+ new

@@ -1,132 +1,204 @@ -= BioRuby 1.4.2 RELEASE NOTES += BioRuby 1.4.3 RELEASE NOTES -A lot of changes have been made to the BioRuby 1.4.2 after the version 1.4.1 +A lot of changes have been made to the BioRuby 1.4.3 after the version 1.4.2 is released. This document describes important and/or incompatible changes -since the BioRuby 1.4.1 release. +since the BioRuby 1.4.2 release. For known problems, see KNOWN_ISSUES.rdoc. == New features -=== Speed-up of Bio::RestrictionEnzyme::Analysis.cut +=== Bio::KEGG::KGML -The running speed of Bio::RestrictionEnzyme::Analysis.cut is significantly -increased. The new code is 50 to 80 fold faster than the previous code -when cutting 1Mbp sequence running on Ruby 1.9.2p180. The code is written -by Tomoaki NISHIYAMA and Naohisa Goto. +* New class Bio::KEGG::KGML::Graphics for storing a graphics element. + In the instance of the class, "coords" attribute is now available. +* New class Bio::KEGG::KGML::Substrate for storing a substrate element. +* New class Bio::KEGG::KGML::Product for storing a product element. +* New method Bio::KEGG::KGML::Reaction#id. +* Improve RDoc documentation. +* Unit tests are added. +* There are incompatible changes. See Incompatible changes below. -=== New classes Bio::DDBJ::REST, REST interface for DDBJ web service +== Improvements -For DDBJ Web API for Biology (WABI) web service, in additon to SOAP, REST -(REpresentational State Transfer) interface is added as Bio::DDBJ::REST. -Currently, only selected APIs are implemented. +=== Portability running on JRuby and Rubinius -=== Bio::Blast with remote DDBJ server uses REST instead of SOAP +Many failures and errors running on JRuby and Rubinius are resolved. +Some of them are due to BioRuby bugs, and some of them are due to JRuby or +Rubinius bugs. Artem Tarasov reported bugs in BioRuby and submitted bug +reports to Rubinius. Clayton Wheeler and Naohisa Goto fixed bugs in BioRuby +and submitted bug reports to JRuby. -Bio::Blast with remote DDBJ server uses REST instead of SOAP, because -Soap4r (SOAP library for Ruby) does not work well with Ruby 1.9. -We can now use remote DDBJ BLAST server with Ruby 1.9. +=== Testing on Travis CI -=== Tutorial is updated +BioRuby is now using Travis CI (http://travis-ci.org/), a hosted continuous +integration service for the open source community. -The Tutorial.rd is updated by Pjotr Prins and Michael O'Keefe. +== Bug fixes -=== Many unit tests are added +=== Strange behavior related with "circular require" is fixed -Added many unit tests for Bio::GenBank, Bio::GenPept, Bio::NBRF, Bio::PDB -and so on. Most of them are developed by Kazuhiro Hayashi during the -Google Summer of Code 2010. +Fixed: In previous versions, some bioruby files may be required more than +two times, and this sometimes causes strange behavior, depending on the +order of files in the disk. In particular, unit tests running on JRuby +sometimes crashes with strange errors. In BioRuby 1.4.3, almost all require +and autoload lines are revised and are changed to avoid circular require. +This also fixes crash on JRuby due to JRuby's autoload bug. -=== Other new features +=== Other bug fixes -* New method Bio::Fastq#to_s for convenience. Note that the use of the method - may cause loss of performance. To get each input sequence entry as-is, - consider using Bio::FlatFile#entry_raw. To output fastq format data, - consider using Bio::Sequence#output(:fastq). -* New methods Bio::NCBI::REST::EFetch.nucleotide and protein, - to get data from "nucleotide" and "protein" database respectively. - Because NCBI changed not to accept "gb" format for the database - "sequence", the two new methods are added for convenience. -* In BioRuby Shell, efetch method uses the above new methods. -* In GenomeNet remote BLAST execution, database "mine-aa" and "mine-nt" - with KEGG organism codes are now supported. -* Support for Ruby 1.9.2 / 1.9.3 is improved. +* Fixed: Genomenet remote BLAST does not work. +* Fixed: Bio::KEGG::KGML ignores "coords" field. +* Fixed: Bio::NucleicAcid.to_re("s") typo +* To suppress rare failure of chi-square equiprobability tests for + Bio::Sequence::Common#randomize, test code changed to retry up to 10 times + if the chi-square test fails. The assertion fails if the chi-square test + fails 10 consecutive times, and this strongly suggests bugs in codes or in + the random number generator. +* Fixed: Bio::EMBL#os raises RuntimeError. The fix includes incompatible + change. See below "Incompatible changes". +* Fixed: bin/bioruby: Failed to save object with error message "can't convert + Symbol into String" on Ruby 1.9. -== Bug fixes +== Incompatible changes and removed features -=== Bio::Blast +=== Bio::FlatFile use binmode (binary mode) when opening a file -* Failure of remote BLAST execution is fixed, due to the changes in GenomeNet - and DDBJ. -* When executing remote BLAST with "genomenet" server, options "-b" and "-v" - are now correctly used to limit the number of hits to be reported. +In Bio::FlatFile.open and Bio::FlatFile.auto, binmode (binary mode) is used +by default when opening a file, unless text mode is explicitly specified +with open mode string or with options. Due to the change, files using CR+LF +line separator might not be read correctly. -=== Bio::SPTR (Bio::UniProt) +=== Broader FASTQ file recognition -* Due to the UniProtKB format changes, ID, DE, and WEB RESOURCE of CC lines - were not correctly parsed. See also below about incompatible change of - the fix. +Because PacBio RS sequencer may produce kilobases long reads and read buffer +size (default 31 lines) for file format detection may not be sufficient to +find the second id line starting with "+", the regular expression for FASTQ +is truncated only to check the first id line starting with "@". -=== Other bug fixes +=== Bio::KEGG::KGML -* Bio::Reference#pubmed_url is updated to follow recent NCBI changes. -* Fixed: Bio::Newick#reparse failure. -* Fixed: In Bio::MEDLINE#reference, doi field should be filled. -* Fixed: Bio::Reference#endnote fails when url is not set. -* Fixed: Bio::FastaFormat#query passes nil to the given factory object. -* Fixed: In BioRuby Shell, efetch() with no additional arguments fails - because of the NCBI site changes. -* Fixed: In BioRuby Shell, getent() fails when EMBOSS seqret is not found. -* Fixed: In BioRuby Shell, demo() fails due to the above two issues. +* Bio::KEGG::KGML::Reaction#substrates and Bio::KEGG::KGML::Reaction#products + are changed to return an array containing Bio::KEGG::KGML::Substrate and + Bio::KEGG::KGML::Product objects, respectively. The changes enables us to + get ID of substrates and products that were thrown away in the previous + versions. +* Most attribute methods that were different from the KGML attribute names + are renamed to the names compatible with the KGML attribute names. Old + method names are changed to aliases of them and marked as deprecated. + The old names will be removed in the future. + * Bio::KEGG::KGML::Entry#id (old name: entry_id) + * Bio::KEGG::KGML::Entry#type (old name: category) + * Bio::KEGG::KGML::Entry#entry1 (old name: node1) + * Bio::KEGG::KGML::Entry#entry2 (old name: node2) + * Bio::KEGG::KGML::Entry#type (old name: rel) + * Bio::KEGG::KGML::Reaction#name (old name: entry_id) + * Bio::KEGG::KGML::Reaction#type (old name: direction) +* Following attribute methods are deprecated because two or more graphics + elements may exist in an entry element. They will be removed in the future. + Instead, please use instance methods of Bio::KEGG::KGML::Graphics, which + can be obtained from Bio::KEGG::KGML::Entry#graphics attribute. + * Bio::KEGG::KGML::Entry#label + * Bio::KEGG::KGML::Entry#shape + * Bio::KEGG::KGML::Entry#x + * Bio::KEGG::KGML::Entry#y + * Bio::KEGG::KGML::Entry#width + * Bio::KEGG::KGML::Entry#height + * Bio::KEGG::KGML::Entry#fgcolor + * Bio::KEGG::KGML::Entry#bgcolor -== Incompatible changes +=== Bio::EMBL#os -=== Bio::Sequence#output(:fastq) +Bio::EMBL#os, returns parser result of the EMBL OS line, no longer splits +the content with comma, and it no longer raises error even if the OS line +is not in the "Genus species (name)" format. The changes may affect the +parsing of old EMBL files which contain two or more species names in an +OS line. -In Fastq output formatter, default width value is changed from 70 to nil. -The nil means "without wrapping". The new default behavior without wrapping -is generally good with many recent applications that read fastq. +Note that Bio::EMBL#os returns an Array containing several Hash objects, +and the argument is always ignored. The return value type and the meaning +of the argument might be changed in the future. -=== Bio::SPTR CC line topic "WEB RESOURCE" +=== Tests -In the return value of Bio::SPTR#cc('WEB RESOURCE'), "NAME" and "NOTE" -are now renamed to "Name" and "Note", respectively. The change is due to -the UniProt format change since UniProtKB release 12.2 of 11-Sep-2007. -(See http://www.uniprot.org/docs/sp_news.htm#rel12.2 for details.) -Note that "Name" and "Note" are used even when parsing older format. -The change would also affect Marshal.dump (and YAML.dump) data. +* Tests using network connections are moved under test/network/. + To invoke these tests, run "rake test-network". +* BIORUBY_TEST_LIB environment variable + * The directory name specified with BIORUBY_TEST_LIB is always added on the + top of $LOAD_PATH even if it is already included in the middle of + $LOAD_PATH. + * When BIORUBY_TEST_LIB is empty, it no longer add an empty string to + $LOAD_PATH. + * BIORUBY_TEST_LIB is ignored when BIORUBY_TEST_GEM is set. +* BIORUBY_TEST_GEM environment variable + * New environment variable BIORUBY_TEST_GEM for testing installed + bio-X.X.X gem. Version number can be specified. + See the following examples with/without the version number: + * % env BIORUBY_TEST_GEM=1.4.2.5000 ruby test/runner.rb + * % env BIORUBY_TEST_GEM="" ruby test/runner.rb -=== Bio::Blast with the remote GenomeNet server +=== Other removed features -When executing remote BLAST with "genomenet" server, options "-b" and "-v" -are now correctly used to limit the number of hits to be reported. -In 1.4.1 and before, "-B" and "-V" were mistakenly used for the purpose. +* rdoc.zsh is removed because it have not been used for a long time. -=== Bio::Blast with the remote DDBJ server +== Known issues -Bio::Blast with remote DDBJ server uses REST instead of SOAP. +The following issues are added or updated. See KNOWN_ISSUES.rdoc for other +already known issues. -=== Bio::RestrictionEnzyme internal data structure change +=== JRuby -Due to the speedup, internal data structure of the following classes -are changed: Bio::RestrictionEnzyme::Range::SequenceRange, -Bio::RestrictionEnzyme::Range::SequenceRange::CalculatedCuts, -Bio::RestrictionEnzyme::Range::SequenceRange::Fragment. -This indicates that Marshal.dump (and YAML.dump) data generated by older -versions cannot be loaded by the new version, and vice versa, although -public APIs of the classes keep compatibility. +On JRuby, errors may be raised due to the following unfixed bugs in JRuby. -== Known issues +* {JRUBY-6195}[http://jira.codehaus.org/browse/JRUBY-6195] Process.spawn + (and related methods) ignore option hash +* {JRUBY-6818}[http://jira.codehaus.org/browse/JRUBY-6818] Kernel.exec, + Process.spawn (and IO.popen etc.) raise error when program is an array + containing two strings -The following issues are added or updated. See KNOWN_ISSUES.rdoc for other -already known issues. +With older version of JRuby, you may be bothered by the following bugs that +have already been fixed in the head of JRuby. -* Bio::SPTR should be updated to follow UniProtKB format changes. -* Problems observed only with Ruby 1.8.5 or earlier will not be fixed. -* Descriptions about very old RubyGems 0.8.11 or earlier and about CVS - repository are moved from README.rdoc. +* {JRUBY-6658}[http://jira.codehaus.org/browse/JRUBY-6658] Problem when + setting up an autoload entry, defining a class via require, then redefining + the autoload entry +* {JRUBY-6666}[http://jira.codehaus.org/browse/JRUBY-6666] Open3.popen3 + failing due to missing handling for [path, argv[0]] array +* {JRUBY-6819}[http://jira.codehaus.org/browse/JRUBY-6819] + java.lang.ArrayIndexOutOfBoundsException in String#each_line -== Other important news +Due to JRUBY-5678 (resolved issue) and the difference of behavior between +CRuby and JRuby written in the comments of the issue tracking page, +when running BioRuby on JRuby with sudo or root rights, TMPDIR environment +variable should be set to a directory that is not world-writable. Currently, +the workaround is needed for running BioRuby tests with JRuby on Travis-CI. -* Required ruby version is now Ruby 1.8.6 or later (except 1.9.0). +* {JRUBY-5678}[http://jira.codehaus.org/browse/JRUBY-5678] tmpdir cannot + be delete when jruby has sudo/root rights + +=== Rubinius + +According to Travis-CI, unit tests have failed on 1.9 mode of Rubinius. + +With older version of Rubinius, you may be bothered by the following bugs that +have already been fixed in the head of Rubinius. + +* {Rubinius Issue #1693}[https://github.com/rubinius/rubinius/issues/1693] + String#split gives incorrect output when splitting by /^/ +* {Rubinius Issue #1724}[https://github.com/rubinius/rubinius/issues/1724] + Creating Struct class with length attribute + +=== DDBJ Web API related classes (Bio::DDBJ::*, Bio::BLAST::Remote::DDBJ) + +DDBJ Web API is stopping after their system replacement in March 2012. +(See the announcement though it is written only in Japanese: +http://www.ddbj.nig.ac.jp/replace/rp120601-j.html) +Due to the stop of the DDBJ Web API, Bio::DDBJ::* and Bio::BLAST::Remote::DDBJ +which are using the web API can not be used. + +=== SOAP4R with Ruby 1.9 + +soap4r-ruby1.9 may raise "ununitialized constant XML::SaxParser" error with +some combinations of XML parser libraries. It seems this is a bug of +soap4r-ruby1.9.