a guide to the adam basic data structure for dataset designers
TRANSCRIPT
A Guide to the ADaM Basic Data Structure
for Dataset Designers
Michelle Barrick and John Troxell
1
DS11
#pharmasug
Introduction
• The motivation for this paper was our need to provide guidance to new developers of ADaM BDS datasets
• We will be describing some new concepts useful in describing how the BDS works
2
#pharmasug
Outline
• ADaM Dataset Classes
• The BDS Dataset Design Challenge
• Observed vs. Derived
• Row Categories and Related Variables
• Examples
3
#pharmasug
ADaM Dataset Classes
• ADSL
– provides subject-level facts
• ODS
– supports counts of occurrences like AEs, conmeds
• BDS
– supports almost all other analyses
– flexible and powerful
4
#pharmasug
A BDS Dataset is Like a Clock
• ADaM documents give us
– philosophy of a good clock
– descriptions of clock parts
– snapshots of some assembled clocks
• But we need to design a custom timepiece!
– often a study has unique needs
5
#pharmasug
BDS Datasets are Flexible
• BDS is open on the right
– one parameter per row
– other variables can be added
• BDS has a rich row structure
– unique in CDISC
– makes BDS powerful
• Understand how variables and rows interact!
6
#pharmasug
Observed vs. Derived
• Not well defined in CDISC
• We define Observed and Derived for the purposes of this presentation about the BDS
• Our definitions are consistent with ADaM documents but go beyond
7
#pharmasug
Observed vs. Derived: SDTM
• In explaining the BDS, we ignore what is collected vs. derived vs. assigned in SDTM
• To simplify, we just consider everything in SDTM to be Observed
8
#pharmasug
Observed vs. Derived
9
Entity Observed Derived
SDTM Everything in SDTM Nothing in SDTM
#pharmasug
Observed vs. Derived Parameters: PARAMTYP (Parameter Type)
• PARAMTYP=DERIVED if the parameter is derived from other BDS parameters
• PARAMTYP=null otherwise
• A parameter that is highly derived from SDTM is not “Derived”; it is “Observed”
10
#pharmasug
Observed vs. Derived
Entity Observed Derived
SDTM Everything in SDTM Nothing in SDTM
BDS Parameter as a whole Parameter not derived from other BDS Parameters (PARAMTYP=null)
Parameter derived from other BDS Parameters (PARAMTYP=DERIVED)
11
#pharmasug
Observed vs. Derived Rows: Initial set of rows
• All parameters have an initial set of rows
• Other rows may be derived from the initial set
12
#pharmasug
Observed vs. Derived Rows: Row Categories
• Observed row category
– The initial set of rows created per definition of the parameter
– for both Observed and Derived Parameters
13
#pharmasug
Observed vs. Derived Rows: Row Categories (cont’d)
• Derived Timepoint row category
– Derived from initial set of rows
– Rows created to impute or derive AVAL at a “timepoint” (e.g. AVISIT)
14
#pharmasug
Observed vs. Derived Rows: Row Categories (cont’d)
• Alternative Baseline row category
– Derived from initial set of rows
– Rows created to make use of an alternative baseline definition
• Note: A row may be in both the Derived Timepoint and the Alternative Baseline categories
15
#pharmasug
Observed vs. Derived
Entity Observed Derived
SDTM Everything in SDTM Nothing in SDTM
BDS Parameter as a whole Parameter not derived from other BDS Parameters (PARAMTYP=null)
Parameter derived from other BDS Parameters (PARAMTYP=DERIVED)
Rows within *any* BDS Parameter, whether observed or derived
Initial set of rows Rows derived from the initial set of rows of the parameter
16
#pharmasug
Variables and Row Category
Row Category
DTYPE
(Derivation Type)
BASETYPE
(Baseline Type)
PARAMTYP
(Parameter Type)
Observed Row null Populated if more than one
baseline type is defined for the
parameter
Populated with
"DERIVED" if
parameter is derived
Derived
Timepoint Row
Populated Populated if more than one
baseline type is defined for the
parameter
Populated with
"DERIVED" if
parameter is derived
Alternative
Baseline Row
Populated if record
is a derived
timepoint record
Populated Populated with
"DERIVED" if
parameter is derived
17
#pharmasug
Table 1: Observed Rows for PARAM= “PLASMA LDL Cholesterol Friedewald (mmol/L)”
• This is the initial set of rows for this parameter
• Row Category is Observed for the initial rows
18
Row ADT VISIT AVISIT ABLFL ANL01FL AVAL BASE CHG DTYPE BASETYPE Row
Categories
1 01AUG V 1 SCREENING Y 2.50 4.10 Observed
2 17AUG V 2 BASELINE 3.04 4.10 Observed
3 17AUG V 2 BASELINE Y Y 4.10 4.10 Observed
4 29AUG V 3 WEEK 2 Y 3.47 4.10 -0.63 Observed
5 14SEP V 4 WEEK 4 Y 4.25 4.10 0.15 Observed
6 26SEP V 6 WEEK 8 Y 5.10 4.10 1.00 Observed
#pharmasug
Table 1: Observed Rows for PARAM= “PLASMA LDL Cholesterol Friedewald (mmol/L)”
• Note no data for visit 5 (week 6)
• PARAMTYP (not shown) – DERIVED if parameter derived from BDS parameters
19
Row ADT VISIT AVISIT ABLFL ANL01FL AVAL BASE CHG DTYPE BASETYPE Row
Categories
1 01AUG V 1 SCREENING Y 2.50 4.10 Observed
2 17AUG V 2 BASELINE 3.04 4.10 Observed
3 17AUG V 2 BASELINE Y Y 4.10 4.10 Observed
4 29AUG V 3 WEEK 2 Y 3.47 4.10 -0.63 Observed
5 14SEP V 4 WEEK 4 Y 4.25 4.10 0.15 Observed
6 26SEP V 6 WEEK 8 Y 5.10 4.10 1.00 Observed
#pharmasug
Table 2: Imputation of a Missing Timepoint
*Note: DrvTmpt is abbreviated to represent Derived Timepoint
20
Row ADT VISIT AVISIT ABLFL ANL01FL AVAL BASE CHG DTYPE BASETYPE Row
Categories
1 01AUG V 1 SCREENING Y 2.50 4.10 Observed
2 17AUG V 2 BASELINE 3.04 4.10 Observed
3 17AUG V 2 BASELINE Y Y 4.10 4.10 Observed
4 29AUG V 3 WEEK 2 Y 3.47 4.10 -0.63 Observed
5 14SEP V 4 WEEK 4 Y 4.25 4.10 0.15 Observed
7 14SEP V 4 WEEK 6 Y 4.25 4.10 0.15 LOCF DrvTmpt*
6 26SEP V 6 WEEK 8 Y 5.10 4.10 1.00 Observed
#pharmasug
Table 3: Creation of a Derived Summary Timepoint Row
*Note: PB Max = Post Baseline Maximum; DrvTmpt = Derived Timepoint
21
Row ADT VISIT AVISIT ABLFL ANL01FL AVAL BASE CHG DTYPE BASETYPE Row
Categories
1 01AUG V 1 SCREENING Y 2.50 4.10 Observed
2 17AUG V 2 BASELINE 3.04 4.10 Observed
3 17AUG V 2 BASELINE Y Y 4.10 4.10 Observed
4 29AUG V 3 WEEK 2 Y 3.47 4.10 -0.63 Observed
5 14SEP V 4 WEEK 4 Y 4.25 4.10 0.15 Observed
7 14SEP V 4 WEEK 6 Y 4.25 4.10 0.15 LOCF DrvTmpt
6 26SEP V 6 WEEK 8 Y 5.10 4.10 1.00 Observed
8 PB MAX* Y 5.10 4.10 1.00 MAXIMUM DrvTmpt*
#pharmasug
Table 4: Creation of an Alternative Baseline
*Note: PB Max = Post Baseline Maximum; DrvTmpt = Derived Timepoint
22
Row ADT VISIT AVISIT ABLFL ANL01FL AVAL BASE CHG DTYPE BASETYPE Row
Categories
1 01AUG V 1 SCREENING Y 2.50 4.10 LAST Observed
2 17AUG V 2 BASELINE 3.04 4.10 LAST Observed
3 17AUG V 2 BASELINE Y Y 4.10 4.10 LAST Observed
9 17AUG V 2 AVG BASELINE Y Y 3.57 3.57 AVERAGE AVERAGE DrvTmpt*
4 29AUG V 3 WEEK 2 Y 3.47 4.10 -0.63 LAST Observed
5 14SEP V 4 WEEK 4 Y 4.25 4.10 0.15 LAST Observed
7 14SEP V 4 WEEK 6 Y 4.25 4.10 0.15 LOCF LAST DrvTmpt
6 26SEP V 6 WEEK 8 Y 5.10 4.10 1.00 LAST Observed
8 PB MAX* Y 5.10 4.10 1.00 MAXIMUM LAST DrvTmpt
#pharmasug
Table 5: Creation of Records to Make Use of an Alternative Baseline
Row ADT VISIT AVISIT ABLFL ANL01FL AVAL BASE CHG DTYPE BASETYPE Row Cat
1 01AUG V 1 SCREENING Y 2.50 4.10 LAST Observed
2 17AUG V 2 BASELINE 3.04 4.10 LAST Observed
3 17AUG V 2 BASELINE Y Y 4.10 4.10 LAST Observed
9 17AUG V 2 AVG BASELINE Y Y 3.57 3.57 AVERAGE AVERAGE DrvTmpt*
4 29AUG V 3 WEEK 2 Y 3.47 4.10 -0.63 LAST Observed
5 14SEP V 4 WEEK 4 Y 4.25 4.10 0.15 LAST Observed
7 14SEP V 4 WEEK 6 Y 4.25 4.10 0.15 LOCF LAST DrvTmpt
6 26SEP V 6 WEEK 8 Y 5.10 4.10 1.00 LAST Observed
8 PB MAX* Y 5.10 4.10 1.00 MAXIMUM LAST DrvTmpt
10 29AUG V 3 WEEK 2 Y 3.47 3.57 -0.10 AVERAGE AltBase*
11 14SEP V 4 WEEK 4 Y 4.25 3.57 0.68 AVERAGE AltBase
12 14SEP V 4 WEEK 6 Y 4.25 3.57 0.68 LOCF AVERAGE DrvTmpt
AltBase
13 26SEP V 6 WEEK 8 Y 5.10 3.57 1.53 AVERAGE AltBase
14 PB MAX Y 5.10 3.57 1.53 MAXIMUM AVERAGE DrvTmpt
AltBase
*Note: PB Max = Post Baseline Maximum; DrvTmpt = Derived Timepoint; AltBase = Alternative Baseline
23
#pharmasug
Table 6: Record Selection Criteria
• Data as Observed analysis of change from baseline at Week 6, where baseline is defined as the last value observed prior to treatment.
– AVISIT='WEEK 6' and DTYPE='' and BASETYPE='LAST' and ANL01FL='Y' • Note: PARAMCD and population ignored here for brevity
• Data as Observed analysis of change from baseline at Week 6, where baseline is defined as the average of the values collected at the baseline visit.
– AVISIT='WEEK 6' and DTYPE='' and BASETYPE='AVERAGE' and ANL01FL='Y'
24
#pharmasug
Table 6: Record Selection Criteria (cont’d)
• Last Observation Carried Forward analysis of change from baseline at Week 6, where baseline is defined as the last value observed prior to treatment.
– AVISIT='WEEK 6' and (DTYPE='' or DTYPE='LOCF') and BASETYPE='LAST' and ANL01FL='Y'
• Last Observation Carried Forward analysis of change from baseline at Week 6, where baseline is defined as the average of the values collected at the baseline visit.
– AVISIT='WEEK 6' and (DTYPE='' or DTYPE='LOCF') and BASETYPE='AVERAGE' and ANL01FL='Y'
25
#pharmasug
Table 6: Record Selection Criteria (cont’d)
• Analysis of change from baseline to maximum post-baseline value, where baseline is defined as the last value observed prior to treatment.
– AVISIT='POST BASELINE MAX' and DTYPE='MAXIMUM' and BASETYPE='LAST'
• Analysis of change from baseline to maximum post-baseline value, where baseline is defined as the average of the values collected at the baseline visit.
– AVISIT='POST BASELINE MAX' and DTYPE='MAXIMUM' and BASETYPE='AVERAGE'
26
#pharmasug
Questions?
27
#pharmasug 28
Michelle A. Barrick
Eli Lilly and Company
John Troxell
John Troxell Consulting LLC