Changelog
Additions
- Added interfaces to other packages in the bioinformatics ecosystem via the new `interface` subpackage. (762)
- `interface.rdkit` allows conversion between `AtomArray` and `Mol` objects from the *RDKit* package. (736, 741, 742)
- `interface.pymol` allows conversion between `AtomArray` and *PyMOL* objects, supporting NumPy-style indices as atom selections. (749)
- `interface.openmm` allows conversion between `AtomArray` and *OpenMM* `Toplology`, `System` and `State` objects. (750)
- Added `database.alphafold` subpackage for accessing structures from *AlphaFold DB*. (492)
- The IDs of computational models obtained via `database.rcsb.search()` can be passed directly to `database.alphafold.fetch()`.
- Added new metrics for measuring similarity of two structures.
- `structure.lddt()` computes the *Local Distance Difference Test* and can be highly customized with filtering and binning options. (699)
- `structure.tm_score()` computes the TM-score. Curresponding structure alignments can be performed with `superimpose_structural_homologs()`. (705)
- 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.AROMATIC` bond type, for bonds where the kekulized form is unknown. (738)
- `structure.info.residue()` and `structure.io.pdbx.get_component()` now support chemical components without valid coordinates. (730)
- `label_entity_id` annotation can now be written to PDBx files via `structure.io.pdbx.set_structure()`. (732)
- `structure.info.vdw_radius_single()` now supports more elements. (745)
- Improved performance of `structure.spread_residue_wise()` and `structure.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()` with `include_bonds=True` is now much faster and more memory efficient for very large structures. (765)
- Fixed serialization (and string representation) of `structure.io.pdbx.CIFBlock` objects 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)