1K Views
April 17, 25
スライド概要
[第11回大阪sas勉強会]
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
Base SASでの解析業務 どこまでワンポチで取り組めるか。 マルホ株式会社 臨床開発部データサイエンスグループ 山野辺浩己
免責事項 発表内容は発表者個人の個人的見解・意見を述べるものです。 所属する団体を代表を示したものではありません。
概要 SASでの実行時間中にパソコンにしがみつくことがしんどいため、帳票作成、 ログチェック、帳票比較、PDF化までを自動化し、自動実行して結果だけを確 認できるようバッチ処理化してみたので、結果と課題の報告。
臨床開発における統計解析業務 治験で得られたデータを、SASで解析し、その結果をRTFファイル(Wordファイ ルのような見映えのリッチテキストファイル)に出力すること一般的 臨床試験の解析業務は、CRO(開発業務受託機関)へ委託をするケースや、自社 で実施するケースがあるが、どちらであってもダブルプログラミング*1による 結果の担保が採用されている場合が多い *1:Main-Validationの2系統に独立したプログラマーが同一の解析を行い結果を照合する手法
臨床開発における統計解析業務 治験で得られたデータを、SASで解析し、その結果をRTFファイル(Wordファイ ルのような見映えのリッチテキストファイル)に出力すること一般的 臨床試験の解析業務は、CRO(開発業務受託機関)へ委託をするケースや、自社 で実施するケースがあるが、どちらであってもダブルプログラミング*1による 結果の担保が採用されている場合が多い *1:Main-Validationの2系統に独立したプログラマーが同一の解析を行い結果を照合する手法 発表者の業務でも、「CRO成果物検収時の確認」や「自社での解析結果の確 認」はダブルプログラミングが行われている。
今回取り組んだ解析業務の流れ 解析の流れ 0:「Rawdata定義書」や「Rawdata」を基に解析プログラムを準備 1:解析帳票ごとにプログラム実行(1試験あたり100~300程度) 2:実行ログのチェック →確認 3:解析結果(数値)を突合せ(SAS-Compare) →確認 4:解析結果(体裁)を突合せ(Word比較) →確認 5:目視確認のためPDF化 →確認
今回取り組んだ解析業務の流れ 解析の流れ 0:「Rawdata定義書」や「Rawdata」を基に解析プログラムを準備 1:解析帳票ごとにプログラム実行(1試験あたり100~300程度) 2:実行ログのチェック →確認 3:解析結果(数値)を突合せ(SAS-Compare) →確認 4:解析結果(体裁)を突合せ(Word比較) →確認 5:目視確認のためPDF化 →確認 データ更新やCROから の提供のたびに実行
今回取り組んだ解析業務の流れ 解析の流れ 0:「Rawdata定義書」や「Rawdata」を基に解析プログラムを準備 1:解析帳票ごとにプログラム実行(1試験あたり100~300程度) 2:実行ログのチェック →確認 3:解析結果(数値)を突合せ(SAS-Compare) →確認 4:解析結果(体裁)を突合せ(Word比較) →確認 5:目視確認のためPDF化 →確認 全ての実行にどれくらい掛かる?? 「1の実行」(10min) ↓ 「2の実行」(1min) ↓ 「3の実行」(2min) ↓ 「4の実行」(10min) ↓ 「5の実行」(2min) ↓ →25min
今回取り組んだ解析業務の流れ 解析の流れ 0:「Rawdata定義書」や「Rawdata」を基に解析プログラムを準備 1:解析帳票ごとにプログラム実行(1試験あたり100~300程度) 2:実行ログのチェック →確認 3:解析結果(数値)を突合せ(SAS-Compare) →確認 4:解析結果(体裁)を突合せ(Word比較) →確認 5:目視確認のためPDF化 →確認 現実は? 「1の実行」(10min) ↓(他の作業しとくか15min[+5min]) 「2の実行」(1min) ↓(メール返信しとくか5min[+4min]) 「3の実行」(2min) ↓(メール返信しとくか5min[+4min]) 「4の実行」(10min) ↓(資料確認しとくか15min[+5min]) 「5の実行」(2min) ↓(メール返信しとくか5min[+2min]) →25min45min
今回取り組んだ解析業務の流れ 解析の流れ 0:「Rawdata定義書」や「Rawdata」を基に解析プログラムを準備 1:解析帳票ごとにプログラム実行(1試験あたり100~300程度) 2:実行ログのチェック →確認 3:解析結果(数値)を突合せ(SAS-Compare) →確認 4:解析結果(体裁)を突合せ(Word比較) →確認 5:目視確認のためPDF化 →確認 個々の結果の確認はまとめて行 うため、取り敢えず最後まで実 行してしまいたい! →すべてバッチで実行出来るよ うにして、ダブルクリックする だけで1~5を流せるようにす る
1:解析帳票ごとにプログラム実行 batファイルで実行できるように対応 SASバッチサブミットを書いたbatファイル[csr_run.bat]を作成 “[SAS install path]\sas.exe” –config “[SAS install path]\nls\xx\sasv9.cfg” “[SAS program path]\t14_01_xx.sas” –log “[log path]\ t14_01_xx.log” Running SAS in Batch Mode https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.2/pgmcli/n1nor2ldajipsvn1x42cmpr8ugq3.htm Windows版 バッチ(非対話)モードでの実行 https://www.sas.com/offices/asiapacific/japan/service/technical/faq/list/body/pc068.html
2:実行ログのチェック [1:]の実行ログのチェックを行う。 ログチェックはSASプログラムで作成したため、[1:]と同様にbatファイルで実行 SASバッチサブミットを書いたbatファイル[logcheck.bat]を作成 “[SAS install path]\sas.exe” –config “[SAS install path]\nls\xx\sasv9.cfg” “[SAS program path]\logcheck.sas” Running SAS in Batch Mode https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.2/pgmcli/n1nor2ldajipsvn1x42cmpr8ugq3.htm Windows版 バッチ(非対話)モードでの実行 https://www.sas.com/offices/asiapacific/japan/service/technical/faq/list/body/pc068.html
3:解析結果 を突合せ(SAS-Compare) (数値) 対象帳票のProc compareをマクロしたSASプログラムを作成 上記プログラムを[1:],[2:]と同様にbatファイルで実行 SASバッチサブミットを書いたbatファイル[compare.bat]を作成 “[SAS install path]\sas.exe” –config “[SAS install path]\nls\xx\sasv9.cfg” “[SAS program path]\compare.sas”
4:解析結果 を突合せ(Word比較) (体裁) 解析結果帳票をWordの比較機能で差分を洗い出すVBSを作成 比較結果を.DOCX形式で出力 vbsファイル[rtf_compare.vbs]を作成 RTFではなく、docxなのでWordのスペルチェックが働いて助かることも (下記例のRandoimzationはスペルミスのため赤波線になっている)
5:目視確認のためPDF化 解析結果帳票(rtf)をPDF化するVBSを作成 Wordだと罫線やTitleの確認がし辛く、(動作が重いので)気軽に開けない点ため目視確認用 vbsファイル[rtf2pdf.vbs]を作成
作成したものを.batで呼び出し実行 [1.], [2.], [3.], [4.], [5.]で作成したbat, vbsを連続で実行するだけ
結果と課題 結果 目的である「取り敢えず端から端まで実行」は達成できた 昼休みや会議前にワンポチするだけで一通り実行できるので、「ドキュメントにかける時間」と「解析 結果の確認にかける時間」を分離でき、ストレスはなくなった。 課題 それぞれ独立した形にし、バッチは中身が分からなくても実行できるように自動生成用のプログラムを 作ったが、そもそも社内でこういったことに取り組む人がいないので利用者が一人になりそう 途中でズッコケてた場合のダメージが上昇した VBSはサポートアウトになるため、別のツールに逃げる必要がある
以上 ご清聴ありがとうございました。