Hypothesis strategies for RDKit
Project description
hypothesis-rdkit
A strategy to generate random molecules for the hypothesis testing framework. It uses a collection of fragments generated from the ChEMBL database to construct plausible molecular graphs. The fragments were mined using the BRICS method.
Installation
pip install -U hypothesis-rdkit
# or
conda install -c conda-forge hypothesis-rdkit
Usage
The module hypothesis-rdkit
provides a strategy for generating RDKit
molecules. During the installation of the package, this strategy is linked to the
rdkit.Chem.Mol
type:
from hypothesis import given
from rdkit.Chem import Mol
@given(...)
def test_molecule_method(mol : Mol):
# mol is a randomly generated molecule
assert mol.GetNumAtoms() > 0
You can use the mols
strategy directly for further customization:
from hypothesis import given
from hypothesis_rdkit import mols
from rdkit.Chem import GetMolFrags, Mol
from rdkit.Chem.rdMolDescriptors import CalcNumRotatableBonds
@given(mols(n_connected_components=2, max_rotatable_bonds=5, n_conformers=10))
def test_molecule_mixtures(mol : Mol):
frags = GetMolFrags(mol, asMols=True)
assert len(frags) == 2
for frag in frags:
assert CalcNumRotatableBonds(frag) <= 5
assert mol.GetNumConformers() <= 10
There are also strategies to generate molecules in SMILES, mol block or InChI
representation accepting the same parameters as mols
:
from hypothesis import given
from hypothesis_rdkit import smiles, mol_blocks, inchis
from rdkit.Chem import MolFromSmiles, MolFromMolBlock, MolFromInchi
@given(smiles())
def test_smiles(smiles : str):
mol = MolFromSmiles(smiles)
assert mol is not None and mol.GetNumAtoms() > 0
@given(mol_blocks())
def test_mol_block(mol_block : str):
mol = MolFromMolBlock(mol_block)
assert mol is not None and mol.GetNumAtoms() > 0
@given(inchis())
def test_inchi(inchi : str):
mol = MolFromInchi(inchi)
assert mol is not None and mol.GetNumAtoms() > 0
Development
All fragment files are generated during a test run (pytest
) in the user data
directory. On Linux, this is ~/.local/share/hypothesis_rdkit/{version}/.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hypothesis-rdkit-0.6.1.tar.gz
.
File metadata
- Download URL: hypothesis-rdkit-0.6.1.tar.gz
- Upload date:
- Size: 50.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82e873915f32519cb0170a7c6cc89543380ba898262e82829f49b6113480da17 |
|
MD5 | 085b3fefb82f04d99b3a012337122870 |
|
BLAKE2b-256 | c247c0a0b53f10422c5f46dc66c99bbd812ae41dbd1dc0c0d11cf9346a82c815 |
File details
Details for the file hypothesis_rdkit-0.6.1-py3-none-any.whl
.
File metadata
- Download URL: hypothesis_rdkit-0.6.1-py3-none-any.whl
- Upload date:
- Size: 51.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b7fbc47ffad2bdbd2df382888acce0f3013d3ccd16f69facf4c7336eade1aaa |
|
MD5 | 9f027778398168ffcb91cff704cfd84f |
|
BLAKE2b-256 | 187fd0cdbe909270fb378b5e454660215ad5585f0c2285e12019a0a5e9ac17af |