You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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)