Abhinav Jain Demystifying ADAM Specification Creation
Transcript of Abhinav Jain Demystifying ADAM Specification Creation
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
1/29
Demystify ADaM Specification Creation with aCase Study Approach
Abhinav Jain
1
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
2/29
What are we discussing today?
• Why ADaM?
• What is ADaM Implementation?
• Where to Start?
• How to review study documentation with help of a sample study?
• What is ADaM Metadata?
• How to create ADaM Metadata with help of a case-study?
2
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
3/29
Why ADaM?
CDISC - ADaM Data Standards are guidelines for creation of analysis datasets that will beused to generate statistical analysis for submissions.
In summary, fundamental principles for ADaM are:
• Provide clear documentation of the contents, source of analysis datasets, analysisresults (statistical methods, transformations, assumptions, derivations, imputations)
•
Provide a “roadmap” of how metadata, programs and documentation translate theStatistical Analysis Plan (SAP) to the statistical results
• Analysis-ready or “one-PROC” away datasets
• Traceability between the analysis data and source data
• XML based metadata for future tools development
3
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
4/29
What is ADaM Implementation?
To perform ADaM implementation Programming teams has to perform a set of activities.
Create ADaM Metadata/Specifications
Programming and Quality check of ADaM datasets
Program analysis tables, listings and figures
Create Define.xml
4
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
5/29
Where to start?
To start ADaM implementation, first step is to review following documents:
γ Protocol
γ CRFs (Prefer SDTM Annotated CRF)
γ Statistical analysis plan (SAP)
γ Mock-up shells γ SDTM mapping instructions
γ SDTM datasets
5
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
6/29
Document Review : What to look for?
ζ Study design
ζ Safety and Efficacy objectives
ζ Schedule of assessment
ζ Population definitions
ζ Analysis covariates
ζ Visit windowsζ Definition of baseline values
ζ Handling of missing values (imputation rules, missing AE data, etc.)
ζ Handling of multiple records per visit
ζ Variable computations and derivations, including categorical variables
6
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
7/29
Protocol Example and Sample SDTM
7
USUBJID EGSEQ EGTESTCD VISIT VISITNUM EGDTC EGSTAT EGSTRESN EGSTRESU
ABC-1001 1 RR Screening 100 2011-05-04 0.5 Sec
ABC-1001 2 QT Screening 100 2011-05-04 328 ms
ABC-1001 3 RR Week 1 101 2011-05-11 0.69 Sec
ABC-1001 4 QT Week 1 101 2011-05-11 366 ms
ABC-1001 5 RR Week 2 102 2011-05-17 0.6 Sec ABC-1001 6 QT Week 2 102 2011-05-17 332 ms
ABC-1001 7 RR Week 3 103 Not Done - Sec
ABC-1001 8 QT Week 3 103 Not Done - ms
ABC-1001 9 RR Week 4 104 2011-05-30 0.68 Sec
ABC-1001 10 QT Week 4 104 2011-05-30 527.03 ms
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
8/29
SAP Example
8
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
9/29
Mock-up Shell Example 1
9
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
10/29
Mock-up Shell Example 2
10
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
11/29
Cases from sample study
11
1. Derive Baseline values taking average value
from Pre-dose readings and create Baselinerecord
AVISITN = BASELINE, DTYPE = AVERAGE,
ABLFL = Y, AVAL, BASE
2. Implement LOCF for Post-Dose records AVISITN, DTYPE = LOCF, AVAL
3. Derive two new parameters PARAMTYP = Derived, PARAM, PARAMCD,PARAMN
4. Derive Change from Baseline and Identifyrecords for By-time point analysis
CHG, ABLFL = Y, ANL01FL = Y
5. Flag abnormal category values CRITy, CRITyFL
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
12/29
ADaM: Basic Data Structure (BDS)
12
Variable Groups ADaM Variables
Subject Identifiers STUDYID, USUBJID, SUBJID, SITEID
ADSL variables AGE, RACE, SEX, RANDDT, TRTSDT, TRTEDT
ADaM Treatment variables TRTP, TRTPN, TRTA, TRTAN
ADaM Timing variables ADT, ADY, AVISITN, AVISIT
ADaM Parameter identifiers PARAMCD, PARAMN, PARAM, PARAMTYP, AVAL,
AVALC, BASE, CHG, PCHG, SHIFTy, SHIFTyN,
ADaM Analysis Descriptor DTYPE
ADaM Indicator variables ABLFL, ANLyFL, CRITyFL
ADaM Visit Windowing AWRANGE, AWTARGET, AWTDIFF
SDTM Traceability variables EGSEQ, VISIT, VISITNUM
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
13/29
ADaM Metadata
ADaM Metadata facilitates the communication of underlying assumptions, statisticalmethods, transformations, derivations and imputations performed in the analysis of aclinical trial data.
Enables values and results to be easily replicated.
Establishes links between description of the analysis (Protocol’s data analysis section,SAP), the analysis results, the data used in the analysis, and the SDTM domains.
Components of ADaM Metadata:
• Analysis Dataset metadata
• Analysis Variable metadata
•
Analysis Parameter Value Level metadata• Analysis Results Metadata
13
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
14/29
Analysis Dataset metadata
Dataset Name
Dataset
Description Dataset Location Dataset Structure
Key Variables of
Dataset
Class of
Dataset Documentationfilename of the
dataset.
short
summary of
contents of
the dataset
where the dataset can be
found
the level of detail in the
dataset
variable names
that parallel the
structure
general
class of the
dataset
using
controlled
terminology
links or
references to
documentation re
how the dataset
was created
ADEG
ECG analysis
data
Study ABC/Data/
ADaM/ADEG.XPT
One record per subject per
parameter per analysis
visit
USUBJID,
PARAMCD,
AVISITN,
EGSEQ BDS
SAP Section 7.8.3
ADEG.SAS
14
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
15/29
Parameter Level Metadata – ADSL Variables
15
Dataset NameParameterIdentifier
VariableName
Variable Label Variable TypeDisplayFormat
Codelist /ControlledTerms
Source / Derivation
ile name of theanalysis dataset
PARAMCD or*ALL* or*DEFAULT*
name description typedisplayinforma-tion
valid values orcodes and decodes
where the variable came from in the sourcedata or how the variable was derived
ADEG *ALL* STUDYID Study Identifier text $12 ADSL.STUDYID
ADEG *ALL* SITEID Study Site Identifier text $3 ADSL.SITEID
ADEG *ALL* USUBJIDUnique SubjectIdentifier text $11 ADSL.USUBJID
ADEG *ALL* AGE Age integer 3 ADSL.AGE
ADEG *ALL* SEX Sex text $1 SEX. ADSL.SEX
ADEG *ALL* RACE Race text $50 RACE. ADSL.RACE
ADEG*ALL* ITTFL
Intent-to-TreatPopulation Flag
text $1 Y, N ADSL.ITTFL
ADEG
*ALL* SAFFL Safety Population Flag text $1 Y., N ADSL.SAFFL
ADEG
*ALL* TRTSDTDate of First Exposure toTreatment
integer yymmdd10. ADSL.TRTSDT
ADEG
*ALL* TRTEDTDate of Last Exposure to
Treatment
integer yymmdd10. ADSL.TRTEDT
ADEG*ALL* TRTP Planned Treatment text $20
Arm A, Arm B, Arm C
ADSL.TRTP
ADEG
*ALL* TRTPN Planned Treatment (N) integer 11 = Arm A,2 = Arm B,3 = Arm C
ADSL.TRTPN
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
16/29
Parameter Level Metadata – Traceability Variables
16
DatasetName
ParameterIdentifier
Variable Name Variable Label VariableType
DisplayFormat
Codelist / ControlledTerms
Source / Derivation
ADEG *ALL* EGSEQ Sequence Number integer 4
EG.EGSEQ from the records in the SDTM
EG. ADEG *ALL* VISITNUM Visit Number integer 4 EG.VISITNUM
ADEG *ALL* VISIT Visit Name text $19 EG.VISIT
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
17/29
Parameter Level Metadata – Timing Variables
17
DatasetName
ParameterIdentifier
Variable Name Variable Label VariableType
DisplayFormat
Codelist / ControlledTerms
Source / Derivation
ADEG *ALL* ADT Analysis Date integer yymmdd10.
Convert date portion of EG.EGDTC fromcharacter to a numeric date variable andformat using yymmdd10. date format.
ADEG *ALL* ADY Analysis Relative Day integer 3
If ADEG.TRTSDT less than or equal to ADEG.ADT then ADY=ADEG.ADT – ADEG.TRTSDT+1Else ADY=ADEG.ADT - ADEG.TRTSDT
ADEG *ALL* AVISIT Analysis Visit text $19
Baseline, Week 1, Week 2, Week 3, Week 4, Week 5, Week 6, Week 7, Week 8
If ADEG.SAFFL='Y' then AVISIT is thename of the analysis visit; if
ADEG.SAFFL=blank then AVISIT=blank.Create a row for each parameter with AVISIT = 'Baseline'.Refer to Section 5.2 of the SAP for adetailed description of how Baseline will be derived and derivation of AVAL.
ADEG *ALL* AVISITN Analysis Visit (N) integer 3
1= Baseline, 2 = Week 1,3 = Week 2, 4 = Week 3,5 = Week 4, 6 = Week 5,7 = Week 6, 8 = Week 7,
9 = Week 8
if ADEG.SAFFL='Y' AVISITN=numericcode for AVISIT, blank if
ADEG.SAFFL=blank
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
18/29
What is Parameter Identifier?
18
For each derived variable and row in BDS dataset it is critical to understand how it was created, and
whether that derivation applies to all PARAMCD values in the dataset, or to most of them, or to a fewspecific PARAMCD values.
Value of metadata element PARAMETER IDENTIFIER provides the information on whichderivations if it is applicable on All the PARAMCD values, or few specific PARAMCD values.
Parameter Identifier Description
*ALL* The metadata for that variable is the same for all values ofPARAM/PARAMCD in the analysis dataset.
*DEFAULT* The specified metadata for that variable should be considered themetadata for all values of PARAM/PARAMCD in the analysis datasetunless otherwise specified.
Particular PARAMCD The specified metadata for that variable should be considered themetadata applicable to the particular PARAMCD, overriding thespecified *DEFAULT* metadata, if any.
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
19/29
Parameter Level Metadata – Parameter Variables
19
DatasetName
ParameterIdentifier
VariableName
Variable Label VariableType
DisplayFormat
Codelist /Controlled Terms
Source / Derivation
ADEG PARAMCD PARAMCD Parameter Code text $8
RR, QT, QTCF,
QTCB One-to-one correspondence with ADEG.PARAM
ADEG *ALL* PARAMNParameter CodeNumeric integer 1
RR' = 1 ,'QT' = 2,'QTCF' = 3,'QTCB' = 4 One-to-one correspondence with ADEG.PARAMCD
ADEG *DEFAULT* PARAMTYP Parameter text 1 Y Null
ADEG QTCF PARAMTYP Parameter text 1 Y ‘Derived’
ADEG QTCB PARAMTYP Parameter text 1 Y ‘Derived’
ADEG *DEFAULT* AVAL Analysis Value float 8.1
AVAL = EG.EGSTRESN or an imputed/calculated value.For AVISIT = BASELINE apply AVERAGE to all pre-dosereading to calculate the analysis value.if EG.EGSTRESN is missing, apply the LOCF algorithm, i.e.set AVAL equal to the value for the previous scheduledpost-baseline time point (AVISIT). If the previoustimepoint is baseline, leave AVAL missing
ADEG QTCF AVAL Analysis Value float 8.1
Calculate analysis value at each visit using ADEG.AVAL for ADEG.PARAMCD in ('QT', 'RR') derive AVAL =QT value/RR value**0.33Use AVAL to apply AVERAGE and LOCF.
ADEG QTCB AVAL Analysis Value float 8.1
Calculate analysis value at each visit using ADEG.AVAL for
ADEG.PARAMCD in ('QT', 'RR') derive AVAL =QT value/RR value **0.5Use AVAL to apply AVERAGE and LOCF.
ADEG *ALL* BASE Baseline Value float 8.1 BASE=ADEG.AVAL where ADEG.ABLFL=“Y”
ADEG*ALL* CHG
Change fromBaseline
float 8.1 CHG=ADEG.AVAL - ADEG.BASE for post-baseline visits
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
20/29
Parameter Level Metadata – Descriptor Variables
20
DatasetName
ParameterIdentifier
VariableName
Variable Label VariableType
DisplayFormat
Codelist /Controlled Terms
Source / Derivation
ADEG *ALL* DTYPE Derivation Type text $8LOCF, AVERAGE
DTYPE = 'AVERAGE' for AVISIT = 'BASELINE' case whenaverage of Pre-dose readings is derived.DTYPE = ‘LOCF’ if EG.EGSTRESN is missing and when the value of ADEG.AVAL is populated using Last ObservationCarried Forward method.Blank Otherwise.
ADEG *ALL* ABLFLBaseline RecordFlag text $1 Y
Y if record contains the baseline value, i.e., if AVISIT='BASELINE'; blank otherwise.
ADEG *ALL* ANL01FL Analysis RecordFlag 01 text $1 Y
Populate with “Y” to identify the record selected to beanalysed for the specific value of AVISIT (Scheduled Timepoints for ECG as Schedule of events) within the specified
subject.For Pre-Dose reading flag only record with AVISIT ='Baseline'.
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
21/29
Parameter Level Metadata – Indicator Variables
21
DatasetName
ParameterIdentifier
VariableName
Variable Label VariableType
DisplayFormat
Codelist /ControlledTerms
Source / Derivation
ADEG QTCF CRIT1
Analysis
Criterion 1 text $50
Populated with ”QTcF > 450 msec” when ADEG.PARAMCD =
“QTCF” and ADEG.AVAL>450
ADEG QTCB CRIT1 AnalysisCriterion 1 text $50
Populated with ”QTcB > 450 msec” when ADEG.PARAMCD =“QTCB” and ADEG.AVAL>450
ADEG *ALL* CRIT1FLCriterion 1 EvaluationResult Flag text $1 Y Set to “Y” when ADEG.CRIT1 is populated
ADEG QTCF CRIT2 Analysis Criterion 2 text $50Populated with ”QTcF > 480 msec” when ADEG.PARAMCD =“QTCF” and ADEG.AVAL>480
ADEG QTCB CRIT2 Analysis Criterion 2 text $50Populated with ”QTcB > 480 msec” when ADEG.PARAMCD =“QTCB” and ADEG.AVAL>480
ADEG *ALL* CRIT2FL
Criterion 2 Evaluation
Result Flag text $1 Y Set to “Y” when ADEG.CRIT2 is populated
ADEG QTCF CRIT3 Analysis Criterion 3 text $50Populated with ”QTcF > 500 msec” when ADEG.PARAMCD =“QTCF” and ADEG.AVAL>500
ADEG QTCB CRIT3 Analysis Criterion 3 text $50Populated with ”QTcB > 500 msec” when ADEG.PARAMCD =“QTCB” and ADEG.AVAL>500
ADEG *ALL* CRIT3FLCriterion 3 EvaluationResult Flag text $1 Y Set to “Y” when ADEG.CRIT3 is populated
ADEG QTCF CRIT4 Analysis Criterion 4 text $50Populated with ”QTcF Increase from Baseline > 30 msec” when ADEG.PARAMCD = “QTCF” and ADEG.CHG>30
ADEG QTCB CRIT4 Analysis Criterion 4 text $50
Populated with ”QTcB Increase from Baseline > 30 msec” when
ADEG.PARAMCD = “QTCB” and ADEG.CHG>30
ADEG *ALL* CRIT4FLCriterion 4 EvaluationResult Flag text $1 Y Set to “Y” when ADEG.CRIT4 is populated
ADEG QTCF CRIT5 Analysis Criterion 5 text $50Populated with ”QTcF Increase from Baseline > 50 msec” when ADEG.PARAMCD = “QTCF” and ADEG.CHG>50
ADEG QTCB CRIT5 Analysis Criterion 5 text $50Populated with ”QTcB Increase from Baseline > 50 msec” when ADEG.PARAMCD = “QTCB” and ADEG.CHG>50
ADEG *ALL* CRIT5FLCriterion 5 EvaluationResult Flag text $1 Y Set to “Y” when ADEG.CRIT5 is populated
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
22/29
ADEG ADaM dataset
22
SUBJID AVISIT PARAM PARAMCD PARAMTYP AVAL BASE CHG DTYPE ABLFL ANL01FL CRIT1 CRIT1FL
1001 Screening RR (sec) RR 0.5 0.59 -
1001 Week 1 RR (sec) RR 0.69 0.59 -
1001 Baseline RR (sec) RR 0.59 0.59 - AVERAGE Y Y
1001 Week 2 RR (sec) RR 0.6 0.59 0.01 Y
1001 Week 3 RR (sec) RR 0.6 0.59 0.01LOCF Y
1001 Week 4 RR (sec) RR 0.68 0.59 0.09 Y
………… ………….. ………….. ………… ………….. …………. ………… …….. ………………. ………… ………….. ……………………… ……………..
1001 Screening QTcF (msec) QTCF DERIVED 413 412.5 -
1001 Week 1 QTcF (msec) QTCF DERIVED 412 412.5 -
1001 Baseline QTcF (msec) QTCF DERIVED 412.5 412.5 - AVERAGE Y Y
1001 Week 2 QTcF (msec) QTCF DERIVED 394 412.5 -18.5 Y
1001 Week 3 QTcF (msec) QTCF DERIVED 394 412.5 -18.5 LOCF Y
1001 Week 4 QTcF (msec) QTCF DERIVED 465 412.5 52.5 Y QTcF > 450 msec Y
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
23/29
Have we covered all the cases?
23
1. Derive Baseline values taking average value from Pre-dose
readings and create Baseline record. Variables: AVISIT = BASELINE,DTYPE = AVERAGE, ABLFL = Y, AVAL, BASE
√
2. Implement LOCF for Post-Dose records Variables: AVISITN, DTYPE = LOCF, AVAL √
3. Derive two new parameters Variables: PARAMTYP = Derived, PARAM, PARAMCD,PARAMN
√
4. Derive Change from Baseline and Identify records for By-time point analysis Variables: CHG, ABLFL = Y, ANL01FL = Y
√
5. Flag abnormal category values Variables: CRITy, CRITyFL
√
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
24/29
Analysis Result Metadata
Table 14.3.4.1 - Post-baseline and Change from Baseline of ECG (Safety population)
Metadata Field Metadata
DISPLAY IDENTIFIER Table 14.3.4.1
DISPLAY NAME Post-baseline and Change from Baseline of ECG (Safety population)
RESULT IDENTIFIER Visit wise Analysis of all ECG parameters
PARAM RR (sec), QT (msec), QTcF (msec), QTcB (msec)
PARAMCD RR, QT, QTCF, QTCB
ANALYSIS VARIABLE AVAL, CHG
REASON Safety Analysis as specified in SAP section 7 (7.8.3) DATASET ADEG
SELECTION CRITERIA SAFFL=“Y” and PARAMCD in (“RR”, “QT”, “QTCF”, “QTCB”) and ANL01FL=’Y’
DOCUMENTATION Analysis description specified in SAP section 5.2, 5.4 and 7.8.3
PROGRAMMING
STATEMENTS
For each TRTAN compute the statistics using ;
PROC UNIVARIATE DATA=ADEG;
BY AVISITN AVISIT PARAMCD; VAR AVAL CHG;
RUN;
24
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
25/29
Analysis Result Metadata
Table 14.3.4.2- Summary of Post-baseline Abnormal QTc (Safety population)
Metadata Field Metadata
DISPLAY IDENTIFIER Table 14.3.4.2
DISPLAY NAME Summary of Post-baseline Abnormal QTc (Safety population)
RESULT IDENTIFIER Summary analysis of Abnormal ECG parameters (QTCB and QTCF)
PARAM QTcF (msec), QTcB (msec)
PARAMCD QTCF, QTCB
ANALYSIS VARIABLE CRIT1FL, CRIT2FL, CRIT3FL, CRIT4FL, CRIT5FL
REASON Safety Analysis as specified in SAP 7.8 (7.8.3)DATASET ADEG
SELECTION CRITERIA SAFFL=“Y” and PARAMCD in (“QTCF”, “QTCB”) and CRIT1FL=’Y’
SAFFL=“Y” and PARAMCD in (“QTCF”, “QTCB”) and CRIT2FL=’Y’
SAFFL=“Y” and PARAMCD in (“QTCF”, “QTCB”) and CRIT3FL=’Y’
SAFFL=“Y” and PARAMCD in (“QTCF”, “QTCB”) and CRIT4FL=’Y’
SAFFL=“Y” and PARAMCD in (“QTCF”, “QTCB”) and CRIT5FL=’Y’ DOCUMENTATION Analysis description specified in SAP section 5.2, 5.4 and 7.8.3
PROGRAMMING
STATEMENTS
Compute the following for CRIT1FL to CRIT5FL;
PROC FREQ DATA=ADEG;
TABLES CRIT1FL * TRTAN;
BY PARAMCD;
RUN;
25
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
26/29
Take away
£ What is ADaM Metadata?
£ How to document ADaM Metadata?
£ What are ADaM BDS Variable groups?
£ How to review the study documentation to create ADaM specification?
£ How ADaM standards are a “roadmap” of how metadata, programs and
documentation translate the Statistical Analysis Plan (SAP) to the statistical results
26
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
27/29
Food for thought - Cases I have not covered?
? How to handle Visit Windowing
? How to deal with analysis results when the domain has both character only results
? How to implement SDTM Traceability with –SRC variables
? How to deal with cases when there are multiple reading at same visit or havingmultiple time point readings within single visit.
? How to create ADaM variables for shift tables
27
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
28/29
References
ADaM version 2.1 and the ADaMig 1.0 can be downloaded from http://www.cdisc.org.
28
-
8/20/2019 Abhinav Jain Demystifying ADAM Specification Creation
29/29
THANK YOU
29