Experiment design partner
Translate a hypothesis into an interpretable test with metrics and guardrails.
5,263,042 AI resources indexedWorking toward the world’s largest AI resource index.
Computational chemistry with RDKit for molecular analysis, descriptors, fingerprints, and substructure search. Use when working with SMILES, drug discovery, or cheminformatics tasks.
---
name: chemistry-rdkit-7cae29200713
description: Computational chemistry with RDKit for molecular analysis, descriptors, fingerprints, and substructure search. Use when working with SMILES, drug discovery, or cheminformatics tasks.
metadata:
category: domain
trigger-keywords: "molecule,SMILES,chemical,drug,rdkit,fingerprint,molecular,compound,reaction,cheminformatics"
applicable-stages: "9,10,12"
priority: "4"
version: "1.0"
author: researchclaw
references: "adapted from K-Dense-AI/claude-scientific-skills"
---
## RDKit Cheminformatics Best Practice
### Molecular I/O
1. Create molecules from SMILES: `mol = Chem.MolFromSmiles('CCO')`
2. Always check for None: `MolFromSmiles` returns None on invalid input
3. Convert to canonical SMILES: `Chem.MolToSmiles(mol)`
4. Read SDF files: `suppl = Chem.SDMolSupplier('file.sdf')`
5. Read SMILES files: `suppl = Chem.SmilesMolSupplier('file.smi')`
6. Write molecules: `writer = Chem.SDWriter('output.sdf')`
### Molecular Descriptors
1. Molecular weight: `Descriptors.MolWt(mol)`
2. LogP (lipophilicity): `Descriptors.MolLogP(mol)`
3. TPSA (polar surface area): `Descriptors.TPSA(mol)`
4. H-bond donors/acceptors: `Descriptors.NumHDonors(mol)`, `Descriptors.NumHAcceptors(mol)`
5. Rotatable bonds: `Descriptors.NumRotatableBonds(mol)`
6. Lipinski Rule of 5: MW <= 500, LogP <= 5, HBD <= 5, HBA <= 10
### Fingerprints and Similarity
1. Morgan (circular) fingerprints: `AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)`
2. RDKit fingerprints: `Chem.RDKFingerprint(mol)`
3. MACCS keys: `MACCSkeys.GenMACCSKeys(mol)`
4. Tanimoto similarity: `DataStructs.TanimotoSimilarity(fp1, fp2)`
5. Use radius=2 (ECFP4 equivalent) as default for most applications
6. For virtual screening, Tanimoto > 0.7 suggests structural similarity
### Substructure Search
1. SMARTS patterns: `pattern = Chem.MolFromSmarts('[OH]')`
2. Check match: `mol.HasSubstructMatch(pattern)`
3. Get all matches: `mol.GetSubstructMatches(pattern)`
4. Common SMARTS: `[#6](=O)[OH]` (carboxylic acid), `[NH2]` (primary amine)
5. Filter compound libraries by functional group presence
### Property Calculation Patterns
1. Batch processing: iterate over SDMolSupplier, skip None entries
2. Use `Chem.Descriptors.descList` for all available descriptors
3. For ADMET filtering, calculate Lipinski, Veber, and PAINS filters
4. Generate 3D coordinates: `AllChem.EmbedMolecule(mol, AllChem.ETKDG())`
5. Minimize energy: `AllChem.MMFFOptimizeMolecule(mol)`
### Common Pitfalls
1. Always sanitize molecules (default behavior) — disable only when needed
2. Add hydrogens explicitly for 3D work: `Chem.AddHs(mol)`
3. Handle stereochemistry: use `Chem.AssignStereochemistry(mol)`
4. Large SDF files: use `ForwardSDMolSupplier` for memory efficiency
5. Kekulization errors usually indicate invalid SMILES input
---
name: chemistry-rdkit-7cae29200713
description: Computational chemistry with RDKit for molecular analysis, descriptors, fingerprints, and substructure search. Use when working with SMILES, drug discovery, or cheminformatics tasks.
metadata:
category: domain
trigger-keywords: "molecule,SMILES,chemical,drug,rdkit,fingerprint,molecular,compound,reaction,cheminformatics"
applicable-stages: "9,10,12"
priority: "4"
version: "1.0"
author: researchclaw
references: "adapted from K-Dense-AI/claude-scientific-skills"
---
## RDKit Cheminformatics Best Practice
### Molecular I/O
1. Create molecules from SMILES: `mol = Chem.MolFromSmiles('CCO')`
2. Always check for None: `MolFromSmiles` returns None on invalid input
3. Convert to canonical SMILES: `Chem.MolToSmiles(mol)`
4. Read SDF files: `suppl = Chem.SDMolSupplier('file.sdf')`
5. Read SMILES files: `suppl = Chem.SmilesMolSupplier('file.smi')`
6. Write molecules: `writer = Chem.SDWriter('output.sdf')`
### Molecular Descriptors
1. Molecular weight: `Descriptors.MolWt(mol)`
2. LogP (lipophilicity): `Descriptors.MolLogP(mol)`
3. TPSA (polar surface area): `Descriptors.TPSA(mol)`
4. H-bond donors/acceptors: `Descriptors.NumHDonors(mol)`, `Descriptors.NumHAcceptors(mol)`
5. Rotatable bonds: `Descriptors.NumRotatableBonds(mol)`
6. Lipinski Rule of 5: MW <= 500, LogP <= 5, HBD <= 5, HBA <= 10
### Fingerprints and Similarity
1. Morgan (circular) fingerprints: `AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)`
2. RDKit fingerprints: `Chem.RDKFingerprint(mol)`
3. MACCS keys: `MACCSkeys.GenMACCSKeys(mol)`
4. Tanimoto similarity: `DataStructs.TanimotoSimilarity(fp1, fp2)`
5. Use radius=2 (ECFP4 equivalent) as default for most applications
6. For virtual screening, Tanimoto > 0.7 suggests structural similarity
### Substructure Search
1. SMARTS patterns: `pattern = Chem.MolFromSmarts('[OH]')`
2. Check match: `mol.HasSubstructMatch(pattern)`
3. Get all matches: `mol.GetSubstructMatches(pattern)`
4. Common SMARTS: `[#6](=O)[OH]` (carboxylic acid), `[NH2]` (primary amine)
5. Filter compound libraries by functional group presence
### Property Calculation Patterns
1. Batch processing: iterate over SDMolSupplier, skip None entries
2. Use `Chem.Descriptors.descList` for all available descriptors
3. For ADMET filtering, calculate Lipinski, Veber, and PAINS filters
4. Generate 3D coordinates: `AllChem.EmbedMolecule(mol, AllChem.ETKDG())`
5. Minimize energy: `AllChem.MMFFOptimizeMolecule(mol)`
### Common Pitfalls
1. Always sanitize molecules (default behavior) — disable only when needed
2. Add hydrogens explicitly for 3D work: `Chem.AddHs(mol)`
3. Handle stereochemistry: use `Chem.AssignStereochemistry(mol)`
4. Large SDF files: use `ForwardSDMolSupplier` for memory efficiency
5. Kekulization errors usually indicate invalid SMILES input
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.