smithery.ai

neurojax_drug_response

Recover dose-response curves using SINDy with control inputs.

Installation

$ npx skills add https://smithery.ai

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,192 B
  • docs SUMMARY.md 91 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Skill: Pharmacodynamics & Dose-Response Recovery

Context

You are analyzing drug effects (e.g., Anticonvulsants, Psychedelics) on neural activity. Your goal is to reverse-engineer the "Effect Function" $E(C)$ from the dynamical changes observed in the EEG.

Strategy

We assume the brain dynamics obey $\dot{x} = A x + B(u) x$, where $u$ is the Drug Concentration (proxy) or Dose. We use SINDy with control inputs to identify the structure of $B(u)$.

Pipeline steps

1. Data Setup

  • Dataset: Mendeley Pharmaco-EEG (Rat) or PsiConnect.
  • Input:

- $x(t)$: Neural features (e.g., Total Power, Complexity/Entropy). - $u(t)$: Drug concentration curve (often modeled as a simple decay $u(t) = D_0 e^{-kt}$ if blood samples unavailable).

2. SINDy with Control

  • Model: $\dot{x} \approx \Theta(x, u) \Xi$.
  • Library: Include interaction terms between state and drug: $x$, $u$, $x \cdot u$, $x \cdot \frac{u}{K+u}$ (Michaelis-Menten).
  • Execution:

``python # Custom library required for Michaelis-Menten terms def drug_library(x, u): linear = jnp.concatenate([x, u], axis=1) interaction = x u saturation = x (u / (1.0 + u)) # Test Emax hypothesis return jnp.concatenate([linear, interaction, saturation], axis=1) ``

  • Use neurojax.dynamics.SINDyOptimizer with this custom library.

3. Verification

  • Coefficient Analysis:

- If the term $x \cdot u$ is sparse/zero but $x \cdot \frac{u}{K+u}$ is active, we have "discovered" a saturating receptor occupancy model. - If $x \cdot u$ is active, it's a linear effect (low dose range).

  • Simulation: forward simulate the discovered ODE with a new dose protocol and verify prediction against a held-out subject/dose.

Critical Instructions

  • Proxy Concentration: If blood concentration is unknown, explicitly state the assumed Pharmacokinetics (PK) model (e.g., 1-compartment bolus).
  • Group Level: Ideally fit a "Mixed Effects" SINDy where coefficients are shared across subjects, but this is advanced. Start with subject-level fits.