NovAna (Novelty Analysis) is a cheminformatics tool that allows decomposing molecules into their scaffolds and shapes using a method similar to that described in by Wills and Lipkus in ACS Med. Chem. Lett. 2020, 11, 2114-2119.
Project description
Introduction
Novana (Novelty Analysis) is a cheminformatics tool that allows decomposing molecules into their scaffolds and shapes in milliseconds using a method similar to that described by Wills and Lipkus in ACS Med. Chem. Lett. 2020, 11, 2114-2119 (https://dx.doi.org/10.1021/acsmedchemlett.0c00319). The tool can be used to analyse molecule data sets across multiple levels of generalisation - as an alternative to conventional structural and similarity methods. The tool can potentially also be used for drug repurposing and the creation of train/validation data sets for machine learning. Here is an example of structural decomposition from molecule to scaffold and finally shape.
Method
For a given SMILES input:
- A scaffold is generated by removing recursively all terminal atoms until only atoms bonded with at least two different atoms are retained (e.g., cycles and chains). Double-bonded terminal atoms (e.g., oxygens of a carbonyl/sulfonyl group) are removed. The bad valences of the retained atoms are fixed by adding or removing hydrogens according to some heuristics which can be found in
valence.py
. The charges of atoms that have been modified by the algorithm are neutralised, whereas the charges of other atoms in the input remain unchanged. - A shape is produced as a further decomposition of a scaffold by converting all its atoms into single bonded, non-aromatic, neutral carbons.
Novana also deals with mixtures automatically by extracting the largest fragment containing rings and using it as input to the decomposition. If no structures with rings are found in the input SMILES, Novana throws an error.
How to install the tool
pip install novana
Usage
# Example of input SMILES
from rdkit import Chem
smiles = "COC(=O)N1CC2(C1)CS(=O)(=Nc1cc(C)c3c(Nc4ccc(F)cc4O[C@H](C)C(=O)NCC(F)(F)F)ncnc3c1)C2"
Chem.MolFromSmiles(smiles)
# Decompose into scaffold
from novana.api import scaffold_from_smiles
scaffold_from_smiles(smiles)
# Decompose into shape
from novana.api import shape_from_smiles
shape_from_smiles(smiles)
# Molecule, scaffold, and shape can also be obtained efficiently in one run
# (This function can be particularly useful for processing large sets)
from novana.api import molecule_scaffold_shape_from_smiles
mol, sfl, shp = molecule_scaffold_shape_from_smiles(smiles)
License
Distributed under the terms of the MIT license
. Novana is free and open-source software.
For developers
- The package can be installed from the wheel in the
dist/
folder. When a new version needs to be released, a new wheel must be built. That can be done by changing the version of the package insidesetup.py
then callingpython setup.py bdist_wheel
andpython setup.py sdist
which will create a new build. - The code can be automatically tested using
python setup.py test
which requirespytest
to be installed - The
Makefile
can also be used for building (make build
) or testing (make test
) - Before committing new code, please always check that the formatting is consistent using
flake8
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.