Agent Skills
› aiming-lab/AutoResearchClaw
› chemistry-rdkit
chemistry-rdkit
GitHub提供RDKit计算化学最佳实践,涵盖分子I/O、描述符计算、指纹生成、子结构搜索及ADMET过滤等任务,辅助药物发现与化学信息学分析。
Trigger Scenarios
需要处理SMILES或SDF文件时
计算分子物理化学性质(如LogP, MW)时
进行虚拟筛选或相似性比对时
执行基于SMARTS的子结构搜索时
Install
npx skills add aiming-lab/AutoResearchClaw --skill chemistry-rdkit -g -y
SKILL.md
Frontmatter
{
"name": "chemistry-rdkit",
"metadata": {
"author": "researchclaw",
"version": "1.0",
"category": "domain",
"priority": "4",
"references": "adapted from K-Dense-AI\/claude-scientific-skills",
"trigger-keywords": "molecule,SMILES,chemical,drug,rdkit,fingerprint,molecular,compound,reaction,cheminformatics",
"applicable-stages": "9,10,12"
},
"description": "Computational chemistry with RDKit for molecular analysis, descriptors, fingerprints, and substructure search. Use when working with SMILES, drug discovery, or cheminformatics tasks."
}
RDKit Cheminformatics Best Practice
Molecular I/O
- Create molecules from SMILES:
mol = Chem.MolFromSmiles('CCO') - Always check for None:
MolFromSmilesreturns None on invalid input - Convert to canonical SMILES:
Chem.MolToSmiles(mol) - Read SDF files:
suppl = Chem.SDMolSupplier('file.sdf') - Read SMILES files:
suppl = Chem.SmilesMolSupplier('file.smi') - Write molecules:
writer = Chem.SDWriter('output.sdf')
Molecular Descriptors
- Molecular weight:
Descriptors.MolWt(mol) - LogP (lipophilicity):
Descriptors.MolLogP(mol) - TPSA (polar surface area):
Descriptors.TPSA(mol) - H-bond donors/acceptors:
Descriptors.NumHDonors(mol),Descriptors.NumHAcceptors(mol) - Rotatable bonds:
Descriptors.NumRotatableBonds(mol) - Lipinski Rule of 5: MW <= 500, LogP <= 5, HBD <= 5, HBA <= 10
Fingerprints and Similarity
- Morgan (circular) fingerprints:
AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048) - RDKit fingerprints:
Chem.RDKFingerprint(mol) - MACCS keys:
MACCSkeys.GenMACCSKeys(mol) - Tanimoto similarity:
DataStructs.TanimotoSimilarity(fp1, fp2) - Use radius=2 (ECFP4 equivalent) as default for most applications
- For virtual screening, Tanimoto > 0.7 suggests structural similarity
Substructure Search
- SMARTS patterns:
pattern = Chem.MolFromSmarts('[OH]') - Check match:
mol.HasSubstructMatch(pattern) - Get all matches:
mol.GetSubstructMatches(pattern) - Common SMARTS:
[#6](=O)[OH](carboxylic acid),[NH2](primary amine) - Filter compound libraries by functional group presence
Property Calculation Patterns
- Batch processing: iterate over SDMolSupplier, skip None entries
- Use
Chem.Descriptors.descListfor all available descriptors - For ADMET filtering, calculate Lipinski, Veber, and PAINS filters
- Generate 3D coordinates:
AllChem.EmbedMolecule(mol, AllChem.ETKDG()) - Minimize energy:
AllChem.MMFFOptimizeMolecule(mol)
Common Pitfalls
- Always sanitize molecules (default behavior) — disable only when needed
- Add hydrogens explicitly for 3D work:
Chem.AddHs(mol) - Handle stereochemistry: use
Chem.AssignStereochemistry(mol) - Large SDF files: use
ForwardSDMolSupplierfor memory efficiency - Kekulization errors usually indicate invalid SMILES input
Version History
- e2e23c9 Current 2026-07-25 07:47


