SASによる臨床試験の解析速報に用いる
プレゼンテーションスライドの効率的な作成方法の提案
○吉田 直記、山崎 文寛、舟尾 暢男、高浪 洋平
(武田薬品工業株式会社)
Increasing Efficiency in Creating Flash Report Presentation
Slides in Clinical Trials using SAS
Naoki Yoshida, Fumihiro Yamasaki, Nobuo Funao, Yohei Takanami
Takeda Pharmaceutical Company Limited
要旨:
臨床試験の結果を解析速報として報告する際のPowerPoint形式のプレゼンテ
ーションスライドを、SASのマクロを用いて効率的に作成する方法を提案する。
本マクロではPowerPointファイルへの出力にODS POWERPOINT、レイアウ
トの調整にODS LAYOUTを用いる。なお、解析ソフト「R」もPowerPointファイ
ルの作成が可能なため、その機能についても触れる。
キーワード:
解析速報 (Flash Report), ODS POWERPOINT, ODS LAYOUT, R
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
3本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
4発表の背景
•
臨床試験では、解析報告書とは別に、解析速報の作成を求められることが多い
– 開発継続可否に関する意思決定を行う目的
•
解析速報には、以下が求められる
– 臨床試験に直接関わっていない第三者へ報告するため、内容の明瞭さが必要
– 簡潔のため、文章ではなく、図表形式が望ましい
– 作成時間や閲覧時間の短縮のため、PowerPoint形式が望ましい
•
解析報告書用に作成した図表をマニュアルで転記・貼付する通常の方法は
時間を要し、間違いも起こりやすい
5解析速報を効率的に作成する方法として、
SASプログラムによる解析速報(プレゼンテーションスライド)の作成を提案
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
6ODS POWERPOINT
•
ODS POWERPOINTは、SASで作成した表やグラフを、簡単な構文で
PowerPointファイルへ出力することが可能
– 基本構文
– 主なオプション
7ods powerpoint file = "example.pptx" option(s) ;
<レポート出力するプロシジャの構文
>
ods powerpoint close ;
指定方法
概要
options(backgroundimage
="ファイル名.png")
スライドの背景画像ファイルを指定
(GIF, JPEG及びPNG等が指定可能)
style=style-element-name |
[style-attribute-name]
スタイルテンプレート、スタイル属性を指定
layout=
スライドのレイアウトを指定
layout=TitleSlide
タイトルスライド
layout=TitleAndContent
タイトルとコンテンツ
layout=TwoContent
タイトルと2つのコンテンツ
ODS POWERPOINT
8•
PowerPointファイルの作成は、既存ファイルやテンプレートを用いることが
多いが、SAS 9.4 M3では既存のPowerPointファイル(.pptx /.ppt)や
PowerPointテンプレート(.potx/.pot)の利用はできない
⇒テンプレートの背景をスクリーンショットによって画像化し、
backgroundimageオプションで背景画像として指定することで対応可能
ods powerpoint file="Example1.pptx"options(backgroundimage=
"C:¥Temp¥SUGJ2017_TitleImage.png") layout=titleslide ;
proc odstext ;
p "Test Title 1" / style=PresentationTitle ; p "Test Title 2" / style=PresentationTitle2 ;
run ;
ods powerpoint close ;
タイトルスライドのレイアウトを指定 (タイトル用テキストボックスが2個 のレイアウト)
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
9ODS LAYOUT GRIDDED, ODS REGION
•
ODS LAYOUT GRIDDED
– 詳細なレイアウトを指定
• ODS LAYOUT GRIDDED(グリッド指定):ODS POWERPOINTをサポート
• ODS LAYOUT ABSOLUTE(絶対指定):ODS POWERPOINTサポート外
– スライドが仮想的なグリッド(格子状)に分割され、ユーザーはODS REGIONを
用いてオブジェクトを出力するグリッド上の番地(Region Container)を指定
• 例えば、スライドのレイアウトを6分割し、それぞれにオブジェクトを出力する
ことが可能
– 基本構文
10ods layout gridded option(s) ;
ods region option(s) ;
<
レポート出力するプロシジャの構文>
ods layout end ;
ODS LAYOUT GRIDDED, ODS REGION
– ODS LAYOUTの主なオプション
– ODS REGIONの主なオプション
11指定方法
概要
columns = number
グリッド全体を分割する列数を指定
rows = number
グリッド全体を分割する行数を指定
x = dimension
グリッド全体の横方向の開始位置を指定。x=0は左端
(単位はmm、cm、in(インチ)、pct(%)等が利用可能)
y = dimension
グリッド全体の縦方向の開始位置を指定。y=0は上端
(単位はmm、cm、in(インチ)、pct(%)等が利用可能)
指定方法
概要
column = number
グリッド上の列番号を指定
row = number
グリッド上の行番号を指定
ODS LAYOUT GRIDDED, ODS REGION
•
例:ODS LAYOUTによるタイトルスライドの作成
12 options center ; /* 出力を中央揃え */
ods powerpoint file='Example2.pptx' ;
ods powerpoint options(backgroundimage=
"C:¥Temp¥SUGJ2017_TitleImage.png") ;
ods layout gridded y=20pct ; /* 出力位置を指定 */ ods region ; proc odstext ; p "日本語発表タイトル(MSPゴシック32)" / style=[fontfamily="MS Pゴシック" fontsize=32pt] ; run ;
ods layout end ;
ods layout gridded y=40pct ;
ods region ;
...
ods layout end ;
ODS LAYOUT GRIDDED, ODS REGION
•
例:1つのスライドに、複数の異なるレイアウトを作成
13 title ;
options center ; /* 出力を中央揃え */ ods powerpoint file='Example3.pptx' ;
ods layout gridded columns=1 rows=1 x=0pct ;
proc odstext ;
p "Multiple Layout" / style=... ;
p "(Region for Titles and 2 x 2 Region for Graphs)" / style=...
run ;
ods layout end ;
ods layout gridded columns=2 rows=2
column_gutter=4pt row_gutter=1pt ;
ods graphics / reset width=4in height=2.6in ;
ods region ;
title1 "Region 1" ;
proc sgplot... ...
ods layout end ;
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
14指定方法 概要
style = style-element-name | [style-attribute-name] スタイルテンプレート、スタイル属性を指定 style = [fontfamily = "フォント名" fontsize = XX pt] フォントを指定、フォントサイズを指定 style = [fontweight = bold fontstyle = italic] bold(太字)に変更、italic(斜体)に変更 style = [color = color name
backgroundcolor = color name]
文字の色を指定
文字の背景色(マーカー色)を指定 style = [textdecoraton = underline] 下線を指定
style = [just = left | center | right] 左揃え、中央揃え、右揃えを指定 style = [bullet = disc | circle | square | none] 箇条書きの記号を指定(disc:黒丸)
ODS TEXT プロシジャ
•
スライドにテキストを出力
– 基本構文
– 主なオプション
15proc odstext ;
p "output text" / option(s) ;
list / option(s) ;
item "list text" / options(s) ;
end ;
run ;
p ステートメント :指定したテキストを出力
list ステートメント :箇条書き形式の開始位置を指定
item ステートメント:箇条書きで指定したテキストを出力
(list ~ end 内のみ指定可)
ODS TEXT プロシジャ
•
例:ODS TEXT プロシジャのプログラム例
16 ods powerpoint file='Example4.pptx' ;
proc odstext ; p 'Text 1' ; list ; item 'List 1' ; item ; p 'List 2' ; list / style=[bullet=square] ; item 'List a' ; item 'List b' ; end ; end ; end ; run ;
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
17出力図表のサイズ、スライドのサイズ
•
表、グラフのサイズ:制御が必要
– 各スライドに出力可能な情報量を上回ることによって、意図しない出力結果となる
• 表
:出力行を減らしたり、フォントサイズを小さくする
• グラフ :適切なグラフのサイズを指定
•
スライドのサイズ
– 多くのプロジェクターが対応している、 4:3(幅:高さ) を推奨
– 4:3 の場合、 「幅 10 inch、高さ 7.5 inch」
• 単位がインチ(inch)の場合、キリがよい
(cmの場合:幅25.4 cm、高さ19.05cm)
• 特にグラフのサイズを指定する際、例えば、幅が半分の5 inch、高さが1/3の
2.5 inchと、指定が容易
18本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
19スライドの改ページ
•
意図した位置で改ページさせるため、各スライドの終わりに必要
– 各スライドに出力可能なスペースが存在する限り、同一スライドに出力される
– 改ページのプログラム
• 「dcl odsout 参照名 ()」:
指定した参照名でRWI(Report Writing Interface)を使えるようにする機能。
新たなスライドを作成することで改ページする。
– RWI(レポート記述インターフェイス)を用いると、データステップでレポ
ートが作成できる
20data _null_ ;
dcl odsout obj() ;
run ;
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
21適用事例:仮想的な臨床試験
•
胃潰瘍再発予防に関する架空の臨床試験
– 第3相試験
– 対象:胃潰瘍既往のある患者
– 投与:ABC-XXX 1mg群又はプラセボ
– 主要評価項目:胃潰瘍再発までの期間
– 副次評価項目:十二指腸潰瘍再発までの期間
– その他の評価項目:
• 胃潰瘍再発の割合、十二指腸潰瘍再発の割合、
TEAE(Treatment Emergent Adverse Event:有害事象)
• 背景項目:年齢、性別、BMI、H. pylori検査、カフェインの摂取、
飲酒の習慣及び喫煙歴
– 解析するデータセット:ADaM形式(ADSL、ADTTE及びADAE)
適用事例:仮想的な臨床試験
•
主要評価項目:胃潰瘍再発までの期間
•
主解析:
– Kaplan-Meier法
:胃潰瘍再発に関する累積再発割合及び
その両側95%信頼区間を投与群別に算出
– logrank検定
:ABC-XXX群とプラセボ群を群間比較
– Kaplan-Meier Plot
:累積再発割合とその両側95%信頼区間
(logrank検定結果を併記)
– FAS(最大の解析対象集団)対象
•
その他の解析
– 感度分析 :主解析をPPS(治験実施計画書に適合した対象集団)にて実施
– 調整解析 :Cox回帰分析(投与群、各背景項目を独立変数とする)
– 部分集団解析:Cox回帰分析(各背景項目の各カテゴリごと)
23本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
24適用事例:解析するデータセットと本項の目的
•
本治験について、データベースの固定後、速やかに解析速報を作成するこ
とを想定
•
解析速報はPowerPoint形式とし、ODS POWERPOINTによって作成
– その際、胃潰瘍再発及び十二指腸潰瘍再発に関する検定結果について、SAS
上で自動的に有意性の判定を行い、結果をテキストにて出力
25出力する解析結果
【解析対象集団、使用するデータセット】
背景項目:要約統計量(連続変数) or
頻度集計(カテゴリ変数)
【無作為化された全例、ADSL】
主要評価項目:Kaplan-Meier Plot及び要約表
【FAS+PPS、ADTTE】
副次評価項目:Kaplan-Meier Plot及び要約表
【FAS、ADTTE】
要評価項目に関する調整解析:Forest Plot
【FAS、ADTTE】
TEAE、因果関係ありのTEAE及び
SAEに関する頻度集計:Forest Plot
【安全性データの解析対象集団、ADAE+ADSL】
適用事例:解析するデータセットと本項の目的
•
ADSL
適用事例:解析するデータセットと本項の目的
•
ADTTE
27
AVAL
適用事例:解析するデータセットと本項の目的
•
ADAE
本日の内容:
1.
発表の背景
2.
ODS POWERPOINT、及びODS LAYOUTの概要
–
ODS POWERPOINT
–
ODS LAYOUT GRIDDED、ODS REGION
–
ODS TEXT プロシジャ
–
出力図表のサイズ、スライドのサイズ
–
スライドの改ページ
3.
適用事例
–
仮想的な臨床試験
–
解析するデータセットと本項の目的
–
解析速報の作成
–
他のソフトウェアとの機能比較
4.
まとめ
29解析速報の作成:SASプログラムの構成
– 解析図表作成プログラムは、報告書形式用をそのまま利用
(%INCLUDEステートメント等を利用して実行)
– 報告書形式とPowerPointファイル間で、解析図表のレイアウトが異なる場合は、
レポート表示に関する処理で適宜調整
– ODS EXCLUDE ALL & ODS SELECT ALLで、解析プログラム部分を囲む
• スライドに出力予定のないプロシジャの解析結果を制御
– レポート表示に関する処理
• REPORTプロシジャ、SGプロシジャ等を使用
30ods
powerpoint
file
=
"<プレゼンテーションスライドのパス及びファイル名>.pptx"
;
ods
exclude
all
;
<解析図表の1つ目の解析プログラム>
ods select
all
;
<解析図表の1つ目のレポート表示に関する処理>
ods exclude
all
;
<解析図表の2つ目の解析プログラム>
ods select
all
;
<解析図表の2つ目のレポート表示に関する処理>
・・・
31
解析速報の作成:デモンストレーション
SASマクロプログラムの例示
背景項目:要約統計量(連続変数)【無作為化された全例】 マクロ名: Calc_Summary_Demog_Chara マクロパラメータ: TRTG = POP = TOTAL = IND = OUTD = AVAR = NDEC = ITEM1~ITEM10 = ITEMC1~ITEMC10 = TITLE = 投与群(文字変数) 解析対象集団の変数 ("Y","N"が格納された変数) 投与群の合計列の出力要否 ("Y","N"を指定) 入力データセット名 出力データセット名 (レポート出力直前のデータセット) 解析変数 (複数指定する場合は半角スペース区切り) 小数点以下の桁数を指定 各解析項目のラベル (複数変数を指定していた場合は半角カンマ区切り) 各解析項目におけるカテゴリのラベル (半角カンマ区切り) タイトル ~SASマクロパラメータの指定例~ %Plot_Of_Cumulative_Incidence( TRTG=TRTP,POP=FASFL,IND=ADTTE,OUTD=OUT3,PARAMCD=GU, AVAR=AVAL,CENSORING_VAR=CNSR,CENSOR=1,INTERVAL=%str(0,100,200,300,400), xLabel=Day,yLabel=%nrbquote(Cumulative Incidence (%)),Text=%str(ABC-XXX to Placebo),Color=%str(red blue),
Symbol=%str(plus plus),TITLE=%str(Cumulative Incidence of GU [FAS])); %PAGE_BREAK;
32
解析速報の作成:プレゼンテーションスライド出力例
ods powerpoint options(backgroundimage="files¥01_Title.png");
ods layout gridded x=5pct y=48pct;
proc odstext;
p "Flash Results" /
style=PresentationTitle[just=left fontsize=22pt color=BIGB];
p "ABC-XXX Phase 3 Study" /
style=PresentationTitle[just=left fontsize=24pt color=BIGB];
run;
ods layout end; %PAGE_BREAK;
ods powerpoint options(backgroundimage="files¥02_ToC.png");
ods layout gridded; ods region;
proc odstext; p "Title of Contents" / style=[fontsize=24];
run;
ods region;
proc odstext;
list / style=[liststyletype="decimal"];
item "Demographics and Baseline Characteristics"; item "Primary Efficacy Endpoints";
item "Secondary Efficacy Endpoints"; item "Other Efficacy/Safety Endpoints"; end;
run;
ods layout end; %PAGE_BREAK;
33
解析速報の作成:プレゼンテーションスライド出力例
ods layout gridded;
ods powerpoint options(backgroundimage="¥files¥03_Main.png"); proc odstext; p "<タイトル>" / style=[just=center fontsize=14]; run;
proc report data=<データセット> split='¥'
style(column header)={font=("Courier New") font_size=14pt};
columns ITEMC GROUPC NC MEANC STDDEVC MINC Q1C MEDIANC Q3C MAXC;
define ITEMC / 'Variable' width=20 left order; define GROUPC / 'Treatment' width=20 left order; define NC / 'N' width=3 right;
define MEANC / 'Mean' width=5 right; define STDDEVC/ 'S.D.' width=6 right; define MINC / 'Min.' width=5 right; define Q1C / 'Q1' width=6 right; define MEDIANC/ 'Median' width=6 right; define Q3C / 'Q3' width=6 right; define MAXC / 'Max.' width=5 right;
run;
ods layout end; %PAGE_BREAK;
34
解析速報の作成:プレゼンテーションスライド出力例
ods layout gridded;
ods powerpoint options(backgroundimage="¥files¥03_Main.png"); proc odstext; p "<タイトル>" / style=PresentationTitle[just=center fontsize=14]; p "<検定結果コメント>" / style=PresentationTitle[just=center fontsize=12]; run;
proc sgplot data=<出力データセット>; styleattrs datacontrastcolors=(<色>) datasymbols=(<シンボル>);
step x=TIME y=_1_SURVIVAL / group=STRATUM; scatter x=TIME y=_1_CENSORED / group=STRATUM; xaxis values=(<X軸の間隔>)
label="<X軸のラベル>"; yaxis values=(0 to 100 by 10)
label="<Y軸のラベル>";
xaxistable AtRisk / x=tAtRisk class=STRATUM location=inside
colorgroup=STRATUM separator; inset "Logrank Test: p = <検定結果>" /
position=topleft;
run;
ods layout end; %PAGE_BREAK;