PharmaClaw Pharmacology Agent

v2.0.0

Pharmacology agent for ADME/PK profiling of drug candidates from SMILES. Computes drug-likeness (Lipinski Ro5, Veber rules), QED, SA Score, ADME predictions...

1· 335·2 current·2 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
The code and SKILL.md match the stated purpose: RDKit descriptor calculations, rule-based ADME heuristics, optional ADMETlab 3.0 ML integration. However, the skill metadata declares no required binaries or env vars while the code clearly requires Python packages (rdkit, requests) and optional RDKit contrib modules (SA_Score, PAINS catalog). This omission is an inconsistency (missing dependency declarations) but not necessarily malicious.
!
Instruction Scope
The runtime instructions direct calling scripts/chain_entry.py which in turn may call scripts/admetlab3.py that performs an HTTP POST of the SMILES to ADMETlab 3.0 (https://admetlab3.scbdd.com). Transmitting SMILES to a third-party service can leak proprietary chemical structures/IP. The SKILL.md mentions ADMETlab integration (so the network call is documented) but there is no clear user warning about privacy/IP risk or an explicit opt-out to force local-only RDKit fallback.
Install Mechanism
No install spec is provided (instruction-only), which avoids arbitrary downloads, but the included code depends on heavy third-party libraries (RDKit, requests, optional RDKit contrib modules). Because these are not declared in metadata, users may run into missing-dependency failures or silently run with reduced functionality. There are no suspicious external installers or unusual download URLs in the package itself.
!
Credentials
The skill does not request credentials or environment variables, which is appropriate. However, it will transmit input SMILES over the network to a third-party API when available; that network access effectively exposes potentially sensitive data (chemical structures). From a credentials perspective this is proportional, but from a data-exposure perspective it is a material privacy/IP concern that should be made explicit to the user.
Persistence & Privilege
The skill does not request always:true, does not modify other skills or system config, and has no elevated persistence or privileges. It runs only when invoked and prints JSON to stdout; no evidence of self-installation or system-wide changes.
What to consider before installing
This skill appears to do what it says (RDKit-based ADME and optional ADMETlab API predictions), but pay attention to two things before using it: - Dependency availability: The package metadata lists no required binaries, but the scripts need Python packages (rdkit and requests) and optional RDKit contrib modules (SA_Score, PAINS). Ensure these are installed in a controlled environment before running. - Data exposure / IP risk: When ADMETlab 3.0 is reachable, the skill will POST your SMILES to https://admetlab3.scbdd.com. If your molecules are proprietary, confidential, or covered by IP restrictions, do not run this skill without either removing/patching the admetlab call (force local-only RDKit fallback) or confirming the external service's data handling/privacy terms. Consider running the tool offline (use chain_entry.py which can operate purely with RDKit if ADMETlab is unavailable) or auditing admetlab3.py to add an explicit opt-in flag to enable external queries. Also consider running the code in an isolated environment (container) and reviewing the code locally before supplying sensitive inputs. If you need help patching the script to disable network calls by default, ask and provide the preferred behavior (always-local vs explicit --use-admetlab flag).

Like a lobster shell, security has layers — review code before you run it.

latestvk97c9ymvea33qqfkkrar2z3h5d8240h6
335downloads
1stars
1versions
Updated 1mo ago
v2.0.0
MIT-0

Pharma Pharmacology Agent v2.0.0

Overview

Predictive pharmacology profiling for drug candidates. Combines ADMETlab 3.0 ML predictions (when available) with comprehensive RDKit descriptor-based models. Provides full ADME assessment, toxicity risk, druglikeness scoring, and risk flagging — all from a SMILES string.

Key capabilities:

  • Drug-likeness: Lipinski Rule of Five, Veber oral bioavailability rules
  • Scores: QED (Quantitative Estimate of Drug-likeness), SA Score (Synthetic Accessibility)
  • ADME predictions: BBB permeability, aqueous solubility (ESOL), GI absorption (Egan), CYP3A4 inhibition risk, P-glycoprotein substrate, plasma protein binding
  • Safety: PAINS (Pan-Assay Interference) filter alerts
  • Risk assessment: Automated flagging of pharmacological concerns
  • Standard chain output: JSON schema compatible with all downstream agents

Quick Start

# Profile a molecule from SMILES
exec python scripts/chain_entry.py --input-json '{"smiles": "CC(=O)Oc1ccccc1C(=O)O", "context": "user"}'

# Chain from chemistry-query output
exec python scripts/chain_entry.py --input-json '{"smiles": "<canonical_smiles>", "context": "from_chemistry"}'

Scripts

scripts/chain_entry.py

Main entry point. Accepts JSON with smiles field, returns full pharmacology profile.

Input:

{"smiles": "CN1C=NC2=C1C(=O)N(C(=O)N2C)C", "context": "user"}

Output schema:

{
  "agent": "pharma-pharmacology",
  "version": "1.1.0",
  "smiles": "<canonical>",
  "status": "success|error",
  "report": {
    "descriptors": {"mw": 194.08, "logp": -1.03, "tpsa": 61.82, "hbd": 0, "hba": 6, "rotb": 0, "arom_rings": 2, "heavy_atoms": 14, "mr": 51.2},
    "lipinski": {"pass": true, "violations": 0, "details": {...}},
    "veber": {"pass": true, "tpsa": {...}, "rotatable_bonds": {...}},
    "qed": 0.5385,
    "sa_score": 2.3,
    "adme": {
      "bbb": {"prediction": "moderate", "confidence": "medium", "rationale": "..."},
      "solubility": {"logS_estimate": -1.87, "class": "high", "rationale": "..."},
      "gi_absorption": {"prediction": "high", "rationale": "..."},
      "cyp3a4_inhibition": {"risk": "low", "rationale": "..."},
      "pgp_substrate": {"prediction": "unlikely", "rationale": "..."},
      "plasma_protein_binding": {"prediction": "moderate-low", "rationale": "..."}
    },
    "pains": {"alert": false}
  },
  "risks": [],
  "recommend_next": ["toxicology", "ip-expansion"],
  "confidence": 0.85,
  "warnings": [],
  "timestamp": "ISO8601"
}

ADME Prediction Rules

PropertyMethodThresholds
BBB permeabilityClark's rules (TPSA/logP)TPSA<60+logP 1-3 = high; TPSA<90 = moderate
SolubilityESOL approximationlogS > -2 high; > -4 moderate; else low
GI absorptionEgan egg modellogP<5.6 and TPSA<131.6 = high
CYP3A4 inhibitionRule-basedlogP>3 and MW>300 = high risk
P-gp substrateRule-basedMW>400 and HBD>2 = likely
Plasma protein bindinglogP correlationlogP>3 = high (>90%)

Chaining

This agent is designed to receive output from chemistry-query:

chemistry-query (name→SMILES+props) → pharma-pharmacology (ADME profile) → toxicology / ip-expansion

The recommend_next field always includes ["toxicology", "ip-expansion"] for pipeline continuation.

Tested With

All features verified end-to-end with RDKit 2024.03+:

MoleculeMWlogPLipinskiKey Findings
Caffeine194.08-1.03✅ Pass (0 violations)High solubility, moderate BBB, QED 0.54
Aspirin180.041.31✅ Pass (0 violations)Moderate solubility, SA 1.58 (easy), QED 0.55
Sotorasib560.234.48✅ Pass (1 violation: MW)Low solubility, CYP3A4 risk, high PPB
Metformin129.10-1.03✅ Pass (0 violations)High solubility, low BBB, QED 0.25
Invalid SMILESGraceful JSON error
Empty inputGraceful JSON error

Error Handling

  • Invalid SMILES: Returns status: "error" with descriptive warning
  • Missing input: Clear error message requesting smiles or name
  • All errors produce valid JSON (never crashes)

scripts/admetlab3.py

Enhanced ADME/Tox predictor. Attempts ADMETlab 3.0 API first, falls back to comprehensive RDKit models.

# Full ADME profile
python scripts/admetlab3.py --smiles "CC(=O)Oc1ccccc1C(=O)O"

# Specific categories
python scripts/admetlab3.py --smiles "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" --categories absorption,toxicity

Output includes:

  • Physicochemical: MW, LogP, TPSA, LogS (ESOL), solubility class, fraction CSP3, molar refractivity
  • Absorption: Lipinski, Veber, Egan, HIA, Caco-2 permeability, P-gp substrate, oral bioavailability
  • Distribution: BBB penetration (Clark model), plasma protein binding
  • Metabolism: CYP3A4 inhibition risk
  • Toxicity: hERG risk, Ames mutagenicity, DILI, structural alerts (nitro, aromatic amine)
  • Druglikeness: QED, SA Score, lead-like, drug-like classifications

Resources

  • references/api_reference.md — API and methodology references

Changelog

v2.0.0 (2026-02-18)

  • ADMETlab 3.0 integration (ML-based predictions, auto-fallback to RDKit)
  • Enhanced RDKit ADME: Caco-2 permeability, Egan model, HIA, hERG, Ames, DILI
  • Solubility via ESOL model
  • Lead-like / drug-like classification
  • Structural alerts: nitro groups, aromatic amines

v1.1.0 (2026-02-14)

  • Initial production release with full ADME profiling
  • Lipinski, Veber, QED, SA Score, PAINS
  • BBB, solubility, GI absorption, CYP3A4, P-gp, PPB predictions
  • Automated risk assessment
  • Standard chain output schema
  • Comprehensive error handling
  • End-to-end tested with diverse molecules

Comments

Loading comments...