RDKit Chemistry Toolkit: Molecule Images, Properties & Search avatar

RDKit Chemistry Toolkit: Molecule Images, Properties & Search

Pricing

Pay per event

Go to Apify Store
RDKit Chemistry Toolkit: Molecule Images, Properties & Search

RDKit Chemistry Toolkit: Molecule Images, Properties & Search

Give molecules as SMILES, InChI or names (caffeine, IUPAC, read offline): get molecular weight, logP, TPSA, Lipinski and other drug-likeness rules, PAINS alerts, 2D images, 3D structures (SDF), fingerprints, similarity and substructure search. Built on RDKit, for chemists and AI agents.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Jumble Mog

Jumble Mog

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

Cheminformatics without installing anything. Give molecules as SMILES, InChI, Molfiles or plain names (caffeine, vitamin C, 2-acetyloxybenzoic acid) and get back canonical SMILES, InChI and InChIKey, molecular weight, logP, TPSA and 20 more properties, Lipinski's rule of five and eight other drug-likeness rules, PAINS and Brenk structural alerts, clean 2D structure images, 3D structures for docking, fingerprints, Tanimoto similarity and substructure search. Everything is computed with RDKit, the open-source toolkit used across the pharmaceutical industry, and names are read offline, so no compound you send ever leaves the run. One molecule or 100,000, from people, spreadsheets, automations and AI agents.

Eight molecules drawn by this Actor, each with its name, formula, molecular weight, logP, TPSA, QED and Lipinski result: aspirin, caffeine, ibuprofen with its carboxylic acid highlighted, morphine, penicillin G with its beta-lactam ring highlighted, imatinib, testosterone and quinine

What it does

  • Reads molecules as SMILES, InChI, Molfiles (V2000 and V3000) or names. Names are looked up in a built-in list of over 700 common names, abbreviations and formulas (aspirin, paracetamol, atorvastatin, sucrose, testosterone, DMSO, H2O...), and anything else goes to OPSIN, the IUPAC name parser from the University of Cambridge, running inside the Actor. The built-in list comes from OPSIN too, plus over 100 drugs and natural products OPSIN doesn't know, each added only when two independent sources (its SMILES and its systematic name or InChIKey) agreed on the structure.
  • Identifiers: canonical isomeric SMILES, standard InChI and InChIKey, molecular formula. Duplicates in a batch are flagged.
  • Properties: molecular weight, exact mass, logP (Wildman-Crippen), molar refractivity, TPSA, H-bond donors and acceptors, rotatable bonds, rings, aromatic rings, heteroatoms, Fsp3, stereocenters (and how many are unspecified), formal charge, QED drug-likeness, synthetic accessibility score, natural-product likeness and the Bemis-Murcko scaffold.
  • Drug-likeness rules: Lipinski's rule of five, Veber, Ghose, Egan, Muegge, lead-likeness, the rule of three for fragments, GSK 4/400 and Pfizer 3/75. Each says whether the molecule passes and which limits it breaks, in words (molecular weight is 534.6, limit 500).
  • Structural alerts: PAINS (pan-assay interference compounds), Brenk, NIH, ZINC and ChEMBL filter sets, listed by name.
  • 2D images: textbook-style drawings (PNG or SVG, any size), with stereo wedges, optional R/S labels, atom numbers, transparent or black-and-white backgrounds, and substructure highlighting. A grid image of the whole batch too.
  • 3D structures: coordinates with hydrogens from RDKit's ETKDG v3 method, minimized with the MMFF94 force field (UFF as a fallback), as SDF, PDB or XYZ, with up to 50 conformers per molecule sorted by energy.
  • Search and compare: substructure search with SMARTS or SMILES (with counts and highlighted matches), Tanimoto similarity to a reference molecule on Morgan fingerprints, filters that keep only matches, and a full similarity matrix as CSV.
  • For machine learning: Morgan (ECFP-like) fingerprints, MACCS keys and all 217 RDKit descriptors.
  • Clean-up: optional standardization that strips salts and solvents, neutralizes charges and picks one tautomer, reporting what changed.
  • Files in, files out: read an SDF, SMILES, CSV or text file from a link (gzipped too) or an Apify dataset, and get a combined SDF with the results as data fields, ready for ChemDraw, PyMOL, KNIME or DataWarrior.

How to use it

  1. Put molecules into Molecules, one per line: SMILES, names, InChI or whole Molfiles. Or link a file in Molecule file link.
  2. Pick what you need: properties, rules and images are on by default; turn on 3D structures, fingerprints, descriptors, a grid image or an SDF file as you like.
  3. Click Start. Each molecule becomes a row in the Output tab, with its drawing.

You can also run it through the Apify API, on a schedule, or from Make, n8n, Zapier and other integrations.

How-to examples

Each example below is a complete input, checked with a run of the Actor.

How to convert a chemical name to SMILES and InChIKey

{"molecules": ["aspirin", "caffeine", "CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"]}

Result: aspirin as CC(=O)Oc1ccccc1C(=O)O (InChIKey BSYNRYMUTXBXSQ-UHFFFAOYSA-N, C9H8O4, 180.159 g/mol, logP 1.31, TPSA 63.6), caffeine as Cn1c(=O)c2c(ncn2C)n(C)c1=O, and the ibuprofen SMILES canonicalized with its stereocenter kept. Each comes with a 2D drawing and 20 more properties.

How to check Lipinski's rule of five and drug-likeness

The same request also checks Lipinski, Veber, Ghose, Egan, Muegge and other rules, with QED and structural alerts. All three pass Lipinski here, with QED 0.55 for aspirin, 0.538 for caffeine and 0.822 for ibuprofen. A molecule that fails says which limit it breaks, in words.

How to find similar molecules (Tanimoto similarity)

{"molecules": ["ibuprofen", "naproxen", "aspirin", "paracetamol"], "similarTo": "ibuprofen", "image": false}

Result: Tanimoto similarity to ibuprofen on Morgan fingerprints: 1.0 for ibuprofen itself, 0.42 for naproxen, 0.20 for aspirin and 0.18 for paracetamol. Add minSimilarityPercent to keep only the close ones, or use fileUrl to search an SDF library.

How to let an AI agent work with molecules

Add this Actor to the Apify MCP server with https://mcp.apify.com/?tools=jumblemog/rdkit-chemistry-toolkit. Language models often get SMILES and molecular weights wrong, so the agent sends names or SMILES and uses the checked identifiers and properties that come back.

FAQ

Can it read chemical names? Yes: over 700 common names, abbreviations and formulas are built in, and systematic IUPAC names (2-acetyloxybenzoic acid) are read by OPSIN, all offline.

Can it make 3D structures? Yes, with RDKit's ETKDG method and an MMFF94 minimization, as SDF, PDB or XYZ, with up to 50 conformers per molecule.

Does it work on a whole compound library? Yes. Read an SDF, SMILES or CSV file from a link or an Apify dataset, and get a combined SDF back.

Can I get fingerprints for machine learning? Yes: Morgan (ECFP-like) fingerprints, MACCS keys and all 217 RDKit descriptors.

Does it work with Zapier, Make or n8n? Yes. Call the Actor with its Apify app or an HTTP request and pass the results on.

Input

FieldWhat it does
moleculesSMILES, InChI, names or Molfiles, one per entry. A SMILES followed by a space and a name keeps the name. API callers can pass objects like {"smiles": "CCO", "name": "ethanol"}.
fileUrlA public SDF, MOL, SMILES, CSV/TSV or text file (gzipped too, up to 50 MB). CSV needs a smiles, inchi, name or molecule column.
datasetId, moleculeFieldAn Apify dataset whose items hold molecules, and the field to read (found automatically when it's called smiles, inchi or name).
propertiesThe properties listed above (on by default).
druglikenessThe nine drug-likeness rules (on by default).
alertsStructural alert sets: PAINS and BRENK by default, also NIH, ZINC and CHEMBL. Empty to skip.
standardizenone (default), salts (remove salts and solvents, neutralize) or full (also the canonical tautomer).
fingerprints, fingerprintRadius, fingerprintSizeMorgan fingerprint and MACCS keys as lists of set bits; radius 2 (ECFP4-like) and 2,048 bits by default.
allDescriptorsAll 217 RDKit descriptors.
image, imageFormat, imageSizeA drawing of each molecule (on by default), png or svg, 100 to 2,000 pixels (400 by default).
transparentBackground, blackAndWhite, showAtomNumbers, showStereoLabelsDrawing styles.
gridImageOne image with the first 100 molecules and their names.
substructure, onlyMatchesA SMARTS or SMILES pattern to find (and highlight), and whether to keep only the molecules that have it.
similarTo, minSimilarityPercentA molecule (SMILES or name) to compare with, and the minimum similarity to keep (0 to 100).
similarityMatrixTanimoto similarity between every pair of the first 1,000 molecules, as CSV.
structure3d, structureFormat, conformers3D structures as sdf (default), pdb or xyz, with 1 to 50 conformers.
sdfFileOne SDF file with every molecule and its main results as data fields.

Properties, rules and images for a few molecules:

{"molecules": ["aspirin", "caffeine", "CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"]}

A similarity search over a file, keeping molecules at least 60% similar to imatinib:

{
"fileUrl": "https://example.com/library.sdf",
"similarTo": "imatinib",
"minSimilarityPercent": 60,
"properties": false,
"druglikeness": false,
"image": false
}

3D structures for docking, three conformers each, as one SDF:

{"molecules": ["ibuprofen", "naproxen"], "structure3d": true, "conformers": 3, "image": false}

Output

Each molecule becomes one dataset item:

{
"index": 1,
"input": "aspirin",
"name": "aspirin",
"inputType": "name",
"valid": true,
"error": null,
"smiles": "CC(=O)Oc1ccccc1C(=O)O",
"inchi": "InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)",
"inchiKey": "BSYNRYMUTXBXSQ-UHFFFAOYSA-N",
"formula": "C9H8O4",
"molecularWeight": 180.159,
"exactMass": 180.04226,
"heavyAtoms": 13,
"atoms": 21,
"formalCharge": 0,
"logP": 1.31,
"molarRefractivity": 44.71,
"tpsa": 63.6,
"hBondDonors": 1,
"hBondAcceptors": 3,
"rotatableBonds": 2,
"rings": 1,
"aromaticRings": 1,
"heteroatoms": 4,
"fractionCsp3": 0.111,
"stereocenters": 0,
"unspecifiedStereocenters": 0,
"qed": 0.55,
"syntheticAccessibility": 1.58,
"naturalProductLikeness": 0.12,
"scaffold": "c1ccccc1",
"passesLipinski": true,
"lipinskiViolations": 0,
"druglikeness": {
"lipinski": {"passes": true, "violations": []},
"veber": {"passes": true, "violations": []},
"muegge": {"passes": false, "violations": ["molecular weight is 180.159, limit 200 to 600"]},
"...": "ghose, egan, leadLike, ruleOfThree, gsk4400, pfizer375"
},
"alertCount": 1,
"alerts": [{"catalog": "BRENK", "set": "Brenk", "alert": "phenol_ester"}],
"imageUrl": "https://api.apify.com/v2/key-value-stores/.../records/molecule-00001.png",
"duplicateOf": null
}
FieldWhat it holds
valid, errorWhether the molecule could be read, and if not, why in plain words: Not valid SMILES: a ring is opened but never closed, Atom 1 (N) has 5 bonds, more than N allows, 'C6H12O6' looks like a molecular formula....
smiles, inchi, inchiKey, formulaIdentifiers of the molecule (after standardization, when it's on).
molecularWeight ... scaffoldThe properties. hBondDonors and hBondAcceptors use RDKit's definitions; the Lipinski rule uses Lipinski's own (NH + OH, N + O).
passesLipinski, lipinskiViolations, druglikenessThe rule of five at a glance, and every rule with the limits broken.
alertCount, alertsStructural alerts that match.
substructureMatch, substructureMatches, similaritySearch results, when asked for.
morganFingerprint, maccsKeys, descriptorsMachine-learning features, when asked for.
structure3dUrl, conformers, forceField, energyThe 3D file and its lowest energy in kcal/mol, when asked for.
imageUrlA public link to the drawing.
originalSmiles, standardizationWith standardization: the molecule before clean-up and what changed.
duplicateOfThe index of an earlier molecule in the run with the same InChIKey.
fieldsThe other columns of a CSV row, the data fields of an SDF record or the rest of a dataset item, so results can be joined back.

The run's OUTPUT record holds up to 1,000 results (most similar first when comparing), plus gridImageUrl, similarityMatrixUrl and sdfFileUrl when those were asked for, so the run-sync API endpoint returns everything in one response. Images and files live in the run's key-value store; download them within your plan's data retention period.

Pricing

You pay per molecule in the results, at the price shown on this page. Molecules that can't be read, names that aren't recognized and molecules left out by the substructure or similarity filters are never charged. Grid images, similarity matrices and SDF files cost nothing extra. If you set a maximum cost per run, the Actor stops when the next molecule wouldn't fit.

Speed

Measured on Apify with the default 2 GB of memory: a run with a few molecules returns in about 6 seconds through the run-sync API, most of it the run starting up, and 1,000 molecules with properties, rules, alerts and an image each take about 30 seconds of processing. 3D structures take longer, from a fraction of a second for small molecules to a few seconds for big flexible ones with many conformers. Send many molecules in one run when you can.

Tips and limits

  • Names: common names, abbreviations (DMSO, THF, EDTA, GABA), simple formulas (H2O, CO2, NaCl) and systematic IUPAC names work. Brand names, mixtures, peptides written as sequences, proteins and polymers don't; use a SMILES for those. Names are never looked up online, because PubChem and similar services don't allow automated lookups in their robots.txt.
  • Plain molecular formulas like C6H12O6 aren't turned into structures, because one formula fits many molecules.
  • Stereochemistry is kept as given. Names and SMILES without it give molecules with unspecified stereocenters, counted in unspecifiedStereocenters.
  • 3D structures are for molecules up to 200 heavy atoms; each has a time limit, so very flexible molecules with many conformers may need fewer conformers.
  • Molecules up to 1,000 heavy atoms are read; batches up to 100,000 molecules per run.
  • Each molecule is processed in a separate, unprivileged process with a memory cap and a time limit, so one bad molecule can't stop the rest of the run.
  • Computed values are estimates from established methods (Wildman-Crippen logP, Ertl's TPSA and SA score, Bickerton's QED). They are good for ranking and filtering, not a replacement for measured data.

For AI agents and developers

Language models often get SMILES, molecular weights and formulas subtly wrong. This Actor is the chemistry tool they can call: it works with the Apify MCP server, so agents can use it as a tool. Pass names or SMILES in molecules and read the results; imageUrl gives a drawing to show the user. For a direct API call that waits for the answer:

curl -X POST "https://api.apify.com/v2/acts/jumblemog~rdkit-chemistry-toolkit/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"molecules": ["caffeine"]}'

Or get every result of a batch, with the grid image and similarity matrix links, in one JSON response with run-sync, which returns the run's OUTPUT:

curl -X POST "https://api.apify.com/v2/acts/jumblemog~rdkit-chemistry-toolkit/run-sync?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"molecules": ["aspirin", "ibuprofen", "naproxen", "diclofenac"], "similarTo": "aspirin", "gridImage": true}'

Credits

  • Built on RDKit (BSD-3-Clause), including the SA score (Ertl and Schuffenhauer) and NP-likeness (Ertl et al.) models from its Contrib folder, and OPSIN (MIT) by Daniel Lowe, running on OpenJDK.
  • Structural alert sets as distributed with RDKit: PAINS (Baell and Holloway, 2010), Brenk et al. (2008), NIH (Jadhav et al.), ZINC and the ChEMBL rule sets.
  • This Actor isn't affiliated with the RDKit project, the University of Cambridge, PubChem or ChEMBL.