{"id":23420,"library":"chembl-structure-pipeline","title":"ChEMBL Structure Pipeline","description":"A Python toolkit for standardizing and processing chemical structures in the ChEMBL database. Current version 1.2.4. It applies curation rules (e.g., standardization, salt stripping, charge neutralization) commonly used in ChEMBL. Release cadence is irregular, typically a few updates per year.","status":"active","version":"1.2.4","language":"python","source_language":"en","source_url":"https://github.com/ChEMBL/chembl_structure_pipeline","tags":["cheminformatics","standardization","ChEMBL","RDKit","molblock","salt stripping"],"install":[{"cmd":"pip install chembl-structure-pipeline","lang":"bash","label":"Default install"},{"cmd":"pip install chembl-structure-pipeline[rdkit]","lang":"bash","label":"With RDKit support (recommended)"}],"dependencies":[{"reason":"Required for molecule operations; the package works best with RDKit backend.","package":"rdkit","optional":true},{"reason":"Alternative backend; used if RDKit is not available.","package":"indigo","optional":true}],"imports":[{"note":"Main class for pipeline execution.","symbol":"ChEMBLStructurePipeline","correct":"from chembl_structure_pipeline import ChEMBLStructurePipeline"},{"note":"Standardize a molblock string.","symbol":"standardize_molblock","correct":"from chembl_structure_pipeline import standardize_molblock"},{"note":"Strip salts and get parent structure as molblock.","symbol":"get_parent_molblock","correct":"from chembl_structure_pipeline import get_parent_molblock"}],"quickstart":{"code":"from chembl_structure_pipeline import ChEMBLStructurePipeline\n\n# Create pipeline instance\npipeline = ChEMBLStructurePipeline()\n\n# A sample molblock (MOL format)\nmolblock = '''\n\n  ChemDraw03312216322D\n\n  0  0  0     0  0              0 V3000\nM V30 BEGIN CTAB\nM V30 COUNTS 5 4 0 0 0\nM V30 BEGIN ATOM\nM V30 1 C -1.2990 0.0000 0.0000 0\nM V30 2 C 0.0000 1.2990 0.0000 0\nM V30 3 C 1.2990 0.0000 0.0000 0\nM V30 4 C 0.0000 -1.2990 0.0000 0\nM V30 5 C 0.0000 0.0000 0.0000 0\nM V30 END ATOM\nM V30 BEGIN BOND\nM V30 1 1 1 2\nM V30 2 1 2 3\nM V30 3 1 3 4\nM V30 4 1 4 1\nM V30 END BOND\nM V30 END CTAB\nM END\n'''\n\n# Standardize the molecule\nstandardized = pipeline.standardize(molblock)\nprint(standardized)\n\n# Get parent (salt stripped)\nparent = pipeline.get_parent(molblock)\nprint(parent)","lang":"python","description":"Basic usage: create pipeline, standardize a molblock, and strip salts."},"warnings":[{"fix":"Use RDKit to convert SMILES to molblock before calling pipeline methods.","message":"The pipeline expects molblock (V3000 or V2000) strings, not SMILES. Failing to convert SMILES to molblock will cause silent failures or errors.","severity":"gotcha","affected_versions":"all"},{"fix":"Use the class-based pipeline or the module-level function if still present (but prefer new API).","message":"The function `standardize_molblock` (imported directly) is deprecated in favor of `ChEMBLStructurePipeline.standardize`.","severity":"deprecated","affected_versions":">=1.1.0"},{"fix":"Review ChEMBL curation rules; if stereochemistry must be preserved, check options in pipeline constructor.","message":"The pipeline may remove stereochemistry information during standardization. This is by design but can be surprising for chiral molecules.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install version 1.0 or later: pip install chembl-structure-pipeline>=1.0.","cause":"Older version of the library (pre-1.0) used different class names; the class was introduced in 1.0.","error":"AttributeError: module 'chembl_structure_pipeline' has no attribute 'ChEMBLStructurePipeline'"},{"fix":"Convert your SMILES to a molblock using RDKit: Chem.MolToMolBlock(Chem.MolFromSmiles(smiles)).","cause":"Input is not a valid molblock (e.g., SMILES string was passed instead).","error":"chembl_structure_pipeline.exceptions.StandardizationError: No molecules could be read from input"},{"fix":"Install RDKit: pip install rdkit-pypi or conda install -c conda-forge rdkit.","cause":"The package requires RDKit but it is not installed.","error":"ImportError: No module named 'rdkit'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}