We provide limited support for Jython, but aside from modules with C code,
or dependent on SQLite3 or NumPy, everything should work. There are some
known issues with test failures which have not yet been resolved.

Please note that support for Python 2.6 is deprecated as of Biopython 1.66.
Biopython 1.62 was our final release to support Python 2.5 and Jython 2.5.

Dependencies

Depending on which parts of Biopython you plan to use, there are a
number of other optional Python dependencies - which can in general
be installed after Biopython.

NumPy, see http://www.numpy.org (optional, but strongly recommended)
This package is only used in the computationally-oriented modules.
It is required for Bio.Cluster, Bio.PDB and a few other modules. If you
think you might need these modules, then please install NumPy first BEFORE
installing Biopython. The older Numeric library is no longer supported in
Biopython.

ReportLab, see http://www.reportlab.com/opensource/ (optional)
This package is only used in Bio.Graphics, so if you do not need this
functionality, you will not need to install this package. You can install
it later if needed.

matplotlib, see http://matplotlib.org/ (optional)
Bio.Phylo uses this package to plot phylogenetic trees. As with ReportLab,
you can install this at any time to enable the plotting functionality.

Testing

Biopython includes a suite of regression tests to check if everything is
running correctly. To run the tests, go to the biopython source code
directory and type:

python setup.py test

Do not panic if you see messages warning of skipped tests:

test_DocSQL ... skipping. Install MySQLdb if you want to use Bio.DocSQL.

This most likely means that a package is not installed. You can
ignore this if it occurs in the tests for a module that you were not
planning on using. If you did want to use that module, please install
the required dependency and re-run the tests.

There is more testing information in the Biopython Tutorial & Cookbook.

Experimental code

Biopython 1.61 introduced a new warning, Bio.BiopythonExperimentalWarning,
which is used to mark any experimental code included in the otherwise
stable Biopython releases. Such ‘beta’ level code is ready for wider
testing, but still likely to change, and should only be tried by early
adopters in order to give feedback via the biopython-dev mailing list.

We’d expect such experimental code to reach stable status within one or two
releases, at which point our normal policies about trying to preserve
backwards compatibility would apply.

Bugs

While we try to ship a robust package, bugs inevitably pop up. If you are
having problems that might be caused by a bug in Biopython, it is possible
that it has already been identified. Update to the latest release if you are
not using it already, and retry. If the problem persists, please search our
bug database and our mailing lists to see if it has already been reported
(and hopefully fixed), and if not please do report the bug. We can’t fix
problems we don’t know about ;)

If you suspect the problem lies within a parser, it is likely that the data
format has changed and broken the parsing code. (The text BLAST and GenBank
formats seem to be particularly fragile.) Thus, the parsing code in
Biopython is sometimes updated faster than we can build Biopython releases.
You can get the most recent parser by pulling the relevant files (e.g. the
ones in Bio.SeqIO or Bio.Blast) from our git repository. However, be
careful when doing this, because the code in github is not as well-tested
as released code, and may contain new dependencies.

Finally, you can send a bug report to the bug database or the mailing list at
biopython@biopython.org. In the bug report, please let us know:

Which operating system and hardware (32 bit or 64 bit) you are using

Python version

Biopython version (or git commit/date)

Traceback that occurs (the full error message)

And also ideally:

Example code that breaks

A data file that causes the problem

Contributing, Bug Reports

Biopython is run by volunteers from all over the world, with many types of
backgrounds. We are always looking for people interested in helping with code
development, web-site management, documentation writing, technical
administration, and whatever else comes up.