脳領域名の正規化パイプライン。論文または脳領域ラベルを入力として、SABRA(BNA + DHBA)の 領域名に変換します。WBRA / BRA駆動開発の一部で、CoBRAC・WholeBIF-RDB・BDBRA が下流に位置します。
現在は設計段階です。 ここにあるのはインタフェース定義と、それを満たすスタブ実装です。 本番実装は各担当が差し込む形になります(担当と実装の入れ方)。
Python 3.10 以上。外部ライブラリは不要です。
python3 -m rosetta.example3つの経路(座標経路 / ラベル経路 / ラベル入力)と BIF 転記レポートが表示されます。 中身はスタブなので結果に意味はありませんが、どんなデータが流れるかが分かります。
論文(DOI) または 脳領域ラベル
↓
ROSETTA 本体 分岐と後処理のみを担当
↓
┌─ CBM ──────┐ 座標取得(NeuroVault / PMC OA)→ SABRA
│ │ 領域ラベル抽出(pubget + LLM)
└─ RCS ──────┘ ラベル → SABRA 候補の探索
↓
脳領域情報のリスト(SABRA名の分布 / relation / Evidence / Taxon)
↓
BIF 転記アダプタ / CoBRAC
座標が取れるのは論文の 6〜13% で、残りはラベル経路に流れます。実質の主経路はラベル側です。
図は docs/diagrams.md(GitHub 上でそのまま描画されます)。
| 目的 | ファイル |
|---|---|
| 各モジュールの取り決め | rosetta/interfaces.py |
| 処理の流れ | rosetta/core.py |
| データモデル | rosetta/types.py |
| 設計の経緯・判断理由・残件 | ROSETTA_design_notes.md |
| 図 | docs/diagrams.md |
| モジュール | 担当 | Protocol |
|---|---|---|
| SABRA(アトラス) | 田和辻 | SabraAtlas |
| CBM(座標・ラベル抽出) | 鈴木 | CoordinateToBrainMapper |
| RCS(候補探索) | 宮本 | RosettaCandidateSearch(実装は別リポジトリ。本リポジトリの rosetta/adapters/rcs_api.py から HTTP で呼びます) |
| BIF 転記 | 山川 | rosetta/bif.py(BRA 仕様との整合は田和辻さんに判断いただいています) |
| ROSETTA 本体 | 山川 | rosetta/core.py |
利用側として、CoBRAC(下山)が ROSETTA の出力を BIF の Circuit ID に用います。 8月時点の仮仕様は docs/cobrac_interim_spec.md にまとめてあります。
実装の差し込み方は docs/implementing_a_module.md を参照してください。
rosetta/
├── interfaces.py 各モジュールの取り決め(Protocol)
├── core.py メインルーチン(処理分岐)
├── types.py データモデル
├── bif.py BIF への転記アダプタ
├── coords.py 座標空間の変換(TAL → MNI)
├── jats.py article.xml から節見出しを取る
├── errors.py 例外
├── adapters/ 外部実装を取り決めに合わせる層
│ └── rcs_api.py RCS API(宮本さんの AWS 環境)のクライアント
├── stubs.py 動作確認用のダミー実装
└── example.py 実行例
docs/
├── diagrams.md 図(Mermaid)
├── figures/ 図の PNG と Graphviz ソース
├── implementing_a_module.md 担当モジュールの実装の入れ方
├── cobrac_interim_spec.md CoBRAC 向けの仮仕様(8月時点)
├── rcs_handover_checklist.md RCS の引き継ぎで確認したいこと
├── visualization_policy.md 図の作り方・使い分け
├── build_diagrams.py UML・API リファレンス・HTML の生成
└── build_doc.js レビュー依頼 docx の生成
docs/generated/・docs/api/・docs/diagrams.html は生成物なので追跡していません。
必要なら次で再生成できます(要 pip install pylint pdoc と graphviz)。
cd docs && python3 build_diagrams.py設計メモの「残る要確認事項」を参照してください。主なものは次のとおりです。
- NeuroVault 由来の座標に対する Pointers の扱い
- ピーク座標の閾値・検出法
- 非ヒト Taxon の扱い(保留)
- RCS API との差分3点(relation が返らない、HOMBA ID から SABRA ID への解決、AI 判断オプション) → docs/rcs_handover_checklist.md