見出し画像

CDISC Open Rules EngineをPythonで動かす~下準備編~ (2024/8月版)

CDISC Open Rules Engine (CORE) をPythonの統合環境上で動かしたときのメモです


概要

この記事では一般的なWindows環境で、Pythonの統合環境(Spyder)上でCOREを動かすための、セットアップ方法を説明します。筆者の手持ちの環境での実験結果のため、参考程度に読んでください。

CDISC Open Rules Engine(CORE)って何?

CDISC標準に従って作成された資料(データセット・define.xml)が、規格通りにできているかをチェックするツール(バリデーションツール)です。過去にはWeb SDTMやOpen CDISCといったツールが存在し、2024年現在ではPinnacle 21というツールが最も広く普及しています。COREはCDISC標準を作成している団体が開発しているバリデーションツールになります。

COREの入手先

https://github.com/cdisc-org/cdisc-rules-engine  より入手可能です

  • CDISC COREは随時開発が進められていて、2024年8月上旬時点で、バージョン0.7.1が最新

  • ページ内のReleaseページから任意のバージョンを選択できる

  • 特に理由がなければ、最新バージョンを試すのがおすすめ

ダウンロードファイルについて

2つの形式でダウンロードできます。「実行ファイル形式」と「ソースコード」です。「実行ファイル」には、linux版・Mac版・Windows版があります。ソースコードはPythonで書かれています。また上記以外の入手方法としてPyPI経由でのインストールができます。

COREの実行方法

3つのやり方があります。

  1. 実行ファイルをダウンロードして、コマンドラインから実行する

  2. ソースコードをダウンロードして、コマンドラインからPythonで実行する

  3. PythonのパッケージをPyPIからインストールして、プログラムを書く

この記事では3.の方法を取り扱います

セットアップ手順

具体的なセットアップ手順はhttps://github.com/cdisc-org/cdisc-rules-engine   でも解説されています。この指示に従って作業を進めていきます。

1. Pythonの環境を用意する

COREを使う環境を作ります。Pythonでは仮想環境を作れるので、CORE用のものを用意すると便利です(バージョンごとに環境を作ると尚よい)。以下、純正Pythonでの方法になります。以下、Windowsのコマンドラインで作業します。

  1. 仮想環境を作成したいディレクトリに移動する
    仮想環境ごとにディレクトリが作成されます。都合のよい場所を選んでください。昔の仮想環境が不要になった場合、ディレクトリを削除すれば環境が削除されます

  2.  py -m venv [環境名]で仮想環境を作成
    環境名の名前がついたフォルダが作成されます

  3. 先ほど作成されたフォルダ内のScriptsフォルダへ移動(<環境名>/Scripts)

  4. Activate と入力

これで仮想環境が稼働した状態になります。ここから必要なパッケージをインストールします。

  1. 統合環境をインストールします
    py -m pip install spyder を実行

  2. COREパッケージをインストールします
    py -m pip install cdisc-rules-engine を実行

環境によっては、別の作業が必要になることもあります。よくあるのがpipの更新

2. リソース(ルール・CT等)のダウンロード

上記の環境セットアップではCOREのエンジン部分がインストールされました。ですが、COREは「エンジン」と「ルール」が組み合わさって動くものです(下図参照)。

理想的にはCDISC LibraryからAPI経由でルールをダウンロードするのですが、ここでは「動作すればよい」と割り切って、すでに用意されているものをダウンロードします。
https://github.com/cdisc-org/cdisc-rules-engineの中のresource/cache から、pklファイルをダウンロードして、ローカルに保存しましょう。

  • 保存場所はどこでも構いません

  • 必要なファイルをダウンロードします

  • rules.pklはあった方がいいです

3. 不足モジュールの補足

ここまででセットアップは完了。後は統合環境でプログラミング…と行きたいところですが、現時点では必要なコンポーネントがインストールされないことがあります。プログラミング時にエラーが出てきたときはモジュールの不足も疑ってみてください。

4. プログラミング開始

仮想環境を稼働させた状態で、spyderと入力すればOKです。統合環境でプログラミングしましょう。https://github.com/cdisc-org/cdisc-rules-engineにて具体的なコードが示されているので、そちらを参考にするのがおすすめです。

2024年8月に特有の問題

numpyが2.0.0をリリース(2024年6月16日)した影響でエラーが発生する可能性があります。

ValueError: numpy.dtype size changed, my indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

この場合、numpyのバージョン1.x(例:1.26.4)をインストールして対応しましょう。


いいなと思ったら応援しよう!