Skip to main content

Enumerate states of small organic molecules: 3D coordinates, tautomers, pH-based adjustments

Project description

Scrubber

Process large numbers of small molecules for docking with AutoDock. May be useful for structure-based modeling in general.

What happens:

  • generate 3D coordinates using RDKit's ETKDGv3 and UFF minimization
  • enumerate tautomers (aiming at low energy states only)
  • enumerate pH corrections
  • convert boats to chairs (6-member rings) and enumerate both chair states
  • enumerate chiral centers (not implemented right now)

Installation

conda activate <desired-environment>    # if you are using conda environments

git clone git@github.com:forlilab/molscrub.git
cd molscrub
pip install -e .

Depends on the RDKit, which can be installed from conda-forge in the desired environment:

conda activate <desired-environment>
conda install rdkit -c conda-forge

Python scripting

from rdkit import Chem
from molscrub import Scrub

scrub = Scrub(
    ph_low=7.4,
    ph_high=7.4,
)

mol = Chem.MolFromSmiles("Clc1c(OCCC3)c3ccc1C(=O)Nc2nc[nH]c2")

# each state (e.g. tautomer) an rdkit mol and may have multiple conformers
for mol_state in scrub(mol):
    print(Chem.MolToSmiles(mol_state), "nr conformers: %d" % mol_state.GetNumConformers())

Command line tool examples

scrub.py "c1cc[nH]c(=O)c1" -o scrubbed.sdf --ph 5 --skip_gen3d
scrub.py input_mols.sdf -o scrubbed.sdf
scrub.py input_mols.smi -o scrubbed.sdf

Other options described in the help message:

scrub.py -h

Where "input_mols.smi" can look like this:

CC(=O)O aceticacid
CN(C)C trimethylamine 
Clc1cc(O)ccc1C(=O)Nc2nc[nH]c2 hello_mol
c1cccc1 rdkit_will_cry
CCC good4bbq
CCO alsogood4bbq
c1cccnc1CC(=O)C a_ketone

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

molscrub-0.2.2.tar.gz (42.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

molscrub-0.2.2-py3-none-any.whl (63.2 kB view details)

Uploaded Python 3

File details

Details for the file molscrub-0.2.2.tar.gz.

File metadata

  • Download URL: molscrub-0.2.2.tar.gz
  • Upload date:
  • Size: 42.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for molscrub-0.2.2.tar.gz
Algorithm Hash digest
SHA256 62ae3c10fbe3e5d73156fdbcecfe625f1550606110a356855b62449b84e9e91e
MD5 875b6e929c249638fc81207332c53649
BLAKE2b-256 dc4368c5a7b81c5de8d519bf57115ad01bc26e8ece6bef0c704e691fcfde9d0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for molscrub-0.2.2.tar.gz:

Publisher: pypi-publish.yml on forlilab/molscrub

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file molscrub-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: molscrub-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 63.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for molscrub-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7591b748eb0c4774513e403ae631e5b900e9b9612f4057c9f7477cc28108804d
MD5 70a980f095fa78863ae7fba3ac469977
BLAKE2b-256 9394f15188e1e6346e1f3ba7cbeeafe0cafcac073693ad0f8ee9d935b32b6798

See more details on using hashes here.

Provenance

The following attestation bundles were made for molscrub-0.2.2-py3-none-any.whl:

Publisher: pypi-publish.yml on forlilab/molscrub

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page