Biotite documentation

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 one of the following articles:


P. Kunzmann, K. Hamacher, "Biotite: a unifying open source computational biology framework in Python," BMC Bioinformatics, vol. 19, pp. 346, October 2018. doi: 10.1186/s12859-018-2367-z


P. Kunzmann, T. D. Müller, M. Greil, J. H. Krumbach, J. M. Anter, D. Bauer, F. Islam, K. Hamacher, "Biotite: new tools for a versatile Python bioinformatics library," BMC Bioinformatics, vol. 24, pp. 1--19, December 2023. doi: 10.1186/s12859-023-05345-6

Sequence subpackage

This subpackage contains functionality for working with sequence information of any kind. The package contains by default sequence types for nucleotides and proteins, but the alphabet-based implementation allows simple integration of own sequence types, even if they do not rely on letters. Besides the standard I/O operations, the package includes general purpose functions for sequence manipulations and global/local alignments. On top of the actual sequence data, the subpackage can also handle sequence features, to annotate your sequences with the respective functionality. Eventually, the data can be visualized in different Matplotlib based representations, ranging from sequence alignments to feature maps.

_images/sphx_glr_hcn_hydropathy_001.png _images/sphx_glr_avidin_alignment_001.png

Structure subpackage

This subpackage enables handling of 3D structures of biomolecules. Simplified, a structure is represented by a list of atoms and their properties, based on ndarray objects. Optionally, this representation can be enriched with chemical bond information. Biotite supports different structure formats, including the ones provided by the RCSB and Gromacs trajectory formats. The subpackage offers a wide range of functions for atom filtering, coordinate transformations, angle and bond measurements, accessible surface area calculation, structure superimposition and more.

_images/sphx_glr_ramachandran_001.png _images/sphx_glr_sheet_arrangement_001.png

Application subpackage

This subpackage provides interfaces for external software, in case Biotite’s integrated functionality is not sufficient for your tasks. These interfaces range from locally installed software (e.g. MSA software) to web services (e.g. BLAST). The speciality is that the interfaces are seamless: You do not have to write input files and read output files, you only have to input Python objects and you get Python objects. It is basically very similar to using normal Python functions.

_images/sphx_glr_lexa_conservation_002.png _images/sphx_glr_transketolase_sse_004.png

Database subpackage

This subpackage is all about searching and downloading data from biological databases, including the arguably most important ones: the RCSB PDB and the NCBI Entrez database.

_images/sphx_glr_pdb_statistics_001.png _images/sphx_glr_alkane_isomers_002.png