Ensuring Technical Readiness For Copilot in Microsoft 365
How to build ADaM BDS dataset from mock up table
1. How to Build ADaM Basic Data
Structure from Mock Up tables
By Kevin Lee
Cytel, Inc.
1
2. Instruction of Basic Data Structure
BDS is the standard domain structure in ADaM.
BDS is designed as one or more records per subject
per analysis parameter per analysis time point.
One of the main purposes of ADaM BDS is analysisready, meaning that all the numbers in the final
report should be calculated with one procedure in
SAS.
The naming convention of BDS is ADxxxxxx.
2
4. Steps to create ADaM BDS from Mock Up tables
Design Mock Up Tables (typically created by
Statistician) according to SAP
Annotate Mock Up Tables
Design Metadata according to Mock Up
Tables
Create ADaM BDS data sets according to
Metadata
4
6. Mock Up table
Table 14.4.1
Summary of table of Creatine at baseline
(Per Protocol Population)
Group 1:
Treatment 1
(N=xxx)
n
Mean
Observed
Value
Creatine
Log of
Creatine
6
n
Group 2:
Placebo
(N=xxx)
Mean
Observed
Value
7. Annotated Mock Up table
Table 14.4.1
Summary of table of Creatine at baseline ADLB.AVISIT=‘BASELINE’
(Per Protocol Population) ADLB.PPROTFL=‘Y’
Group 1:
Treatment 1
(N=xxx)
ADLB.TRTAN = 1
n
Creatine
where ADLB.
PARAMCD=‘CREAT’
Mean
Observed
Value
Count(
ADLB.
AVAL)
MEAN(ADL
B.AVAL)
Log of Creatine
where ADLB.
PARAMCD=‘L10CREAT’
7
Group 2:
Placebo
(N=xxx)
ADLB.TRTAN = 2
n
Mean
Observed
Value
Count MEAN(ADLB.
(ADLB AVAL)
.AVAL)
8. New Variables according to annotation
Protocol population variable – PPROTFL
Baseline – AVISIT, AVISITN
Treatment variable – TRTAN, TRTA
Parameter Variable – PARAM, PARAMCD
Observed Mean Value Variable – AVAL
New Parameters according to annotation
Creatine – Its paramcd is “CREAT” and its analysis
values, AVAL, come from LB.LBSTRESN.
Log of Creatine – Its paramcd is “L10CREAT” and
its analysis values, AVAL, come from log of
LB.LBSTRESN.
8
9. Analysis Dataset Metadata
Class of Documentation
Dataset
Dataset
Name
Dataset
Description
Dataset
Location
Dataset
Structure
Key
variables
of
Dataset
ADLB
Laboratory
analysis
data
ADLB.xpt
one record
per subject
per
parameter
per
analysis
timepoint
USUBJID, BDS
PARAM,
AVISIT
9
ADLB.SAS
10. Analysis Variable Metadata including Analysis
Parameter Value-Level Metadata
Parameter
Identifier
Variable
Name
Variable
Label
Type
Format
Codelist/
Controlle
d Term
Source/
Derivation
Subject Identifier Variables
** ALL **
STUDYID
Study
Identifier
Char
$12.
** ALL **
ADDOMAIN
Analysis
Domain
Char
$8.
** ALL **
USUBJID
Unique
Subject
Identifier
Char
$20.
LB.USUBJID
** ALL **
SUBJID
Subject
Identifier for
the Study
Char
$8.
ADSL.SUBJID
** ALL **
SITEID
Study Site
Identifier
Char
$10.
ADSL.SITEID
10
ADSL.STUDYID
ADLB
Derived
12. Parameter
Identifier
Variable
Name
Variable Label
Type Form
at
Codelist/C
ontrolled
Term
Source/
Derivation
Analysis Parameter Variables
CREAT
PARAM
Parameter
Description
Char $100.
Creatine(
mg/dL)
LB.LBTESTCD
+ unit
L10CREAT PARAM
Parameter
Description
Char $100.
Log of
Creatine(
mg/dL)
LB.LBTESTCD
+ unit
** ALL **
Parameter Code Char $8.
CREAT
LB.LBTESTCD
L10CREAT
L10CREAT PARAMTYP
Parameter Type
Char $8.
DERIVED
CREAT
AVAL
Analysis Value
Num 8.
LB.LBSTRESN
L10CREAT AVAL
Analysis Value
Num 8.
Log10(LB.LBST
RESN)
PARAMCD
12
14. Other Possible Variables
Analysis Parameter Variables - BASE, CHG
Analysis Descriptor variables – DTYPE
Categorical variables - CRIT1 and CRIT1FL
Indicator variables - ANL1FL
Sample codes using ADaM data set
proc sql;
**** The Count for and Mean value for Creatine and log of Creatine for
protocol population at Baseline;
create table line1_1 as
select trtan, paramcd, count(aval) as count, mean(aval) as mean
from adlb
where paramcd in (‘CREAT’, ‘L10CREAT’) and avisit = ‘BASELINE’
and pprotfl = ‘Y’ and aval is not missing
group by trtan, paramcd;
quit;
14
15. Advantages using Annotated Mock Up tables
Easy to create the metadata
Analysis Dataset metadata
Analysis Variable metadata
Analysis Parameter Value-level metadata
Analysis Results metadata
Easy to explain
Easy for SAS programmers to follow
More visual
More accurate number of ADaM data sets
15
16. Conclusion
ADaM is structured as analysis-ready. In order to build
analysis-ready ADaM data sets, SAS programmers need to
start from analysis, which are Mock Up tables. From Mock
Up tables, SAS programmers figure out what procedures
could be used for the analysis. Based on the procedure
statements and analyses, SAS programmers annotate the
Mock Up tables. The annotations on the Mock Up tables will
help SAS programmers to find out what variables are
needed in the analyses and eventually what variables and
parameters should be created in ADaM data sets. SAS
programmers now can create Metadata according to the
annotations. According to Metadata, SAS programmers can
create ADaM data sets from SDTM data sets. From ADaM
data sets, SAS programmers will be able to produce all the
results in the Mock Up tables using one proc procedure.
16