A complete statistical-programming deliverable for a Phase 2, single-arm study of an investigational oral ALK inhibitor in ALK-positive advanced NSCLC. Raw CRF → 7 SDTM domains → 4 ADaM datasets → oncology TLFs → define.xml. Now interactive — run the actual analyses live against the real datasets below.




R programs run on-server (admiral, tern, rtables, r2rtf, survival), producing the reference outputs and serving as the independent cell-by-cell validator.
SAS programs (PROC SQL, PROC LIFETEST, PROC FREQ exact binomial, ODS RTF) ship as the customer-runnable deliverable — the standard for FDA submission environments.
This is a complete, end-to-end clinical-trial statistical-programming deliverable for an oncology study — the entire chain from raw collected data to the datasets and outputs a regulator reviews. It exists to demonstrate one thing clearly: the ability to independently own a full submission package, not just write isolated programs.
In a real trial, dozens of programmers and a CRO produce this over months. Here it's authored as one coherent package — every SDTM domain, every ADaM derivation, every table and figure, the define.xml, and the reviewer guides — so you can inspect the whole workflow and even run the analyses yourself.
| Design | Phase 2, single-arm, open-label |
| Investigational drug | An oral ALK inhibitor (synthetic — "XYZ-101") |
| Indication | ALK-positive advanced non-small-cell lung cancer (NSCLC) |
| Population | 120 subjects (synthetic) |
| Primary endpoint | Objective Response Rate (ORR) by RECIST 1.1 |
| Key secondary | Overall Survival (OS), Progression-Free Survival (PFS), Disease Control Rate (DCR) |
CRF-like data as it comes off the EDC and IxRS systems — unstandardized, study-specific. The starting point.
The FDA-required standardized format for collected data. Each domain is one type of data:
Analysis-ready data, derived from SDTM with the statistical logic baked in:
The actual analysis outputs: the ORR table, AE summary, two Kaplan-Meier survival curves, a waterfall plot, a swimmer plot, and a subject listing.
define.xml 2.1 (machine-readable metadata describing every dataset and variable) plus the ADRG and SDRG reviewer guides — the documents an FDA reviewer opens first.
The proportion of subjects whose best response was CR or PR, with an exact binomial (Clopper-Pearson) confidence interval — the standard for a single-arm response rate. Change which categories count as responders or which population is analyzed; the CI is recomputed in R each time.
The Kaplan-Meier estimator handles censoring — subjects still alive (or progression-free) at last contact contribute partial information. The median is the time at which the survival curve crosses 50%. Computed live with R's survival package, the same engine used in regulatory submissions.
Shows the foundational SDTM→ADaM step: SAFFL is set to "Y" for any subject with exposure records in EX; AGEGR1 buckets age at <65 / ≥65. Real joins across DM, EX, and DS — the kind of derivation logic that, if wrong, invalidates every downstream number.
ICH E6(R3) and FDA practice expect independent double-programming for key outputs — two programmers implement the same spec separately and the results must match. Here R is the executed reference/validator and SAS is the submission deliverable. Producing both from one analysis spec proves command of the language the industry runs on (SAS) and the open-source stack it's moving toward (R/pharmaverse).
100% synthetic data generated with seeded randomization — no real patients, no proprietary study content, no real drug. Standards followed: SDTMIG, ADaMIG 1.3, define.xml 2.1, RECIST 1.1, ICH E6(R3). GDPR/HIPAA-safe by design.