Releases: biotite-dev/biotite
Releases · biotite-dev/biotite
Biotite 1.6.0
Changelog
Additions
- Added support for Linux ARM 64 (
aarch64) builds. (#851) - Added
structure.filter_heavy()to filter non-hydrogen atoms. (#845) - Added
sequence.io.fasta.get_a3m_alignments()andsequence.io.fasta.set_a3m_alignments()for reading and writing alignments in A3M format. (#848) - Improved performance for
database.rcsb.fetch() - Improved efficiency of
structure.filter_intersection(). (#849)
Changes
- String representations of
structure.AtomArrayandstructure.AtomArrayStackare now abbreviated to improve readability for large structures. (#835)
Fixes
- Fixed
structure.find_stacking_interactions()andfind_pi_cation_interactions()somteimes miss interaction. (#839) - Fixed unnecessary
numpy.ndarrayinitialization when andstructure.AtomArrayorstructure.AtomArrayStackis indexed. (#840) - Fixed
structure.io.pdbx.get_assembly()removing inter-chain bonds. (#843) - Fixed compatibility with
numpy >= 2.4. (#850)
Biotite 1.5.0
Changelog
Additions
- Added support for Python 3.14. (#830)
- Added
structure.dihedral_side_chain()analogous todihedral_backbone(). (#827) - Added
structure.get_all_residue_positions()andstructure.get_atom_name_indices()to residue level functionalities. (#827) - Expanded list of 'water' residue names in
structure.filter_solvent(). (#832)
Changes
structure.io.pdbx.get_structure(use_author_fields=False)assigns an incrementingres_idfor hetero residues instead of-1. (#823)- Previously in edge cases assigning
-1to hetero residues lead to missing distinction of subsequent residues. (#553)
- Previously in edge cases assigning
- A different
res_nameis not used anymore to distinct two subsequent residues in the residue-level functionalities. (#825)- Previously, if two altlocs of the same residue had a different
res_name, both would be incorrectly kept. (#824)
- Previously, if two altlocs of the same residue had a different
Fixes
- Fixed reading BCIF files written by
py-mmcifinstructure.io.pdbx.BinaryCIFFile. (#833) structure.io.pdbx.BinaryCIFData.arrayis now writable if it was encoded only withByteEncoding. (#833)- Fixed issue where for some invalid UniProt IDs
database.rcsb.fetch()would still downloaded another entry. (#833)- For example instead of the invalid
A0A12345,A0A123would have been downloaded.
- For example instead of the invalid
structure.io.pdb.get_structure()now only infers bonds from CCD for proteins and nucleic acids, not for other ligands. (#820)- This allows using residue names for compounds that clash with the compound names in the CCD without getting wrong bonds.
Biotite 1.4.0
Changelog
Additions
- Added
structure.find_pi_cation_interactions()to identify pi-cation interactions in a structure. (#810) - Added more convenient bond type conversion methods for
structure.BondListobjects. (#808)remove_kekulization()changesAROMATIC_<order>bonds to genericAROMATICbonds.convert_bond_type()maps the given bond type to a new bond type.
Changes
- Deprecated
include_bondsparameter instructure.io.pdbx.set_structure(). (#804)- Intra-residue bonds are now always written to
chem_comp_bondcategory.
- Intra-residue bonds are now always written to
interface.rdkit.from_mol()writes the altloc into thealtloc_idannotation
instead oflabel_alt_id. (#807)
Fixes
- Fixed altloc filtering in
structure.io.pdbx.set_structure()for PDBx files where each atom has an altloc. (#806) - Fixed warning in
structure.lddt()that was raised, if no contact exists. (#811) - Fixed
selectionparameterinterface.pymol.PyMOLObjectmethods that errored if a slice index was passed. (#801) - Fixed the
amountparameter instructure.repeat_box_coord()not being used. (#800) - Fixed spurious bonds added to the structure returned by
structure.io.pdb.PDBFile.get_structure(). (#810)- Appeared when an altloc atom that participated in a non-canonical bond, was removed during parsing.
- Fixed exception in
structure.io.pdb.PDBFile.get_assembly(), if the file contains multiple assemblies. (#810)
Biotite 1.3.0
Changelog
Additions
- Added support for parsing unit cells. (#778)
- Added
structure.space_group_transforms()to get transformations for a given space group. - Added
structure.io.pdbx.get_unit_cell()to getAtomArray/AtomArrayStackthat represents the entire unit cell. - Renamed
structure.io.pdb.get_symmetry_mates()tostructure.io.pdb.get_unit_cell(). - The
sym_idannotation array is also considered when determining chain starts. (#786)
- Added
Changes
structure.io.pdb.PDBFile.get_symmetry_mates()andstructure.io.pdb.get_symmetry_mates()are now deprecated in favor ofget_unit_cell(). (#778)- Removed support for Python 3.10.
Fixes
- Fixed integer overflows/underflows leading to potentially corrupted BinaryCIF files. (#783, #796)
- Only affects cases where the
Encodingis either manually set or it is set bystructure.io.pdbx.compress()before writing the file. - Now
structure.io.pdbx.Encoding.encode()always checks if the target data type is compatible with the values. structure.io.pdbx.compress()will fallback to directByteArrayEncodingif the data type is incompatible withFixedPointEncoding.
- Only affects cases where the
- Fixed occasionally missing bonds in
structure.io.pdbx.get_structure(altloc='occupancy'). (#781) - Fixed missing support for PDBx files containing multiple operation expression per assembly in
structure.io.pdbx.get_assembly(). (#792)
Biotite 1.2.0
Changelog
Additions
- Added interfaces to other packages in the bioinformatics ecosystem via the new
interfacesubpackage. (#762)interface.rdkitallows conversion betweenAtomArrayandMolobjects from the RDKit package. (#736, #741, #742)interface.pymolallows conversion betweenAtomArrayand PyMOL objects, supporting NumPy-style indices as atom selections. (#749)interface.openmmallows conversion betweenAtomArrayand OpenMMToplology,SystemandStateobjects. (#750)
- Added
database.alphafoldsubpackage for accessing structures from AlphaFold DB. (#492)- The IDs of computational models obtained via
database.rcsb.search()can be passed directly todatabase.alphafold.fetch().
- The IDs of computational models obtained via
- Added new metrics for measuring similarity of two structures.
- Added functions related to aromatic rings. (#751)
structure.find_aromatic_rings()finds atom indices of aromatic rings in a structure.structure.find_stacking_interactions()finds pi-stacking interactions between aromatic rings.
- Added
structure.BondType.AROMATICbond type, for bonds where the kekulized form is unknown. (#738) structure.info.residue()andstructure.io.pdbx.get_component()now support chemical components without valid coordinates. (#730)label_entity_idannotation can now be written to PDBx files viastructure.io.pdbx.set_structure(). (#732)structure.info.vdw_radius_single()now supports more elements. (#745)- Improved performance of
structure.spread_residue_wise()andstructure.spread_chain_wise(). (#770)
Fixes
- Now only finite coordinates can be given to
structure.CellList()(#733). - Fixed
structure.array()truncating string annotations. (#755) structure.io.pdbx.get_structure()withinclude_bonds=Trueis now much faster and more memory efficient for very large structures. (#765)- Fixed serialization (and string representation) of
structure.io.pdbx.CIFBlockobjects raising an exception. (#767) - Now
structure.io.mol.set_structure()checks if the input coordinates fit into the fixed number of columns in MOL/SDF files. (#772) - The height of letters in
sequence.graphics.plot_feature_map.plot_sequence_logo()is now more accurate. (#769)
Biotite 1.1.0
Changelog
Additions
- Support for Python 3.13 (#661).
- Support for structural alphabets that encodes geometric information from
structure.AtomArrayobjects insequence.Sequenceobjects. - Support for positional substitution matrices. (#655)
sequence.PositionalSequenceacts as a placeholder sequence for a sequence profile in alignment functions fromsequence.align.sequence.align.SubstitutionMatrix.as_positional()expands a substitution matrix into a positional substitution matrix.
- New functionalities for
structure.io.pdbx:- Custom annotations can be written with
set_structure()withextra_fields=True. (#669) - Missing columns in
atom_sitecategory are now handled by using sensible default annotations. (#670) - Added
compress()function that automatically finds optimal encodings forBinaryCIFFile, decreasing the file size by a factor of approx 8x. (#674) get_assembly()now adds asym_idannotation to better distinguish copies of the asymmetric unit. (#700)
- Custom annotations can be written with
- Added
PDBFile.get_space_group()andPDBFile.set_space_group()to read and write the space group information. (#707) - Added
structure.concatenate(), which supports concatenating more thanAtomArrayStackobjects. (#712) - Performance improvements:
Changes
structure.io.pdbx.set_structure()does not write 'canonical' bonds tostruct_conncategory anymore. (#678)- The internal Chemical Component Dictionary is not version controlled anymore. (#687, #716)
- For installations from local repository clones, it must be built with
python -m biotite.setup_ccd.
- For installations from local repository clones, it must be built with
Fixes
structure.io.pdbxcan now handleatom_sitecategories with quoted values containing whitespaces. (#673)nanvalues instructure.AtomArraynow count as equal when comparingAtomArrayobjects. (#714)- Fixed wrong band calculation in
sequence.align.align_banded()that occurred when the given band was outside the sequence bounds. (#723)- This lead to premature traceback termination in rare cases.
Biotite 1.0.1
Changelog
Fixes
- Fixed
structure.AtomArray.chain_idhaving the chain ID restricted to 4 characters. (#643) - Fixed corrupted category parsing in
structure.io.pdbx.CIFFile, when a multiline value contains a quote character. (#651) - Fixed duplicate bonds written to
chem_comp_bondcategory, wheninclude_bonds=Trueis set instructure.io.pdbx.set_structure(). (#653) - Fixed non-deterministic altloc atom selection by occupancy, if two altlocs have the same occupancy. (#649)
- Fixed the version switcher in the documentation showing the latest version twice. (#646)
Biotite 1.0.0
Changelog
Additions
- Support for Numpy
2.0(#529)1.xversions are still compatible.
- Trajectory file interfaces in
structure.iodo not requiremdtrajas extra dependency anymore (#627).- Instead the much smaller
biotrajpackage is now a mandatory dependency of Biotite.
- Instead the much smaller
- New documentation website (#552).
- Improved performance of multiple auxiliary methods in
sequence.Alphabet.
Changes
sequence.graphicsusesflowercolor scheme as default instead ofrainbow. (#617).- It represents similarity of amino acids better.
structure.io.pdbx.get_sequence()returns dict mapping chain IDs to sequences (#611).- Previously deprecated functionality was removed. (#624)
read()instance method ofFileclasses: Useread()class method instead.temp_file()andtemp_dir(): Use corresponding functionality fromtempfileinstead.application.viennarna.RNAfoldApp.get_mfe(): Useapplication.viennarna.RNAfoldApp.get_free_energy()instead.atom_maskparameter ofstructure.connect_via_distances()andstructure.connect_via_residue_names(): Filter the atoms before instead.- Support for
Alignmentobjects as input tosequence.graphics.plot_sequence_logo(): Input aProfileinstead. sequence.io.fastq.FastqFile.get_sequence(): Usesequence.io.fastq.FastqFile.get_seq_string()orsequence.io.fastq.get_sequence()instead.structure.filter_backbone(): Usestructure.filter_peptide_backbone()instead.structure.check_id_continuity(): Usestructure.check_res_id_continuity()instead.structure.check_bond_continuity(): Usestructure.check_backbone_continuity()instead.structure.renumber_atom_ids(): Set theatom_idannotation withnumpy.arange()instead.structure.renumber_res_ids(): Usestructure.create_continuous_res_ids()instead.chain_idparameter ofstructure.annotate_sse(): Filter theAtomArraybefore instead.structure.superimpose_apply(): Usestructure.AffineTransformation.apply()instead.structure.io.read_structure_from_ctab()andstructure.io.write_structure_to_ctab(): Use corresponding functions fromstructure.io.mol.structure.io.mol.MolFile.get_header()andstructure.io.mol.MolFile.set_header(): Use theheaderattribute instead.structure.io.npz: Internal.npzformat is not used anymore.structure.io.pdbx.PDBxFile: Usestructure.io.pdbx.CIFFileinstead.structure.io.mmtf:.mmtfwas superseded by.bcifaccessible withstructure.io.pdbx.BinaryCIFFile.