https://github.com/biotite-dev/biotite
A comprehensive library for computational molecular biology
https://github.com/biotite-dev/biotite
bioinformatics computational-biology pdb-files sequence-analysis structural-biology
Last synced: 22 days ago
JSON representation
A comprehensive library for computational molecular biology
- Host: GitHub
- URL: https://github.com/biotite-dev/biotite
- Owner: biotite-dev
- License: bsd-3-clause
- Created: 2017-07-30T12:18:33.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2026-01-01T12:36:48.000Z (about 1 month ago)
- Last Synced: 2026-01-03T15:25:53.521Z (about 1 month ago)
- Topics: bioinformatics, computational-biology, pdb-files, sequence-analysis, structural-biology
- Language: Python
- Homepage: https://www.biotite-python.org
- Size: 192 MB
- Stars: 911
- Watchers: 18
- Forks: 128
- Open Issues: 41
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.rst
Awesome Lists containing this project
- StarryDivineSky - biotite-dev/biotite
README
.. image:: https://img.shields.io/pypi/v/biotite.svg
:target: https://pypi.python.org/pypi/biotite
:alt: Biotite at PyPI
.. image:: https://img.shields.io/pypi/pyversions/biotite.svg
:alt: Python version
.. image:: https://github.com/biotite-dev/biotite/actions/workflows/test_and_deploy.yml/badge.svg
:target: https://github.com/biotite-dev/biotite/actions/workflows/test_and_deploy.yml
:alt: Test status
.. image:: https://www.biotite-python.org/_static/assets/general/biotite_logo_m.png
:alt: The Biotite Project
Biotite project
===============
*Biotite* is your Swiss army knife for bioinformatics.
Whether you want to identify homologous sequence regions in a protein family
or you would like to find disulfide bonds in a protein structure: *Biotite*
has the right tool for you.
This package bundles popular tasks in computational molecular biology
into a uniform *Python* library.
It can handle a major part of the typical workflow
for sequence and biomolecular structure data:
- Searching and fetching data from biological databases
- Reading and writing popular sequence/structure file formats
- Analyzing and editing sequence/structure data
- Visualizing sequence/structure data
- Interfacing external applications for further analysis
*Biotite* internally stores most of the data as *NumPy* `ndarray` objects,
enabling
- fast C-accelerated analysis,
- intuitive usability through *NumPy*-like indexing syntax,
- extensibility through direct access of the internal *NumPy* arrays.
As a result the user can skip writing code for basic functionality (like
file parsers) and can focus on what their code makes unique - from
small analysis scripts to entire bioinformatics software packages.
If you use *Biotite* in a scientific publication, please cite:
| Kunzmann, P. & Hamacher, K. BMC Bioinformatics (2018) 19:346.
| ``_
Installation
------------
*Biotite* requires the following packages:
- **numpy**
- **requests**
- **msgpack**
- **networkx**
Some functions require some extra packages:
- **matplotlib** - Required for plotting purposes.
*Biotite* can be installed via *Conda*...
.. code-block:: console
$ conda install -c conda-forge biotite
... or *pip*
.. code-block:: console
$ pip install biotite
Usage
-----
Here is a small example that downloads two protein sequences from the
*NCBI Entrez* database and aligns them:
.. code-block:: python
import biotite.sequence.align as align
import biotite.sequence.io.fasta as fasta
import biotite.database.entrez as entrez
# Download FASTA file for the sequences of avidin and streptavidin
file_name = entrez.fetch_single_file(
uids=["CAC34569", "ACL82594"], file_name="sequences.fasta",
db_name="protein", ret_type="fasta"
)
# Parse the downloaded FASTA file
# and create 'ProteinSequence' objects from it
fasta_file = fasta.FastaFile.read(file_name)
avidin_seq, streptavidin_seq = fasta.get_sequences(fasta_file).values()
# Align sequences using the BLOSUM62 matrix with affine gap penalty
matrix = align.SubstitutionMatrix.std_protein_matrix()
alignments = align.align_optimal(
avidin_seq, streptavidin_seq, matrix,
gap_penalty=(-10, -1), terminal_penalty=False
)
print(alignments[0])
.. code-block::
MVHATSPLLLLLLLSLALVAPGLSAR------KCSLTGKWDNDLGSNMTIGAVNSKGEFTGTYTTAV-TA
-------------------DPSKESKAQAAVAEAGITGTWYNQLGSTFIVTA-NPDGSLTGTYESAVGNA
TSNEIKESPLHGTQNTINKRTQPTFGFTVNWKFS----ESTTVFTGQCFIDRNGKEV-LKTMWLLRSSVN
ESRYVLTGRYDSTPATDGSGT--ALGWTVAWKNNYRNAHSATTWSGQYV---GGAEARINTQWLLTSGTT
DIGDDWKATRVGINIFTRLRTQKE---------------------
-AANAWKSTLVGHDTFTKVKPSAASIDAAKKAGVNNGNPLDAVQQ
More documentation, including a tutorial, an example gallery and the API
reference is available at ``_.
Contribution
------------
Interested in improving *Biotite*?
Have a look at the
`contribution guidelines `_.
Feel free to join our community chat on `Discord `_.