10. ODMConverter
•メタデータ部分(ODMのStudy要素, AdminData要素)をデータフレームの各列のattributeとし
て変換できている。
•Define-xmlの読み込みには使える? → Define-xml 2.0のサンプルは読み込めなかった…
•ClinicalData要素は無視されているようだ
•sink()でRコードを出しているようで、処理に失敗すると出力が持って行かれたままになるので、
sink(NULL)を何回か呼ぶ必要がある
•今年論文が出ていた: Dugas M, Dugas-Breit S. Integrated data management for
clinical studies: automatic transformation of data models with semantic
annotations for principal investigators, data managers and statisticians.
PLoS One. 2014 Feb 28;9(2):e90492
11. compareODM
• 2つのODMファイルを入力すると、 list of identical,
matching, similar and differing data items を出力する、と
いうものらしいけれども…
• ほぼ同じ2つのODMを渡しても1項目しかidenticalと
出さないなど、若干挙動が不明瞭
• やはりClinicalData要素は見ない
12. R4CDISC
• Define-XML 2.0を読み込ませて、Dataset Level Metadataを抽出
> str(getDLMD("define2-0-0-example-sdtm.xml"))
$ IGD_OID : chr "IG.TA" "IG.TE" "IG.TI" "IG.TS" ...
$ IGD_Domain : chr "TA" "TE" "TI" "TS" ...
$ IGD_Name : chr "TA" "TE" "TI" "TS" ...
$ IGD_Repeating : chr "No" "No" "No" "No" ...
$ IGD_IsReferenceData : chr "Yes" "Yes" "Yes" "Yes" ...
$ IGD_SASDatasetName : chr "TA" "TE" "TI" "TS" ...
$ IGD_Purpose : chr "Tabulation" "Tabulation" "Tabulation" "Tabulation" ...
p$l aInGnDe_d SEtlreucmetnurt"e " O n e r e:c ocrdh r p e"r OIn/e E rcecriortde ripeonr " p"lOannen edr eEcloerdm enpet r petrr iAalr m"s u"mOmaner y repacorardm epteerr value" ...
D$E SIIGGDN"_ C.l.a.ss : chr "TRIAL DESIGN" "TRIAL DESIGN" "TRIAL DESIGN" "TRIAL
$ IGD_ArchiveLocationID: chr "LF.TA" "LF.TE" "LF.TI" "LF.TS" ...
C$r iItGeDr_iDa"e s"cTriripatil oSn u m m a r y": .c.h.r "Trial Arms" "Trial Elements" "Trial Inclusion/Exclusion
C$r iItGeDr_iat"i t"lTe r i a l S u m m a r y": .c.h.r "Trial Arms" "Trial Elements" "Trial Inclusion/Exclusion
13. R4CDISC
• Define-XML 2.0を読み込ませて、Variable Level Metadataを抽出
> str(getVarMD("define2-0-0-example-sdtm.xml"))
'data.frame': 414 obs. of 10 variables:
"$I T.IARE_.IAtEeSmEOIQ"D . . . : chr "IT.STUDYID" "IT.AE.DOMAIN" "IT.USUBJID"
$ IGD_Name : chr "AE" "AE" "AE" "AE" ...
$ IR_OrderNumber : int 1 2 3 4 5 6 7 8 9 10 ...
$ IR_Mandatory : chr "Yes" "Yes" "Yes" "Yes" ...
$ IR_KeySequence : int 1 NA 2 NA NA NA NA 3 NA NA ...
$ ID_Name : chr "STUDYID" "DOMAIN" "USUBJID" "AESEQ" ...
$ ID_Length : chr "7" "2" "14" "1" ...
$ ID_DataType : chr "text" "text" "text" "integer" ...
S$u bIjDe_cLt aIbdeel n t i f i e r": "cSher q u"eSncteu dNy uImbdeenr"t i.f.i.er" "Domain Abbreviation" "Unique
$ ID_SASFieldName: chr "STUDYID" "DOMAIN" "USUBJID" "AESEQ" ...
14. R4CDISC
• Define-XML 2.0を読み込ませて、Value Level Metadata(ある列のデータの値によって、別の列のメタデー
タが決まるような場合)を抽出
> str(getValMD("define2-0-0-example-sdtm.xml"))
'data.frame': 121 obs. of 9 variables:
"$I T.IERG_.IEtGeOmORIRDE S . I N T:P " c"hIr T ."EGI.T.EDGAO.RDRAEOS.RPRERMS.EADIN"S P.A.M.T" "IT.DA.DAORRES.RETAMT"
"$V L.VEaGl.uEeGLOiRsRtEOIS"D . ..: chr "VL.DA.DAORRES" "VL.DA.DAORRES" "VL.EG.EGORRES"
$ IR_OrderNumber : int 1 2 1 2 3 4 5 1 2 1 ...
$ IR_Mandatory : chr "Yes" "No" "No" "No" ...
.$. .ID_Name : chr "DA.DISPAMT" "DA.RETAMT" "EG.INTP.ORRES" "EG.PRMEAN.ORRES"
$ ID_Length : chr "2" "2" "8" "3" ...
$ ID_DataType : chr "integer" "integer" "text" "integer" ...
O$r iIgDi_nLaal bReel s u l t s " ": Scuhmmr a r"y D(iMsepaenn)s ePd R ADmouruantt"i o"n R(eOtruirgn eUd )"A m.o.u.nt" "Interpretation:
$ ID_SASFieldName: chr "DISPAMT" "RETAMT" "INTPOR" "PRMEANOR" ...
15. R4CDISC
• Dataset-XMLを読み込ませて、データフレームにする
> read.dataset.xml(dataset_xml=”da.xml", define_xml=”define2-0-0-
example-sdtm(2013-11-09).xml")
STUDYID DOMAIN USUBJID DASEQ DATESTCD DATEST DAORRES
1 CDISC01 DA CDISC01.100008 1 DISPAMT Dispensed Amount 40
2 CDISC01 DA CDISC01.100008 2 DISPAMT Dispensed Amount 80
3 CDISC01 DA CDISC01.100008 3 RETAMT Returned Amount 22
4 CDISC01 DA CDISC01.100008 4 RETAMT Returned Amount 35
5 CDISC01 DA CDISC01.100014 1 DISPAMT Dispensed Amount 80
6 CDISC01 DA CDISC01.100014 2 DISPAMT Dispensed Amount 80
7 CDISC01 DA CDISC01.100014 3 RETAMT Returned Amount 44
8 CDISC01 DA CDISC01.100014 4 RETAMT Returned Amount 44
9 CDISC01 DA CDISC01.200001 1 DISPAMT Dispensed Amount 40