There is a newer version of the record available.

Published October 28, 2024 | Version v1.2.8
Software Open

NoahHenrikKleinschmidt/buildamol: BuildAMol - v.1.2.8

Authors/Creators

  • 1. University of Bern (@ibmm-unibe-ch)

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

  • amidate was wrongly named (it was doing amination, after all). Now amidate will add an amide group and aminate (new function) will add an amine group!
  • Residues added by hydroxylate are now named OH instead of HOH (the old name was causing trouble with some PDB reading software that were excluding hydroxyl groups for being "water" due to the residue name)
  • carboxylate now adheres to the standard naming scheme and calls the atoms O, OXT, and HXT (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_optimize now allows to use either mmff or uff as the force field.
  • New methods Molecule.single(...), Molecule.double(...), and Molecule.triple(...) to set bond orders more conveniently than just Molecule.set_bond_order(...)
  • Residue objects can now use name as a synonym to resname
  • is_cisand is_trans received an update that should make them more robust when it comes to symmetric molecules
  • infer_bond_orders received 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