biopython

Official git repository for Biopython (originally converted from CVS)

https://github.com/biopython/biopython

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    62 of 475 committers (13.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.3%) to scientific vocabulary

Keywords

bioinformatics biopython dna genomics phylogenetics protein protein-structure python sequence-alignment

Keywords from Contributors

closember sequencing alignment flexible qt wx ngs tk distributed gtk
Last synced: 6 months ago · JSON representation

Repository

Official git repository for Biopython (originally converted from CVS)

Basic Info
  • Host: GitHub
  • Owner: biopython
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage: http://biopython.org/
  • Size: 70.3 MB
Statistics
  • Stars: 4,713
  • Watchers: 169
  • Forks: 1,831
  • Open Issues: 562
  • Releases: 0
Topics
bioinformatics biopython dna genomics phylogenetics protein protein-structure python sequence-alignment
Created almost 17 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Codeowners Security

README.rst

.. image:: https://img.shields.io/pypi/v/biopython.svg?logo=pypi
   :alt: Biopython on the Python Package Index (PyPI)
   :target: https://pypi.python.org/pypi/biopython
.. image:: https://img.shields.io/conda/vn/conda-forge/biopython.svg?logo=conda-forge
   :alt: Biopython on the Conda package conda-forge channel
   :target: https://anaconda.org/conda-forge/biopython
.. image:: https://results.pre-commit.ci/badge/github/biopython/biopython/master.svg
   :target: https://results.pre-commit.ci/latest/github/biopython/biopython/master
   :alt: pre-commit.ci status
.. image:: https://img.shields.io/circleci/build/github/biopython/biopython.svg?logo=circleci
   :alt: Linux testing with CircleCI
   :target: https://app.circleci.com/pipelines/github/biopython/biopython
.. image:: https://img.shields.io/appveyor/ci/biopython/biopython/master.svg?logo=appveyor
   :alt: Windows testing with AppVeyor
   :target: https://ci.appveyor.com/project/biopython/biopython/history
.. image:: https://img.shields.io/github/actions/workflow/status/biopython/biopython/ci.yml?logo=github-actions
   :alt: GitHub workflow status
   :target: https://github.com/biopython/biopython/actions
.. image:: https://img.shields.io/codecov/c/github/biopython/biopython/master.svg?logo=codecov
   :alt: Test coverage on CodeCov
   :target: https://codecov.io/github/biopython/biopython/
.. image:: http://depsy.org/api/package/pypi/biopython/badge.svg
   :alt: Research software impact on Depsy
   :target: http://depsy.org/package/python/biopython

.. image:: https://github.com/biopython/biopython/raw/master/Doc/images/biopython_logo_m.png
   :alt: The Biopython Project
   :target: http://biopython.org

Biopython README file
=====================

The Biopython Project is an international association of developers of freely
available Python tools for computational molecular biology.

This README file is intended primarily for people interested in working
with the Biopython source code, either one of the releases from the
http://biopython.org website, or from our repository on GitHub
https://github.com/biopython/biopython

Our user-centric documentation, `The Biopython Tutorial and Cookbook, and API
documentation `_, is generated from our
repository using Sphinx.

The `NEWS `_
file summarises the changes in each release of Biopython, alongside the
`DEPRECATED
`_
file which notes API breakages.

The Biopython package is open source software made available under generous
terms. Please see the `LICENSE
`_ file for
further details.

If you use Biopython in work contributing to a scientific publication, we ask
that you cite our application note (below) or one of the module specific
publications (listed on our website):

Cock, P.J.A. et al. Biopython: freely available Python tools for computational
molecular biology and bioinformatics. Bioinformatics 2009 Jun 1; 25(11) 1422-3
https://doi.org/10.1093/bioinformatics/btp163 pmid:19304878


For the impatient
=================

Python includes the package management system "pip" which should allow you to
install Biopython (and its dependency NumPy if needed), upgrade or uninstall
with just one terminal command::

    pip install biopython
    pip install --upgrade biopython
    pip uninstall biopython

Since Biopython 1.70 we have provided pre-compiled binary wheel packages on
PyPI for Linux, macOS and Windows. This means pip install should be quick,
and not require a compiler.

As a developer or potential contributor, you may wish to download, build and
install Biopython yourself. This is described below.


Python Requirements
===================

We currently recommend using Python 3.11 from http://www.python.org

Biopython is currently supported and tested on the following Python
implementations:

- Python 3.10, 3.11, 3.12 and 3.13 -- see http://www.python.org

- PyPy3.10 v7.3.17 -- or later, see http://www.pypy.org


Optional Dependencies
=====================

Biopython requires NumPy (see http://www.numpy.org) which will be installed
automatically if you install Biopython with pip (see below for compiling
Biopython yourself).

Depending on which parts of Biopython you plan to use, there are a number of
other optional Python dependencies, which can be installed later if needed:

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

- matplotlib, see http://matplotlib.org/ (optional)
  ``Bio.Phylo`` uses this package to plot phylogenetic trees.

- networkx, see https://networkx.github.io/ (optional) and
  pygraphviz or pydot, see https://pygraphviz.github.io/ and
  http://code.google.com/p/pydot/ (optional)
  These packages are used for certain niche functions in ``Bio.Phylo``.

- rdflib, see https://github.com/RDFLib/rdflib (optional)
  This package is used in the CDAO parser under ``Bio.Phylo``.

- psycopg2, see http://initd.org/psycopg/ (optional) or
  PyGreSQL (pgdb), see http://www.pygresql.org/ (optional)
  These packages are used by ``BioSQL`` to access a PostgreSQL database.

- MySQL Connector/Python, see http://dev.mysql.com/downloads/connector/python/
  This package is used by ``BioSQL`` to access a MySQL database, and is
  supported on PyPy too.

- mysqlclient, see https://github.com/PyMySQL/mysqlclient-python (optional)
  This is a fork of the older MySQLdb and is used by ``BioSQL`` to access a
  MySQL database. It is supported by PyPy.

In addition there are a number of useful third party tools you may wish to
install such as standalone NCBI BLAST, EMBOSS or ClustalW.


Installation From Source
========================

We recommend using the pre-compiled binary wheels available on PyPI using::

    pip install biopython

However, if you need to compile Biopython yourself, the following are required
at compile time:

- Python including development header files like ``python.h``, which on Linux
  are often not installed by default (trying looking for and installing a
  package named ``python-dev`` or ``python-devel`` as well as the ``python``
  package).

- Appropriate C compiler for your version of Python, for example GCC on Linux,
  MSVC on Windows. For Mac OS X, or as it is now branded, macOS, use Apple's
  command line tools, which can be installed with the terminal command::

      xcode-select --install

  This will offer to install Apple's XCode development suite - you can, but it
  is not needed and takes a lot of disk space.

Then either download and decompress our source code, or fetch it using git.
Now change directory to the Biopython source code folder and run::

    pip install -e .
    python setup.py test
    sudo python setup.py install

Substitute ``python`` with your specific version if required, for example
``python3``, or ``pypy3``.

To exclude tests that require an internet connection (and which may take a
long time), use the ``--offline`` option::

    python setup.py test --offline

If you need to do additional configuration, e.g. changing the install
directory prefix, please type ``python setup.py``.


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

    pip install -e .
    python setup.py test

If you want to skip the online tests (which is recommended when doing repeated
testing), use::

    python setup.py test --offline

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.

Some of the tests may fail due to network issues, this is often down to
chance or a service outage. If the problem does not go away on
re-running the tests, you can use the ``--offline`` option.

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 ;)

Issue tracker: https://github.com/biopython/biopython/issues

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.

In any bug report, please let us know:

1. Which operating system and hardware (32 bit or 64 bit) you are using
2. Python version
3. Biopython version (or git commit/date)
4. Traceback that occurs (the full error message)

And also ideally:

5. Example code that breaks
6. 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.

If you wish to contribute, please first read `CONTRIBUTING.rst
`_ here,
visit our web site http://biopython.org and join our mailing list:
http://biopython.org/wiki/Mailing_lists


Distribution Structure
======================

- ``README.rst``  -- This file.
- ``NEWS.rst``    -- Release notes and news.
- ``LICENSE.rst`` -- What you can do with the code.
- ``CONTRIB.rst`` -- An (incomplete) list of people who helped Biopython in
  one way or another.
- ``CONTRIBUTING.rst`` -- An overview about how to contribute to Biopython.
- ``DEPRECATED.rst`` -- Contains information about modules in Biopython that
  were removed or no longer recommended for use, and how to update code that
  uses those modules.
- ``MANIFEST.in`` -- Configures which files to include in releases.
- ``setup.py``    -- Installation file.
- ``Bio/``        -- The main code base code.
- ``BioSQL/``     -- Code for using Biopython with BioSQL databases.
- ``Doc/``        -- Documentation.
- ``Scripts/``    -- Miscellaneous, possibly useful, standalone scripts.
- ``Tests/``      -- Regression testing code including sample data files.

Owner

  • Name: Biopython Project
  • Login: biopython
  • Kind: organization

GitHub Events

Total
  • Issues event: 108
  • Watch event: 358
  • Delete event: 3
  • Issue comment event: 500
  • Push event: 104
  • Pull request event: 211
  • Pull request review event: 154
  • Pull request review comment event: 135
  • Fork event: 95
  • Create event: 6
Last Year
  • Issues event: 108
  • Watch event: 358
  • Delete event: 3
  • Issue comment event: 500
  • Push event: 104
  • Pull request event: 211
  • Pull request review event: 154
  • Pull request review comment event: 135
  • Fork event: 95
  • Create event: 6

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 15,968
  • Total Committers: 475
  • Avg Commits per committer: 33.617
  • Development Distribution Score (DDS): 0.616
Past Year
  • Commits: 288
  • Committers: 36
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.698
Top Committers
Name Email Commits
peterjc p****k@g****m 6,125
mdehoon m****n@y****m 1,637
peterc p****c 1,603
bow b****w@b****d 730
jchang j****g 530
Eric Talevich e****h@g****m 514
chapmanb c****b 457
nisse n****e 321
dalke d****e 174
Christian Brueffer c****n@b****e 169
svalqui s****i@a****u 168
katel k****l 151
bendmorris b****n@b****m 141
Tiago Antao t****o@g****m 138
carlosp420 m****s@g****m 119
Markus Piotrowski M****i@r****e 107
zruan z****1@g****m 106
Brandon Invergo b****o@g****m 105
mdehoon m****n@a****p 100
João Rodrigues j****s@g****m 95
idoerg i****g 93
Samuel Prince s****n@u****a 78
Chris Rands c****0@h****m 77
Michiel de Hoon m****n@m****l 70
Rob Miller r****h@g****m 56
Michiel de Hoon m****n@M****l 55
polyatail a****k@m****u 53
FGastaldello g****8@h****m 50
grouse g****e 49
Vincent Davis v****t@v****t 47
and 445 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 342
  • Total pull requests: 836
  • Average time to close issues: 8 months
  • Average time to close pull requests: 7 months
  • Total issue authors: 245
  • Total pull request authors: 161
  • Average comments per issue: 5.09
  • Average comments per pull request: 2.82
  • Merged pull requests: 597
  • Bot issues: 0
  • Bot pull requests: 31
Past Year
  • Issues: 81
  • Pull requests: 264
  • Average time to close issues: 9 days
  • Average time to close pull requests: 7 days
  • Issue authors: 63
  • Pull request authors: 46
  • Average comments per issue: 1.94
  • Average comments per pull request: 1.81
  • Merged pull requests: 190
  • Bot issues: 0
  • Bot pull requests: 8
Top Authors
Issue Authors
  • peterjc (38)
  • manulera (11)
  • JoaoRodrigues (10)
  • kamurani (6)
  • corneliusroemer (5)
  • mdehoon (4)
  • Kiri2002 (4)
  • data2code (3)
  • pippo1990 (3)
  • emollier (3)
  • Tim-Kirkwood (3)
  • sagitter (2)
  • Jeff-LaFrence (2)
  • gciaberi (2)
  • universvm (2)
Pull Request Authors
  • mdehoon (295)
  • peterjc (123)
  • michaelfm1211 (34)
  • Will-Tyler (26)
  • bow (17)
  • dependabot[bot] (17)
  • flaar94 (15)
  • pre-commit-ci[bot] (14)
  • ghuls (11)
  • manulera (10)
  • JoaoRodrigues (10)
  • speleo3 (8)
  • 37Lime (6)
  • iosonofabio (6)
  • kamurani (6)
Top Labels
Issue Labels
Enhancement (15) help wanted (14) good first issue (12) Documentation (8) Testing (7) Bug (6) Update (4) From Redmine (4) Style (2) dependencies (1)
Pull Request Labels
dependencies (17) Documentation (9) github_actions (2) Testing (1) Update (1) Enhancement (1)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 4,837,236 last-month
  • Total docker downloads: 32,873,459
  • Total dependent packages: 857
    (may contain duplicates)
  • Total dependent repositories: 4,420
    (may contain duplicates)
  • Total versions: 83
  • Total maintainers: 6
pypi.org: biopython

Freely available tools for computational molecular biology.

  • Versions: 62
  • Dependent Packages: 833
  • Dependent Repositories: 3,405
  • Downloads: 4,837,226 Last month
  • Docker Downloads: 32,873,459
Rankings
Dependent packages count: 0.0%
Dependent repos count: 0.2%
Downloads: 0.4%
Docker downloads count: 0.5%
Average: 0.6%
Forks count: 1.0%
Stargazers count: 1.3%
Last synced: 6 months ago
conda-forge.org: biopython

Biopython is a collection of freely available Python tools for computational molecular biology

  • Homepage: http://biopython.org
  • License: LicenseRef-Biopython
  • Latest release: 1.71
    published over 3 years ago
  • Versions: 10
  • Dependent Packages: 24
  • Dependent Repositories: 507
Rankings
Dependent repos count: 1.2%
Dependent packages count: 2.8%
Forks count: 3.3%
Average: 3.4%
Stargazers count: 6.4%
Last synced: 6 months ago
pypi.org: mah51-biopython

Freely available tools for computational molecular biology.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 10 Last month
Rankings
Forks count: 1.0%
Stargazers count: 1.3%
Dependent packages count: 10.1%
Average: 15.5%
Dependent repos count: 21.5%
Downloads: 43.7%
Maintainers (1)
Last synced: 6 months ago
anaconda.org: biopython

Biopython is a collection of freely available Python tools for computational molecular biology

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 507
Rankings
Dependent repos count: 7.3%
Forks count: 8.9%
Stargazers count: 14.0%
Average: 20.3%
Dependent packages count: 51.2%
Last synced: 6 months ago

Dependencies

.circleci/requirements-sphinx.txt pypi
  • mmtf-python *
  • mysql-connector-python-rf *
  • numpy *
  • numpydoc ==1.3.1
  • pygments *
  • rdflib *
  • reportlab *
  • scipy *
  • sphinx ==4.3.2
  • sphinx_rtd_theme *
.github/workflows/ci.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • geekyeggo/delete-artifact v1 composite
  • trilom/file-changes-action v1.2.4 composite
setup.py pypi