Biotite

Latest version: v1.2.0

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 10

0.41.0

Changelog

Additions

- Improved MOL/SDF file support in `biotite.structure.mol`
- CTAB `V3000` blocks can be read and written in addition to `V2000` in `MOLFile` (575)
- `M CHG` lines in CTAB `V2000` block can can be read and written in `MOLFile` (589)
- Added `biotite.structure.SDFile` for full support of SD files (589)
- SD files with multiple records (i.e. multiple molecules) ca be read and written
- Metadata in SD files can be read and written
- Intra-residue bonds can now be read/written to CIF/BinaryCIF files in `biotite.structure.io.pdbx` (567)
The bonds are written to the `chem_comp_bond` category, if `include_bonds=True` in `set_structure()`
- Previously Intra-residue bonds were obtained from the *Chemical Component Dictionary* which only works for residues in the PDB
- Added repair functions for `AtomArray` objects with missing or irregular annotations
- `structure.create_continuous_res_ids()` renumbers residue IDs to make them continuous for each chain (576)
- `structure.infer_elements()` guesses chemical elements from atom names in case the `element` annotation is missing (576)
- `structure.create_atom_names()` names atoms based on their element in case the `atom_name` annotation is missing (581)
- Canonical amino acids/nucleotides can be found for arbitrary residues
- `structure.info.one_letter_code()` obtains the most appropriate one-letter code (if existing) for a residue name, based on information from the *Chemical Component Dictionary* (572)
- `structure.to_sequence()` converts an `AtomArray` into a `Sequence` based on codes obtained via `structure.info.one_letter_code()` (587)
- Added new superimposition functions (587)
- `structure.superimpose_without_outliers()` allows superimposition with iterative conformational outlier removal to decrease the RMSD of the remaining atoms
- `structure.superimpose_homologs()` finds corresponding atoms via sequence alignment and optional outlier removal
- This function is quite robust for simply superimposing homologous proteins/nucleic acids without the need of atom filtering
- `structure.AffineTransform` can be converted into a *4x4* transformation matrix containing both, translation and rotation (576)
- `sequence.align.write_alignment_to_cigar()` now includes terminal gaps in the segment sequence (usually the shorter sequence) in the CIGAR string, if `include_terminal_gaps` is set to `True` (563)
- The default behavior is unchanged

Changes

- Deprecated `get_header()` and `set_header()` in `biotite.structure.io.mol.MOLFile`
- `MOLFile.header` attribute should be used instead (589)
- Deprecated `structure.renumber_atom_ids()` and `structure.renumber_res_ids()`
- `renumber_res_ids()` can be substituted with `create_continuous_res_ids()`

Fixes

- Fixed parsing multi-line values in PDBx NextGen files in `structure.io.pdbx.CIFFile` (555)
- Fixed parsing of some operation expressions in `structure.io.pdbx.get_assembly()` (555)
- `structure.io.pdb.PDBFile.set_structure()` checks if input annotations exceed the fixed number of columns, preventing writing malformed PDB files (588)
- Trying to write malformed CIF files with categories containing no rows now raises an exception (586)
- Added more descriptive error message, if `structure.residue()` cannot find the requested residue (580)
- `sequence.io.fasta.get_sequence()` converts pyrrolyine (`O`) into lysine (`K`) when creating the `Sequence` object (587)
- Fixed indexing with an `Annotation` in `sequence.AnnotatedSequence` if annotation is on the minus strand (577)
- Fixed exception in `biotite.structure.base_pairs()` and `biotite.structure.dot_bracket_from_structure()` if no base paris were found (573)

0.40.0

Changelog

Additions

- Refactored `struc.superimpose()` (526)
- Multiple `fixed` models are allowed
- Increased performance for multiple models
- Support for *BinaryCIF* file format (531)
- Added `'bcif'` `format` to `database.rcsb.fetch()`
- Added `structure.io.pdbx.BinaryCIFFile` to parse *BinaryCIF* files
- Added `structure.io.pdbx.CIFFile` to parse *CIF* files with analogous API to `BinaryCIFFile`
- High-level *PDBx* API (`get_structure()`, `get_assembly()`, etc.) supports these new file classes
- Added `include_bonds`parameter to `structure.io.pdbx.get_structure()` and `structure.io.pdbx.get_assembly()` to parse bond information from file
- Refactored `structure.info` subpackage (540)
- Decreased initial loading time when package is imported
- The component dataset is now stored as compressed *BinaryCIF* decreasing the *Biotite* package size
- The component dataset is updated to the current version, i.e. the latest chemical components from the *wwPDB* are included
- The project now contains the `setup_ccd.py` script, enabling the user to get an up-to-date version of the component dataset

Changes

- Removed `structure.info.bond_order()` and `structure.info.bond_dataset` (540)
- `struc.superimpose` returns now an `AffineTransformation` object instead of a *transformation tuple* (526)
- `superimpose_apply()` is deprecated in favor of `AffineTransformation.apply()`
- `structure.io.pdbx.PDBxFile` is deprecated and superseded by `CIFFile` (531)
- `structure.io.mmtf` is deprecated and superseded by `BinaryCIFFile` (531)
- This is reflected by the [RCSB announcement](https://www.rcsb.org/news/feature/65a1af31c76ca3abcc925d0c) to deprecate MMTF

Fixes

- Handle invalid `CRYST1` records in PDB files correctly (523)
- Ensure that *NumPy* `1.x` is used (537)
- Support for `2.x` will be added in the future

0.39.0

Changelog

Additions

- Add build for Python 3.12 (513)
- Added modern fast *k-mer* subsetting methods to `sequence.align` (510)
- These include:
- `MinimizerSelector`
- `SyncmerSelector`
- `CachedSyncmerSelector`
- `MincodeSelector`
- The following *k-mer* ordering methods are available:
- `RandomPermutation`
- `FrequencyPermutation`
- Added `BucketKmerTable` to support indexing of long *k-mers* with reasonable memory consumption
- Support conversion of `biotite.sequence.align.Alignment` from/to CIGAR strings (516)
- `read_alignment_from_cigar()`
- `write_alignment_to_cigar()`
- Added `sequence.graphics.plot_alignment_array()` (485)
- Support new 5-character residue names in structures from PDB (512)
- Support NCBI API keys in `database.entrez` to increase download limits (514)
- Increased performance of `application.sra`(504).
- `prefetch` is called before `fasterq_dump`, as suggested [here](https://github.com/ncbi/sra-tools/wiki/08.-prefetch-and-fasterq-dump)
- `FastaDumpApp` is added, which decreases computation time by writing as FASTA instead of a FASTQ file, which omits the scores

Changes

- `application.sra.FastaDumpApp.get_sequences()` now only returns sequence (504) strings and not scores anymore (504)
- Use `get_sequences_and_scores()` instead

Fixes

- Fixed memory leak in `sequence.align.KmerTable.from_tables()` (510)
- Fixed problems of plotting functionalities with recent *Matplotlib* versions (518)

0.38.0

Changelog

Additions

- Faster *k-mer* decomposition in `sequence.align.KmerAlphabet.create_kmers()` (475)
- Sequence type can be set when reading sequences and alignments using `sequence.io.fasta` ( 478)

Fixes

- Fixed error that appeared when indexing an `sequence.AnnotatedSequence` with a slice (479)
- Fixed reading MOL/SDF files with more than 100 bonds (480)
- Fixed compilation of Biotite with Cython 3.x (493)
- Fixed usage of `box` parameter in `structure.rdf()` (494)

0.37.0

Changelog

Additions

- Added *PubChem* database interface with `database.pubchem` (472)
- Analogous to the other `database` subpackages, it supports, `search()` and `fetch()`
- `fetch_property()` can be used to quickly obtain a wide range of properties for a given list of compound IDs
- Automatic throttle control ensures that the *PubChem* usage control is obeyed
- Extended functionality for `database.rcsb.search()` and `database.rcsb.count()` (466):
- Added support for computational structures (e.g. from Alphafold DB) via the `content_types` parameter
- Added support for grouping via the new `group_by` and `return_groups` parameters
- the type of grouping is selected via `Grouping` subclasses
- Added support for ascending sorting with the `Sorting` class
- `database.entrez.search()` now also accepts the common database name in addition to the E-utility database name (471)
- This is now consistent with the behavior in `database.entrez.fetch()`
- Added `structure.io.pdb.PDBFile.get_b_factor()` analogous to `structure.io.pdb.PDBFile.get_coord()` (469)
- Added `structure.io.pdbx.get_component()` and `set_component()` (468)
- Allows getting/setting chemical components from/to PDBx files via their `chem_comp` group of categories instead of `atom_site`

Changes

- Deprecate `atom_mask` parameter in `structure.connect_via_residue_names()` and `structure.connect_via_distances()` (474)
- It has no effect anymore
- In `structure.BondList.merge()` the `BondList` given as parameter takes precedence, if both `BondList`s contain the same bond with different `BondType` (473)
- Previously it was the other way round
- The `BondList` returned by `structure.io.pdb.PDBFile.get_structure()` (if `include_bonds` is `True`) gives appropriate `BondType`s, if they can be determined using the CCD (473)
- Otherwise the `BondType` is `BondType.ANY`
- Previously it was `BondType.ANY` for all bonds
- Refactored `structure.remove_pbc()`(460)
- PCB removal is conducted for each molecule separately
- Not the first atom but the centroid of a molecule is placed within the box
- The `selection` can only be a boolean matrix

Fixes

- Fixed a bug in `structure.connect_via_distances()` and `structure.connect_via_residue_names()` that allowed unexpected bonds between polymer and non-polymer residues (473)

0.36.1

Changelog

Fixes

- Fixed parsing of remarks < 100 in `structure.io.PDBFile` (457)
- Bonds can now be read and written using *hybrid-36* encoding in `structure.io.PDBFile` (456)

Page 2 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.