pypi biotite 1.8.0
Biotite 1.8.0

5 hours ago

Changelog

Additions

  • Added support for Python 3.15. (#959)
  • Added biotite.application_v2, a redesign of the application interface. (#941)
    • An application is now a reusable handle to the installed software: A run is launched by calling a method with all its inputs, which returns a Future that yields the result on demand.
    • Results are returned as typed dataclasses (e.g. ClustalOmegaResult, VinaResult) instead of via a set of getter methods.
    • All applications from biotite.application are ported, except BlastWebApp.
    • Added interfaces to MMseqs2 (MMseqsApp) and Foldseek (FoldseekApp), including typed database objects and utility functions for conversion from and to Biotite objects.
  • Added the VTML substitution matrix family (VTML10 to VTML200) to the matrix database. (#941)
  • Added the CLePAPS structural alphabet via structure.alphabet.to_clepaps() and structure.alphabet.ClepapsSequence, as well as the corresponding SubstitutionMatrix.std_clepaps_matrix(). (#681)
  • Added structure.infer_bond_types() to determine the bond orders of a BondList containing BondType.ANY bonds, e.g. as returned by structure.connect_via_distances(). (#940)
  • Added structure.info.atomic_number() to obtain the atomic numbers of elements. (#940)
  • Added structure.io.pdb.PDBFile.get_sequence() and structure.io.pdb.get_sequence() to obtain the sequences from SEQRES records. (#960)
  • Structure files with different atoms in each model can now be written by passing an iterable of AtomArray objects to set_structure() of structure.io.pdb, structure.io.pdbx and structure.io.gro. (#921)
  • Added allow_duplicates parameter to sequence.io.fasta.FastaFile and sequence.io.fastq.FastqFile, which makes duplicate headers unique by appending _1, _2, etc., e.g. to support A3M files. (#957)
  • All pairwise alignment functions accept a simple match/mismatch scoring scheme instead of a SubstitutionMatrix and provide a faster score_only mode. (#916)
  • Added sequence.align.SeedExtension as reusable and faster replacement for align_local_ungapped(). (#916)
  • Added support for CIF files with indented category names. (#633)
  • Improved performance of multiple functions
    • structure.io.pdbx.get_structure() with include_bonds=True (up to ~20x). (#956)
    • structure.lddt() with symmetric=True (~5x). (#955)
    • structure.hbond(), structure.sasa(), structure.io.pdbx.set_structure() and indexing of AtomArray/AtomArrayStack. (#936)
    • structure.superimpose(). (#935)
    • sequence.align.align_multiple(). (#927)
  • Continued the migration of Cython modules to Rust. (#916, #918, #920)
    • Migrated the pairwise alignment functions align_optimal(), align_banded(), align_local_gapped(), align_local_ungapped() and align_ungapped().
    • Migrated KmerTable and BucketKmerTable, which substantially reduces their memory footprint.
    • Migrated KmerAlphabet, KmerSelector, Permutation and SimilarityRule.

Changes

  • structure.connect_via_distances() is now more robust, i.e. it finds fewer false negative/positive bonds and works for all elements. (#940)
    • The distance_range parameter is deprecated and has no effect anymore; use tolerance instead.
  • biotite.application is deprecated in favor of biotite.application_v2. (#941)
    • In the upcoming Biotite 2.0, biotite.application will be removed and biotite.application_v2 will be renamed to biotite.application.
  • sequence.align.align_local_ungapped() is deprecated in favor of sequence.align.SeedExtension. (#916)
  • sequence.io.fasta.FastaFile and sequence.io.fastq.FastqFile now raise an exception when duplicate identifiers are read, unless allow_duplicates=True. (#957)
    • Previously, the last record with some identifier silently overwrote previous records with the same identifier.
  • The example gallery uses biotite.application_v2 and searches a local UniProtKB/Swiss-Prot database with MMseqs2 instead of NCBI BLAST. (#941)

Fixes

  • Fixed structure.dihedral_backbone() and structure.nucleotide_dihedral_backbone() returning arbitrary angles instead of NaN across chain breaks. (#933)
  • Fixed structure.create_atom_names() not accepting a list of elements anymore. (#917)
  • Fixed structure.info.vdw_radius_protor() (and hence structure.sasa()) deriving the element from the atom name, leading to wrong radii for e.g. selenium. (#938)
  • Fixed CTG being translated to alanine instead of leucine in the genetic code tables 27-30. (#939)
  • Fixed lowercase bond orders and aromatic flags in chem_comp_bond being ignored in structure.io.pdbx.get_structure() and structure.io.pdbx.get_component(). (#952)
  • Fixed interface.rdkit.to_mol() failing for structures containing deuterium. (#954)
  • Fixed ignore masks being incorrectly applied for spaced k-mers in KmerTable and BucketKmerTable. (#918)
  • Fixed deleted annotations reappearing as zero-length arrays when an AtomArray is indexed. (#936)

Don't miss a new biotite release

NewReleases is sending notifications on new releases.