-
Notifications
You must be signed in to change notification settings - Fork 0
Reproducibility and Quality
humanbeans893 edited this page Jul 16, 2026
·
1 revision
Python の通常実行は Docker + uv に統一します。依存を変更するときはコンテナ内で操作し、lockfile を更新します。
docker compose exec research-template uv add <package>
docker compose exec research-template uv remove <package>
docker compose exec research-template uv run pytestpyproject.toml と uv.lock はセットでコミットします。ホストの Python や個人の .venv だけで動く状態を正解にしません。
共有コードでは、必要な入力を暗黙の既定値で補わず明示的に失敗させます。
assert "subject_id" in data, f"Expected subject_id. Got: {list(data.keys())}"
assert data["subject_id"].is_unique, "subject_id must be unique"列の存在だけでなく、型、単位、許容範囲、欠損率、時刻順序、ID の一意性も研究上の仮定として検証します。
- 共有シードは
config.py、実験固有値はparams.pyに置く。 - 図中や README に手入力した数値を正典にしない。
- コマンドライン引数や環境変数を使う場合、実行時の値をログへ出す。
- 非決定的な GPU 演算など、完全再現できない要因を記録する。
-
src/utils/: 小さな純粋関数、パス、I/O の境界 -
src/models/: パース、型、異常入力 -
src/methods/: 既知の小さな例、数値許容誤差、統計的性質 -
src/analysis/: 小さい fixture を使った統合テスト -
scripts//exp/: 最小入力での smoke test または実行確認
通常の確認:
docker compose exec research-template uv run pytest成果物ごとに、少なくとも次をたどれるようにします。
図・表 → 生成スクリプト/実験 → パラメータ → 入力データ版 → Git commit
論文用成果物を result/ に昇格するときは、このつながりを実験 README や研究ログに記載します。
投稿、プレプリント、リリースの前には、クリーンな checkout または別マシンで次を確認します。
-
.env.exampleから環境を準備できる。 -
docker compose up -dとuv syncが成功する。 - テストが通る。
- raw から主要な processed data と図表を生成できる。
- LuaLaTeX で原稿をコンパイルできる。
- README のコマンドが現状と一致する。
再現確認に使った commit をタグまたは Release で固定すると、投稿版との対応が明確になります。