跳到正文
FunCoding

chemistry-rdkit

Computational chemistry with RDKit for molecular analysis, descriptors, fingerprints, and substructure search. Use when working with SMILES, drug discovery, or cheminformatics tasks.

Star
14,635
分类
科研
许可证
MIT
最近提交
2026年8月19日

researchclaw/skills/builtin/domain/chemistry-rdkit/SKILL.md

在 GitHub 上查看

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
  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

相似的 Skill

wiki-query

PApaperclipai/paperclip101k近 7 天新增 2,948 个 star

官方

clinical-case-report

NEnexu-io/open-design101k近 7 天新增 1,126 个 star

systematic-literature-review

BYbytedance/deer-flow84k近 7 天新增 368 个 star

academic-paper-review

BYbytedance/deer-flow84k近 7 天新增 368 个 star

directory-submissions

COcoreyhaines31/marketingskills54k近 7 天新增 958 个 star

academic-paper

IMImbad0202/academic-research-skills52k近 7 天新增 972 个 star