
Pharmacokinetic Analysis
FreePerform non-compartmental analysis for PK parameters.
Free · Opens the source repo
What Pharmacokinetic Analysis does
The Pharmacokinetic Analysis skill provides tools for conducting non-compartmental analysis (NCA) on concentration-time data obtained from drug dosing studies. This skill is specifically designed for researchers and professionals in pharmacology and drug development who need to derive key pharmacokinetic parameters such as Cmax, Tmax, AUC, half-life, clearance, volume of distribution, and absolute bioavailability. By using this skill, users can transform raw concentration-time data into meaningful pharmacokinetic insights that are crucial for understanding drug behavior in the body.
To use this skill, you will first need to prepare your concentration-time data, ensuring that all units are consistent and that you have sufficient data points to accurately define the terminal phase of the drug's concentration profile. The skill includes a Python script that can compute pharmacokinetic parameters directly from CSV files, making it versatile for different data formats. Once the data is ready, users can execute commands to compute parameters and analyze bioavailability, which is essential for comparing different formulations or dosing routes.
This skill is particularly useful in clinical pharmacology studies, where accurate measurement of drug concentrations over time is essential for evaluating drug efficacy and safety. It is also beneficial for regulatory submissions where pharmacokinetic data must be presented clearly and reliably. By automating the calculations and providing clear output, this skill helps streamline the analysis process and reduce the potential for human error in data interpretation.
When to use it
Use this skill when you have plasma or serum drug concentration data after dosing and need to derive pharmacokinetic parameters for analysis.
When not to use it
This skill is not suitable for predicting ADMET properties from chemical structures; for that, use the `tooluniverse-admet-prediction` skill.
What you can build with it
Clinical Pharmacology Studies
Use this skill to analyze drug concentration data from clinical trials, deriving essential PK parameters for regulatory submissions.
Comparative Bioavailability Studies
Employ this skill to compute and compare bioavailability between different formulations or dosing routes using measured concentration data.
Pharmacokinetic Research
Utilize this skill in pharmacokinetic research to quickly analyze concentration-time data and interpret the resulting pharmacokinetic parameters.
How to install Pharmacokinetic Analysis
View source1. Install with the skills CLI
npx skills add mims-harvard/tooluniverse/tooluniverse-pharmacokinetics --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by mims-harvardPharmacokinetic (PK) Analysis — Non-Compartmental Analysis
Turn a concentration-vs-time profile after a dose into the standard PK parameters, and compute bioavailability from IV + oral data. Non-compartmental analysis (NCA) is the model-independent workhorse used for most PK reporting.
When to use this
- You have measured plasma/serum (or other matrix) drug concentrations at known times after a dose.
- You need Cmax/Tmax/AUC/half-life/clearance/Vd, or absolute bioavailability F.
- Comparing exposure (AUC, Cmax) between formulations, doses, or routes.
This is measured-data PK. For predicting ADMET properties from a chemical structure, use tooluniverse-admet-prediction.
Step 1 — Prepare the concentration-time data
| Issue | What to do |
|---|---|
| Units — be consistent | One time unit (h), one concentration unit (mg/L or ng/mL), one dose unit (mg). Pass them as time_unit/conc_unit/dose_unit. CL and Vd come back in derived units (e.g. L/h, L). |
| Route matters | Set route to iv or po/oral. CL and Vd are only directly interpretable for IV data; from oral data they are apparent (CL/F, Vd/F) because absorption is incomplete. |
| Include t=0 | For IV bolus include the t=0 (back-extrapolated) point; for oral the pre-dose value is usually 0. |
| BLQ (below limit of quantification) | Leading BLQs before the first measurable → treat as 0; BLQs in the terminal tail → drop them (don't set to 0, it corrupts the terminal slope). |
| Sampling design | You need enough late points to define the terminal phase (≥3 points clearly in the log-linear decline) or the half-life and AUC0-∞ are unreliable. |
| Single vs multiple dose | NCA here assumes a single dose. For steady-state, analyze one dosing interval (AUC0-τ) and say so. |
Step 2 — Run NCA
tu run NCA_compute_parameters '{
"times":[0,0.5,1,2,4,8,12,24],
"concentrations":[0,2.5,4.8,6.1,4.2,2.1,1.0,0.2],
"dose":100, "route":"iv",
"dose_unit":"mg", "conc_unit":"mg/L", "time_unit":"h"}'
Returns Cmax, Tmax, Clast, Tlast, AUC0_last, AUC0-inf, AUC_extrapolation_pct, lambda_z, t_half, r_squared_terminal_fit, clearance_CL, volume_distribution_Vd, MRT_iv, with a units block. AUC uses the FDA/EMA linear-up / log-down trapezoidal method.
For a CSV profile (with BLQ handling), scripts/nca_from_csv.py computes the same parameters locally.
Other tools:
NCA_fit_one_compartment— fit a 1-compartment model (k, V, CL) when you want a parametric model instead of NCA.NCA_calculate_bioavailability— absolute F fromauc_po,dose_po,auc_iv,dose_iv(see Step 4).
Step 3 — Interpret the parameters
| Parameter | Meaning | Notes / sanity |
|---|---|---|
| Cmax / Tmax | Peak concentration & time to peak — absorption rate/extent. | For IV bolus Cmax is at t=0; a later Tmax means absorption (oral) or distribution. |
| AUC0-t / AUC0-∞ | Total exposure (area under the curve). The key exposure metric. | AUC0-∞ extrapolates the tail using Clast/lambda_z. |
| AUC_extrapolation_pct | % of AUC0-∞ that was extrapolated beyond the last point. | >20% → AUC0-∞ (and anything derived from it) is unreliable; report AUC0-last instead and note insufficient sampling. |
| lambda_z / t_half | Terminal elimination rate constant and half-life. | Trust only if r_squared_terminal_fit ≥ ~0.95 and ≥3 terminal points were used. |
| CL (clearance) | Volume cleared per time = Dose/AUC0-∞ (IV). | From oral data this is CL/F (apparent). |
| Vd | Volume of distribution = CL/lambda_z (IV). | From oral data this is Vd/F (apparent). |
| MRT | Mean residence time. | Longer MRT = slower overall elimination. |
Step 4 — Absolute bioavailability (F)
F needs the same drug given both IV and orally (ideally same subjects, dose-normalized):
tu run NCA_calculate_bioavailability '{"auc_po":35.0,"dose_po":200,"auc_iv":43.4,"dose_iv":100}'
F = (AUC_po / Dose_po) / (AUC_iv / Dose_iv). Report as a fraction or %. F near 1 = well absorbed; low F = poor absorption or high first-pass metabolism. F > 1 signals a data/dosing error (recheck units and doses).
Step 5 — Quality gotchas (state these)
- Extrapolation >20% → don't report AUC0-∞/CL/Vd as reliable; the profile wasn't followed long enough.
- Bad terminal fit (
r_squared_terminal_fit< 0.9, or <3 tail points) → half-life is unreliable. - CL/Vd from oral data are apparent (CL/F, Vd/F) — never present them as true clearance/volume without IV data.
- Units drive CL/Vd — a wrong conc unit silently scales them. Always check the returned
unitsblock. - Flip-flop kinetics (absorption slower than elimination) makes the "terminal" slope reflect absorption, not elimination — suspect it when oral t½ ≫ IV t½.
Honest limitations
- NCA is model-independent and robust but gives no mechanistic structure (no separate absorption/distribution rate constants) — use
NCA_fit_one_compartmentor population PK for that. - AUC accuracy depends entirely on sampling density around Cmax and in the terminal phase.
- Single-dose assumptions; for steady state analyze one interval (AUC0-τ) and accumulation separately.
Related skills
tooluniverse-admet-prediction— predict ADME properties from structure (no measured data).tooluniverse-dose-response— IC50/EC50 potency from concentration-response (not time-course).tooluniverse-statistical-modeling— compare PK parameters across groups.
Frequently asked questions about Pharmacokinetic Analysis
Similar skills
Power BI Semantic Modeling
Optimize your Power BI data models with best practices.
Data Context Extractor
Tailor data analysis skills to your company's needs.
Power BI Performance Troubleshooting
Systematic guidance for optimizing Power BI performance.
Power BI Model Design Review
Optimize your Power BI data models with expert reviews.
Power BI DAX Formula Optimizer
Optimize your DAX formulas for better performance and clarity.
Fabric Lakehouse
Optimize your data solutions with Lakehouse best practices.
