NoahHenrikKleinschmidt/buildamol: BuildAMol - v.1.2.8
Description
New Extension - Molecular Factories
The new molecular_factories extension includes two classes to assemble and derive molecules combinatorially. Documentation on the new extension can be found here.
The Assembler
The Assembler class can assemble fragments from a library into molecules. This is a slightly more generic implementation of the code presented in the automated ligand-design pipeline. The class can be used to sample molecular candidates from "candidate space" (i.e., produce random molecules by combining fragments) or create molecules explicitly from an array input (useful for optimization procedures).
The Derivator
The Derivator class can create modified versions of a specified molecule, which we call derivatives, hence the name. There is also a new Tutorial that exemplifies the usage of the Derivator.
Available modifications are:
- changing elements of atoms
- changing bond orders
- adding functional groups to specific positions
- globally modifying molecules by arbitrary functions
The Derivator can sample molecular candidates just like the Assembler but, in addition, also produce all combinatorically possible derivatives given the desired modifications.
Other Notable Changes
Changes in Modifier Functions
amidatewas wrongly named (it was doing amination, after all). Nowamidatewill add an amide group andaminate(new function) will add an amine group!- Residues added by
hydroxylateare now namedOHinstead ofHOH(the old name was causing trouble with some PDB reading software that were excluding hydroxyl groups for being "water" due to the residue name) carboxylatenow adheres to the standard naming scheme and calls the atomsO,OXT, andHXT(instead of the current O1, O2, H2)
Refactored Functional Groups
The functional groups (in structural.groups) received a significant refactoring. A BaseFunctionalGroup class now brings most of the generic features of functional group objects such as find_matches, but does not implement any details on the mechanics of finding these matches. This job is carried out by daughter classes. The FunctionalGroup (now a daughter of BaseFunctionalGroup) serves as the base class for groups defined explicitly by a single geometry around a central atom. The aromatic group is now handled by a separate class AromaticGroup - this was the primary reason for the refactor.
What does this mean for users/devs? If you have defined a custom functional group, check if it can still inherit from FunctionalGroup (i.e. is defined via a single geometry) or if it should inherit directly from BaseFunctionalGroup (i.e. is a little more complex like an aromatic ring).
Miscellaneous Changes
- In-place optimization with RDKit should work now properly
rdkit_optimizenow allows to use eithermmfforuffas the force field.- New methods
Molecule.single(...),Molecule.double(...), andMolecule.triple(...)to set bond orders more conveniently than justMolecule.set_bond_order(...) Residueobjects can now usenameas a synonym toresnameis_cisandis_transreceived an update that should make them more robust when it comes to symmetric moleculesinfer_bond_ordersreceived an update that should make it a little faster- other bug fixes and small performance enhancements
Files
NoahHenrikKleinschmidt/buildamol-v1.2.8.zip
Files
(160.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:987229ff2dfc92e8f1e5f8a962f93d27
|
160.1 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/NoahHenrikKleinschmidt/buildamol/tree/v1.2.8 (URL)