Your first PK/PD study
End-to-end: schema → animals → samples → analysis.
This tutorial walks an end-to-end Dalea workflow using a realistic mouse pharmacokinetics study: schema design → in-vivo phase → bioanalysis → reporting. Plan for ~15 minutes working through it with a free workspace open.
The in-app Learn hub at dalea.app/learn walks you through the UI step by step, with overlays pointing at the actual buttons. Its branches cover building a data model, documenting work, inventory, reviews, planning and more, ordered by the role you picked at sign-up. The tutorial below is the longer reference companion: a narrative end-to-end study that goes deeper than a click-along can.
The study we'll model: DLA-7, a hypothetical small-molecule kinase inhibitor. Single oral dose at 3, 10 and 30 mg/kg in C57BL/6 females, plus a vehicle control. Plasma collected at 15 min, 1 h, 4 h and 24 h. Analyte is parent compound by LC-MS/MS; secondary readout is plasma IFN-γ by ELISA.
A PK/PD study touches every part of Dalea: an authored protocol, a multi-table data schema, two recording modalities (LC-MS and ELISA), inventory checkout and return, and a final summary document. If this fits your lab in 15 minutes, anything will.
Phase 1: Schema design
Build the schema described in Designing an environment.
- Create the environment
Sidebar → Data → New environment. The modal asks for a name, an icon and an optional description; call it
In-vivo PK. The audit reason comes later, when you commit the schema you are about to draft. - Add the four entity tables
In order: Test articles, Study groups, Animals, Plasma samples. Use the column lists from Designing an environment.
- Add the PK results result table
Dimensions:
animal,timepoint_h. Measurements:concentration_ug_ml,auc_0_24,cmax,tmax.
Phase 2: Pre-study setup
- Register the test article
Data → Test articles → Add Record. Name:
DLA-7, modalitysmall-molecule, lotDLA-7-2025-04. Dalea stamps the row from the table's Record Name Pattern: withTA-{###}that isTA-001. - Define the four study groups
Vehicle, 3 mg/kg, 10 mg/kg, 30 mg/kg. Route is
PO. Each references the test article (vehicle references a placeholder "vehicle only" article). - Register 24 animals
Put the 24 rows of sex, strain, baseline weight and study group in a CSV, six animals per group, and drop the file anywhere in the app. In the Import into Dalea wizard choose Import into data model, pick the
In-vivo PKenvironment, then let the AI draft the mapping or map the columns yourself. Point the study-group column at the study groups table and pick the column its values should match. Dry run first: the min/max rule on weight (15 to 35 g) fails the typos before anything is written. Commit, and Dalea mints ANM-001 to ANM-024. - Inventory check-out
Inventory → Containers → freezer L-204 → cryobox B-12. Click the antibody aliquot for your IFN-γ ELISA to open its drawer, then Check out in the footer. Checkout records custody: who took it, when, and out of which container and position. It clears the placement but leaves the quantity alone; the item now sits in the Item Tray, the dropdown in the inventory header, from where you drag it back onto a slot when you are done. Drawing the volume down is a separate step: with the item checked out, Log Usage is enabled on its quantity, and it asks for the amount and a reason.
Phase 3: Author the protocol
Create a document in your workspace called DLA-7 Protocol. A
protocol is an ordinary Dalea document: there is no protocol block type, so you
structure it with headings and Section blocks, one section per stage. What
makes it more than prose is the blocks that do real work:
- an Inventory Operation block wherever the run touches material. Pick the exact items, preview the change, and commit it atomically; the operation types are place, checkout, return, move, consume, adjust and create container.
- a Registration Table bound to
Plasma samples, so collecting a tube is a row you register rather than a line you type. - a Timeline block for the dosing and collection schedule. Its work items are real calendar events, and inside the block you switch between Gantt, list and kanban views (To do, In progress, Blocked, Done).
Save the finished document as a template in the "protocol" category and the next study starts from it.
The protocol document serves three purposes:
- a runbook the operator follows during the in-vivo phase
- a search target ("when did we last anaesthetise with isoflurane at 4%?")
- a regulatory artefact, version-pinned and signed at study close
Phase 4: Run the in-vivo phase
This is the part Dalea can't do for you. With the protocol open:
- Work the Timeline block as the day goes: drag each collection to done.
- Register a
Plasma samplerow for each tube as you collect it (or fill the registration table and sync at the end of each timepoint). The row carries the operator and the creation timestamp, which is the record that matters later.
By the end of day 1 you have 24 animals × 4 timepoints = 96 sample rows in the
plasma samples table.
Phase 5: Bioanalysis
Run the IFN-γ ELISA following Recording results. Use the plate map below; standards in cols 1–2, blanks in col 3, QCs in col 4, samples in duplicate in cols 5–12 (4 timepoints × 2 mice per row pair):
Build that layout in a 96-Well Plate block, bound to the ELISA result table. Read the plate, then paste the OD₄₅₀ column into the block's grid view, one row per well, and click Record Results. Dalea writes one result record per filled well into a new batch.
Dalea stores the readings; it does not fit curves. Fit the standards in a Python block in the same document, or in the AI assistant's sandbox, and bring the back-calculated concentrations back as their own result import.
Repeat for the LC-MS run for parent compound. Each plate or instrument run becomes one result batch. There is nothing to close: a batch stays active until a successor supersedes it, which is what re-recording the same plate does.
Phase 6: Reporting
Now the payoff. Create a document called DLA-7 PK summary. A chart
reads another block in the same document, never a saved query directly, so build
it in two steps: add a Lookup Table block pointed at a saved query that
returns
mean concentration grouped by
timepoint_handstudy_group
then add a Chart block and set its Data Source to that lookup table. Chart type Line, aggregation Mean, Error bars ticked with SEM.
You get a publication-grade time-course in seconds:
Add a second chart block for IFN-γ kinetics. The per-animal AUC, Cmax and Tmax
are not something Dalea computes: work them out in R, or in Python in the
assistant's sandbox, then import the output as a new result batch into the PK
results table, where the auc_0_24, cmax and tmax measurements are already
waiting. A second lookup table over a saved query on that table lists them per
animal. Finish with a Section or a blockquote summarising the study
disposition (n animals, n samples, n unscheduled deaths).
Anyone in the workspace can open the document; the lookup tables re-run their saved queries and the charts follow them, so both stay current as results land.
What you've built
In ~15 minutes you've gone from an empty workspace to:
- a versioned, queryable schema for in-vivo PK
- 24 animals, 96 samples, ~96 LC-MS measurements, ~96 ELISA measurements
- a protocol document whose inventory operations and registrations carry the operator and the timestamp
- a live study-summary document publishing PK and PD readouts
Multiply that across studies and you can see why structured-from-day-one is worth the upfront discipline.