Guide · Agent skill
How to use the PK/PD Modeling Assistant agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The pkpd-modeling skill is a packaged set of instructions, reference notes, templates and Python scripts that teaches an AI agent how to handle pharmacokinetic (PK) and pharmacodynamic (PD) problems. It is written for students, researchers and modellers who have concentration-time data and want a scripted, assumption-documented first pass. After this guide you will know how to install the skill, how to phrase requests so it triggers, what it needs to run, and where its limits are.
Quick start
- 1Download the ZIP. Download the skill ZIP from the item page and keep the folder name pkpd-modeling.
- 2Place the skill folder. Unzip it into ~/.claude/skills/ for all projects, or into .claude/skills/ inside one project. Alternatively, upload it under Settings → Capabilities → Skills in the Claude apps.
- 3Prepare an isolated Python environment. Install Python 3.12 or newer with NumPy 2 or newer and SciPy. No network access is needed at runtime.
- 4Ask a natural question. Describe your data, dose, route and units, and name the quantity you need, such as AUC, Cmax or half-life.
- 5Review findings and assumptions. Read the stderr notes and the exit code, and check the selected terminal phase, extrapolation percentage and BLQ rule before using any number.
What an agent skill is and what this one does
An agent skill is a folder of instructions and supporting files that an AI agent can read when a task matches it. This skill's main file, SKILL.md, describes a workflow for PK/PD work: checking units and definitions, computing exposure measures such as AUC, Cmax and half-life from concentration-time data, fitting simple individual compartmental models, and recording assumptions.
The skill also includes reference notes on topics such as non-compartmental analysis conventions, bioequivalence, population PK, PK/PD and exposure-response, drug-drug interactions and antimicrobial PK/PD, plus two templates: an NCA reporting checklist and a population PK analysis plan. It is explicitly framed as exploratory. It does not give clinical dosing advice or certify regulatory submissions.
- Non-compartmental analysis (NCA) with AUC, Cmax, lambda_z and clearance-type outputs
- Individual 1-, 2- and 3-compartment model fitting, with comparison by AIC and BIC
- Population PK dataset checks for NONMEM-style data
- Reporting checklists and analysis-plan templates
Install the skill from the ZIP download
Download the skill ZIP from the item page. Then choose one of two routes. For a personal setup that applies to all your projects, unzip the download into ~/.claude/skills/. For a single project, unzip it into that project's .claude/skills/ folder. Either way, the folder should be named pkpd-modeling so the agent can find SKILL.md inside it.
If you use the Claude apps rather than a local folder, you can instead upload the skill under Settings → Capabilities → Skills.
- Personal install: ~/.claude/skills/ (available across projects)
- Project install: .claude/skills/ inside your project folder
- App install: Settings → Capabilities → Skills, then upload
Install the Python requirements for the scripts
The scripts need Python 3.12 or newer, NumPy 2 or newer, and SciPy. The skill's compatibility notes say it needs no network access and no proprietary software at runtime. Use an isolated environment for these packages. Commands in the skill are run from the scripts folder inside the skill.
- Python 3.12 or newer
- NumPy 2 or newer
- SciPy
- No network access and no proprietary engine needed at runtime
cd skills/pkpd-modeling/scriptsHow to trigger the skill with natural requests
You do not need to name the skill. The agent is more likely to load it when your request uses the terms the skill is written around. Useful trigger terms include pharmacokinetics, NCA, AUC, Cmax, half-life, clearance, volume of distribution, compartmental model, popPK, exposure-response, bioequivalence, DDI and therapeutic drug monitoring.
Be specific about your data and goal. State the dose, route, units and what you want computed. The skill expects you to record units and definitions first, so include them in your request.
- "Run an NCA on this concentration-time file. Dose 100 mg, oral, report AUC0-24 and lambda_z half-life."
- "Fit 1, 2 and 3 compartment IV bolus models to these data and compare AIC and BIC."
- "Check this popPK dataset for NONMEM-style ordering problems before I fit it."
- "Draft a population PK analysis plan for a bioequivalence study, with the intended use stated."
Run the non-compartmental analysis script
For NCA, the main script reads a CSV with the columns id, time and conc (id is optional). Optional columns include dose, tau, tinf and blq. The script accepts a route flag and can report partial AUC between chosen times. Output goes to stdout as a table, TSV or JSON, and notes go to stderr.
Check the script's findings even when it exits cleanly. Exit code 0 means no findings, 1 means findings, and 2 means invalid input. Terminal-phase fits, extrapolation percentage and BLQ handling all change the answer, so the skill asks the agent to record those choices.
- Times must be non-negative and distinct within each profile
- BLQ handling is one global rule: zero, half-lloq or missing
- Choose the AUC method: linear, linup-logdown or log
- Automatic lambda_z selection is not the same as Phoenix Best Fit
python3 nca.py -i profile.csv --dose 100 --route extravascular --partial-auc 0-24Know what the skill will not do
The skill is built with several limits, and they matter for how you use the output. Its individual fitting is not nonlinear mixed-effects (NLME) population estimation. Its outputs are not clinical evidence and it does not recommend patient doses. Analytical checks and synthetic tests confirm numerical behaviour only, not model validity in a patient population.
Because the skill runs local scripts, review them before use in a shared environment, as you would with any code an agent executes.
- Not for patient-specific dosing decisions
- Not for regulatory submissions; results need validation by qualified specialists
- Not for production population PK estimation; fitting is individual-only
- Estimation tools such as NONMEM, Monolix, Phoenix and Simcyp are licensed separately and are never called by these scripts
What people use it for
- Teaching NCA and compartmental modelling to pharmacology students using a scripted, reproducible workflow
- Producing a first-pass exposure summary (AUC, Cmax, half-life, clearance) from a research concentration-time dataset
- Screening a NONMEM-style population dataset for ordering and dose-record problems before fitting in licensed software
- Drafting a population PK, PK/PD or bioequivalence analysis plan using the bundled template, with the intended use written down first
Frequently asked questions
How do I install the pkpd-modeling skill?
Download the ZIP from the item page and unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps, you can instead upload it under Settings → Capabilities → Skills.
What do I need to run the pkpd-modeling scripts?
You need Python 3.12 or newer, NumPy 2 or newer and SciPy. The skill's compatibility notes say it needs no network access and no proprietary software at runtime.
Is the pkpd-modeling skill free and what is its licence?
The skill is listed under the MIT licence. The licence applies to the skill files, and the commercial estimation tools it mentions, such as NONMEM and Monolix, are licensed separately and are not invoked by the scripts.
Can I use this skill for patient dosing decisions?
No. The skill states that it does not recommend patient doses and that its outputs are not clinical evidence. It is designed for exploratory analysis and documented assumptions.
Does the skill replace NONMEM, Monolix or Phoenix?
No. The bundled fitting is individual-only and is not NLME estimation. The skill is best used to prepare and check analyses before using licensed software for production population PK work.
Why does my NCA lambda_z differ from Phoenix?
The helper's automatic lambda_z selection is not Phoenix Best Fit. It extends backwards from at least three positive, non-BLQ points after Tmax, and it keeps a longer window only when adjusted R² improves by more than 0.0001. Check the selected window in the output and the notes.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use this skill if you are learning NCA or compartmental modelling, or want a scripted, assumption-documented first pass on concentration-time data. Pick a different tool for patient dosing, regulatory submissions or production population PK estimation, where licensed software and qualified specialists are needed.
Download the skill