再現可能な分析パッケージ
本トピックの修了後
環境のロック、シード、入力ハッシュ、スキーマ、ソースアクセッション、実行ログを単一のマニフェストにリンクできるようになります。また、「コードを持っていること」と「同じ分析を再検証できること」の違いを区別できるようになります。
分析は単なるコードの断片ではない
再現可能な分析には、コードだけでなく、入力データ、バージョン、変換ルール、実行環境、出力、および由来(プロヴェナンス)が必要です。Pythonパッケージングのドキュメントから環境と依存関係の管理原則をプロジェクトに適用しますが、単一のロックファイルがデータの権利や研究設計を解決するかのように記述してはいけません。
マニフェストの構造
analysis_id
topic_id
input_sha256
schema_version
requirements_lock
random_seed
source_accession
transformations
output_path
verification_statusシードは乱数例を再生成するための情報であり、生データ、ライブラリ、ハードウェア、コード間で同一性を保証する唯一の証拠ではありません。生データは上書きされず、変換出力とハッシュは別途保持されます。
推奨されるパッケージ構造
analysis-package/
├── README.md
├── manifest.tsv
├── requirements-lock.txt
├── data/
│ ├── provenance/
│ └── normalized/
├── src/
├── tests/
└── outputs/READMEには実行順序と入力要件をリストし、マニフェストにはファイルごとのハッシュとステータスを記録します。srcには変換と分析のコードを、testsにはコアAPIと結果の契約を格納します。出力を手動で編集した場合は、コードの実行結果と区別するために別の記録が必要です。
再現性と検証の違い
同じコードが同じ結果を生み出す場合、計算上の再現性を確認できます。しかし、これは入力の測定妥当性、研究設計の適切さ、または結果の生物学的解釈を検証するものではありません。再現可能なパッケージは監査可能な経路を提供しますが、科学的判断に代わるものではありません。
パッケージをフリーズする際は、マニフェスト自体のハッシュを記録します。後でファイルが変更された場合は、新しいバージョンを作成し、以前の承認されたバージョンをこっそり上書きしないでください。
権利と引用
GEOやENCODEなどのリポジトリを使用する際は、アクセッションと公式の引用を記録します。オープンアクセスと再配布の許可を区別し、権利が不明な原本については、コンテンツにファイルを含めず、ユーザーに公式のアクセス経路のみを案内してください。
解釈のために研究質問に戻る
マニフェストは結果をより科学的にする魔法ではありません。それは、結果がどの入力と仮定に依存しているかをレビューするよう促す伝達構造です。実行が再現可能であっても、測定妥当性や因果関係が自動的に証明されるわけではありません。
主要なポイント
- 環境、入力、変換、出力、およびソースを一緒に記録する。
- 再現性はシードだけでは完結しない。
- アクセッション、引用、ライセンス、再配布を区別する。
次のトピック
最終回では、結果、制限、倫理、アクセシビリティを読者に伝達します。
参考文献
- Python Packaging User Guide: https://packaging.python.org/en/latest/
- NCBI GEO: https://www.ncbi.nlm.nih.gov/geo/info/
- ENCODE citing guidance: https://www.encodeproject.org/help/citing-encode/
本回のマニフェストと例は、BioStatPyによって独立して作成されました。