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.2 release.

For known problems, see KNOWN_ISSUES.rdoc.

New features



Portability running on JRuby and Rubinius

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.

Testing on Travis CI

BioRuby is now using Travis CI (, a hosted continuous integration service for the open source community.

Bug fixes

Strange behavior related with “circular require” is fixed

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 bug fixes

Incompatible changes and removed features

Bio::FlatFile use binmode (binary mode) when opening a file

In and, 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.

Broader FASTQ file recognition

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 “@”.



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.

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.


Other removed features

Known issues

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


On JRuby, errors may be raised due to the following unfixed bugs in JRuby.

With older version of JRuby, you may be bothered by the following bugs that have already been fixed in the head of JRuby.

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.


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.

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