Cactus cheminformatics guide
🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.
npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill cactus-cheminformatics-guideAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
PNNL cheminformatics LLM agent for molecular analysis
SKILL.md
2.5 KB, as published. Nobody here has run it
CACTUS Cheminformatics Agent Guide
Overview
CACTUS is a cheminformatics LLM agent developed at Pacific Northwest National Laboratory (PNNL) that provides AI-assisted molecular analysis, property prediction, and chemical reasoning. It wraps RDKit, molecular databases, and ML models behind a conversational interface, enabling researchers to query molecular properties, perform similarity searches, and run cheminformatics workflows using natural language.
Usage
from cactus import ChemAgent
agent = ChemAgent(llm_provider="anthropic")
# Natural language chemistry queries
result = agent.ask(
"What is the molecular weight and LogP of aspirin? "
"Is it drug-like by Lipinski's rules?"
)
print(result.answer)
# Aspirin (CC(=O)Oc1ccccc1C(=O)O):
# MW: 180.16, LogP: 1.24
# Lipinski: PASS (MW<500, LogP<5, HBD=1≤5, HBA=4≤10)
# Molecular property calculation
props = agent.calculate_properties(
smiles="CC(=O)Oc1ccccc1C(=O)O",
properties=["mw", "logp", "tpsa", "hbd", "hba", "rotatable"],
)
print(props)
Similarity Search
# Find similar molecules
similar = agent.similarity_search(
query_smiles="CC(=O)Oc1ccccc1C(=O)O", # Aspirin
database="chembl",
threshold=0.7, # Tanimoto similarity
max_results=10,
)
for mol in similar:
print(f"{mol.name}: {mol.smiles} "
f"(similarity: {mol.tanimoto:.3f})")
Substructure Analysis
# Substructure search
matches = agent.substructure_search(
pattern="c1ccccc1C(=O)O", # Benzoic acid motif
database="drugbank",
max_results=20,
)
# Functional group identification
groups = agent.identify_functional_groups(
smiles="CC(=O)Oc1ccccc1C(=O)O"
)
# ["ester", "carboxylic_acid", "aromatic_ring"]
Use Cases
- Molecular analysis: Property calculation via natural language
- Drug screening: Lipinski/Veber rule checking
- Similarity search: Find analogs in chemical databases
- Structure analysis: Substructure and functional group ID
- Chemical education: Interactive chemistry exploration