= BioRuby 1.4.2 RELEASE NOTES

A lot of changes have been made to the BioRuby 1.4.2 after the version 1.4.1
is released. This document describes important and/or incompatible changes
since the BioRuby 1.4.1 release.

For known problems, see KNOWN_ISSUES.rdoc.

== New features

=== Speed-up of Bio::RestrictionEnzyme::Analysis.cut

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 classes Bio::DDBJ::REST, REST interface for DDBJ web service

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.

=== Bio::Blast with remote DDBJ server uses REST instead of SOAP

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.

=== Tutorial is updated

The Tutorial.rd is updated by Pjotr Prins and Michael O'Keefe.

=== Many unit tests are added

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.

=== Other new features

* 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.

== Bug fixes

=== Bio::Blast

* 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.

=== Bio::SPTR (Bio::UniProt)

* 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.

=== Other bug fixes

* 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.

== Incompatible changes

=== Bio::Sequence#output(:fastq)

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.

=== Bio::SPTR CC line topic "WEB RESOURCE"

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.

=== Bio::Blast with the remote GenomeNet server

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.

=== Bio::Blast with the remote DDBJ server

Bio::Blast with remote DDBJ server uses REST instead of SOAP.

=== Bio::RestrictionEnzyme internal data structure change

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.

== Known issues

The following issues are added or updated. See KNOWN_ISSUES.rdoc for other
already known issues.

* 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.

== Other important news

* Required ruby version is now Ruby 1.8.6 or later (except 1.9.0).

