flybrain-connectome について
flybrain-connectomeは、コネクトームのモチーフから合成マルチエージェント・トポロジーを作る開発者・研究者向けツールキットです。オフライン生成と実データの任意クエリに対応し、W3C PROV-JSONでトポロジーの来歴を記録します。
主な機能
- 01神経回路ユニットの検索
- 02エージェントトポロジーの構成・生成
- 03モチーフスナップショットからのオフライン生成
- 04実コネクトームデータのクエリ
- 05W3C PROV-JSONによる来歴記録
活用シーン
- 01エージェント群の初期トポロジー作成
- 02種をまたいだコネクトームモチーフの調査
- 03トポロジーのエッジを生物学的な出典まで追跡
MCP 対応
HTTPとMCPを通じてコネクトームのクエリサービスを提供し、47個のツールを公開します。CLIからAPIの起動、ツールのクエリ、モチーフの取得ができます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://lm203688.github.io/flybrain-connectome/claude mcp add --transport http lm203688-flybrain-connectome https://lm203688.github.io/flybrain-connectome/{"mcpServers":{"lm203688-flybrain-connectome":{"type":"http","url":"https://lm203688.github.io/flybrain-connectome/"}}}Cursor で開く{"servers":{"lm203688-flybrain-connectome":{"type":"http","url":"https://lm203688.github.io/flybrain-connectome/"}}}VS Code で開く{"mcpServers":{"lm203688-flybrain-connectome":{"type":"http","url":"https://lm203688.github.io/flybrain-connectome/"}}}{"mcpServers":{"lm203688-flybrain-connectome":{"serverUrl":"https://lm203688.github.io/flybrain-connectome/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
flybrain-connectome
v3.00.3 · 2026-10-25 · 116 個の機能単位 · 270 個のモジュールプロファイル · 62 個のゲート · EPE フルスタック + AIBOM サプライチェーン開示 + レシート完全性ゲート + Gate 60/61/62/63/64 + fail-loud 規律 + バージョンの単一情報源 + Xu 2026 樹状突起計算の最前線との比較 + Xu 2026 二層認知計算のリファレンス実装(tools/dendritic_rule_engine.py + examples/07_dendritic_rule_cache_demo.ipynb)+ E4 区画境界 + S1 外部検証 + S2 病変カスケード + S3 統計強化 + 規律の有効性の定量化(catch-rate 100%、W1–W7 をすべて解消)+ Gate 63 research_claims 最上位の統計的完全性 + 著者表記の正規化(P-3 / P-4 → Li Xing + ORCID)+ bioRxiv 投稿準備パッケージ + flybrain デモをワンコマンドで実行 + 5 分で始めるガイド + flybrain audit CLI + JOSS 投稿パッケージ + MCP エコシステム提出パッケージ + 論文 9 件の DOI を補完
89%問題
Deloitte の 2026 年エージェントパイロット調査によると、企業のエージェントパイロットの89%は本番環境に到達しません。Teradata によると、78%がパイロットを実施していますが、スケールできたのはわずか 14%です。業界を問わず、失敗のパターンは次の 3 つの言葉に集約されます。
「安定しない、制御できない、監査できない」 — 不安定で、統制できず、監査できません。
flybrain-connectomeが解決するのは、3 つ目の課題です。生成されたトポロジーのすべてのエージェント間エッジは、Drosophila の雄の脳コネクトームにある実際のニューロンまたはシナプスのクラスにたどれます。W3C PROV-JSON としてシリアライズされるため、EU AI Act の監査担当者が求める形式と同じです。エージェント群はブラックボックスではなく、生物学的な来歴を持つ検証可能な構造です。5 分で始めるクイックスタート — データをダウンロードせずに、ゼロから 5 分でインタラクティブな D3 トポロジーグラフを表示できます。
監査可能なエージェントトポロジー — 可审计的 Agent 拓扑生成与溯源。実際の Drosophila 雄の脳コネクトームに基づいています(MaleCNS v1.0 — ニューロン 166,700 個 / シナプス 124,177,617 個、CC-BY)。
flybrain-connectome は、公開済みの実際の脳配線図を、インスタンス化してエージェント群として実行できるタスクに合わせたマルチエージェントトポロジーに変換します。さらに、すべてのエッジについて、元になった実際のニューロン/シナプスのクラスを証明できます。モチーフの来歴は、EU AI Act の監査担当者が求めるものと同じ標準であるW3C PROV-JSONとしてシリアライズされます。

5 モジュール × 8 エージェントのトポロジー(predictive_coding_v2 ブループリント) — flybrain demo で生成されるものと同じグラフです。ライブで試す →
これは開発者向けツールキット兼研究成果物であり、学習済みモデルでも、ハエのシミュレーションでもありません。引用する前に誠実な適用範囲をお読みください。
リポジトリの状態: 2026-10-18 以降、公開されています。公開前に履歴を監査し、整理しました(Tier-2 の知的財産漏えいの詳細はCHANGELOG v1.3.0、実行済みの公開化手順書 16 ステップについてはdocs/D3_REPOSITORY_PUBLICITY_DECISION_2026-10-18.mdを参照してください)。Tier-1 のコードは MIT ライセンスで、https://github.com/lm203688/flybrain-connectome から利用できます。Tier-2 の生データ(MaleCNS 5.63 GB、C. elegans Witvliet 2020、Drosophila larva edges.csv、Petkova 2025 zebrafish)は、文書化されたデータパイプラインを通じて取得します。§「Requirements」と S1 外部検証スクリプトを参照してください。
これは何か/何ではないか
| ✅ このプロジェクト | ❌ このプロジェクトではないもの |
|---|---|
| コネクトームのクエリサービス(HTTP + MCP で 47 個のツール) | スパイキングニューロンのシミュレーター |
| モチーフ抽出パイプライン(実際のハエ → 派生モチーフ文書) | 生データ 5.63 GB のリポジトリ |
| 合成トポロジー生成ツール(生物学的モチーフ → エージェントグラフ) | 学習済み/ファインチューニング済みの重みを持つモデル |
| 生成されるすべての成果物に付与される W3C PROV の来歴情報 | 「仮想生物」が生きているという主張 |
最大のオフライン機能:generate はデータを必要としません。7 KB の派生モチーフスナップショットからトポロジーを組み立てます。実際の脳をクエリしたい場合にのみ、コネクトームデータが必要です。
ユニットライブラリの実情
116 個の機能ユニットは、根拠がどのように集められているかによって、明確に 2 つに分かれています。下流で何らかの主張を読む際は、この数を覚えておいてください。
| 区分 | 数 | 意味 |
|---|---|---|
| 実際の Drosophila の雄の脳細胞にひも付けられている | 37 / 116(31.9 %) | embodiment.real_cells_anchored > 0 — 各エッジは実際の MaleCNS v1.0 のニューロンにまでたどれます |
| 種をまたいだ記載、ひも付けなし | 79 / 116(68.1 %) | provenance.unanchored_reason = identity_not_in_drosophila または taxon_no_malecns_data — その回路は他の種について文献に記載されていますが、MaleCNS コネクトームには存在しません |
68.1 % の区分は欠陥でも、隠れたエラーでもありません。これは比較神経科学の基盤です。鳥のさえずり、哺乳類の皮質層、魚のマウスナー細胞、頭足類の垂直葉、アメフラシとヒルの CPG、昆虫のキノコ体など、すべてが名前付きの参考文献とともにライブラリに組み込まれており、ひも付けられたユニットと同じように組み合わせられます。しかし、ひも付けられた 37 個のユニットとは異なり、実際のコネクトームで測定されたものではありません。ライブラリを正しく読むには、116 という数だけでなく、この 2 つの数を合わせて見る必要があります。
使い方 — 今日実際に利用できる内容別の段階
「これは X です」という単一の売り文句ではなく、このプロジェクトの有用な機能は 3 つの段階に分けられます。どれが必要かは、何を構築するかによって異なります。
段階 1 — 今日から利用可能、オフライン、データのダウンロード不要。
3 種 × 4 つの軸(system/function/species/provenance)でニューロン回路を検索し、任意のユニット群から仮想生物のトポロジーを組み立て、4 つの標準 DEMO(哺乳類、昆虫、電気感覚、水泳)をエンドツーエンドで実行できます。これが、このプロジェクトの実際の姿である開発者向けツールです。flybrain search、flybrain compose、flybrain generate がこれを実現します。
段階 2 — AI エージェントの基盤を設計する人向け。
組み立てたトポロジーは W3C PROV-JSON を通じて実際の回路までたどれるため、下流のエージェントフレームワーク(LangGraph/CrewAI/AutoGen/SwarmLabs)は、出発点となるトポロジーを取り込み、各配線の判断の根拠を監査できます。これは汎用エージェント基盤ではありません。エージェント基盤に組み込む、生物学的な事前知識のレイヤーです。
段階 3 — このプロジェクトが明確に実現しないこと。
何かにおいて生物学を上回るものではありません(フェーズ 3 では否定的な結果が測定されており、そのような主張はしていません)。EM 再構築パイプラインの代わりにもなりません。学習済みモデルやスパイキングシミュレーターも提供しません。v1.x の変更履歴にこれらを約束する記載があったとしても、正直な答えは「それは当初の願望であり、撤回については docs/PROJECT_REALITY_ASSESSMENT.md に記録されています」です。
4つの優位性(宣伝文句ではなく、測定結果)
実験を実施しました。「明らかな」優位性のうち2つは、統制されたテストの結果、誤りだと判明したため、そのことも明示しています。
| # | 優位性 | 根拠 | 状態 |
|---|---|---|---|
| 1 | トレーサビリティ — 生成されたすべてのエッジを実在するニューロン/シナプスのクラスまで追跡でき、W3C PROV-JSON としてシリアライズされます | _verify.py 70/70;トップレベルフィールド prov_json(スキーマ v1.2.1) | ✅ 実証済み |
| 2 | 構造の簡潔さ — 遺伝的探索により、生物学的事前情報よりはるかに簡潔なグラフが見つかります | GA は、固定された57エッジに対して9~11エッジに収束 → 配線コスト −84% | ✅ 実証済み |
| 3 | 構造的安定性 — モジュールレベルの障害分離 | サンプリングしたトポロジーの 25 / 27 でモジュール型 H1 分離を確認(92.6%);スペクトル半径 ρ は 0.00~0.30% に維持 | ✅ 実証済み |
| 4 | 局所的な意思決定 — モジュールがそれぞれ独自の答えを出力します | 複数出力の実験で H1 は 5 / 28(17.9%)。単純なタスク/遅延≤2の場合のみ | ⚠️ 部分的 |
明示的に主張しないこと
| 観点 | 結果 | 主張を取り下げた理由 |
|---|---|---|
| 生の計算性能の優位性 | 7つのトポロジーのうち、ランダム構造を上回ったものは0 | 条件を揃えた対照 ESN キャリブレーションでは、モチーフの優位性は0/7で、差はノイズの範囲内 |
| エネルギー面の優位性 | 24回の実行のうち、ランダムを上回ったものは0 | SNN エネルギーの代理指標で中央値比は1.006(±5%)。一貫した向上はありません |
誠実さも特長のひとつです。再現可能な実験スクリプトは
integrations/swarmlabs/diagnostics/ に、レポートはリポジトリのルート
(SNN_ENERGY_REPORT.md、MULTI_READOUT_REPORT.md、FAULT_ISOLATION_REPORT.md)にあります。
インストール
このツールキットに必要なランタイム依存関係は1つ(connectome
エンジンがモジュールレベルでインポートするための numpy)で、来歴情報と
列指向 IO 用の追加パッケージは任意です。その他のサードパーティコードは不要です。次のいずれかの方法を選んでください。
リポジトリの状態: 2026-10-18 から 公開 されています。認証は不要です — 以下の clone コマンドをそのまま実行できます。公開前に履歴を監査し、クリーンアップしました (元の Tier-2 IP 漏洩については CHANGELOG v1.3.0 を、 公開化の16ステップの手順については docs/D3_REPOSITORY_PUBLICITY_DECISION_2026-10-18.md を参照してください)。
A. クローンして実行(推奨。エンドツーエンドで検証済み)
git clone https://github.com/lm203688/flybrain-connectome.git
cd flybrain-connectome
python flybrain_cli.py --help
B. 編集可能インストール(flybrain を PATH に追加)
git clone https://github.com/lm203688/flybrain-connectome.git
cd flybrain-connectome
pip install -e .
flybrain info
pip install -e . は 編集可能 なインストールです。flybrain エントリーポイントは
チェックアウト先を参照するため、ツールキットを確実に見つけられます。通常の
pip install . ではランチャーのみがインストールされるため、チェックアウト先を明示的に指定してください。
pip install .
export FLYBRAIN_HOME=/path/to/flybrain-connectome
flybrain info
この方法はドキュメント上だけでなく、CI で検証済みです。
.github/workflows/ci.ymlのpackageジョブでは、pip install ".[prov]"を実行し、コンソール スクリプトを呼び出して、FLYBRAIN_HOME経由でツールキットを解決し、生物個体を生成して、 成果物の不変条件を検証します。そのため、インストール手順が気づかれないまま古くなることはありません。
C. 任意:標準化された来歴バンドル
構造的な来歴情報(motif_provenance とスナップショットの sha256)は常に記録されます。
標準化された W3C PROV-JSON バンドル(prov_json)は、任意のパッケージ
dataprov によってシリアライズされます。
pip install dataprov # or: pip install "flybrain-connectome[prov]" (once on PyPI)
このパッケージがなくてもツールキットは動作します。prov_json は null になり、
get_provenance_bundle はクラッシュする代わりに、理由とともに prov_available: false を返します。
両方のケースは scripts/check_degraded_mode.py によって検証されます。パッケージがない場合は機能を縮退させ、
ある場合は実際にバンドルを生成する必要があります。
入手した内容を必ず確認する
flybrain info
解決されたツールキットのルート、モチーフのスナップショット、データディレクトリ、API キーの 状態、公開されているツールの数を表示します。問題が起きたように見える場合は、まずこれを実行してください。 「ImportError」を、原因が特定され修正可能な問題に置き換えられます。
実際の connectome を照会するには、データも必要です
MaleCNS v1.0 は CC-BY で、サイズは約5.63 GBです。意図的にこのリポジトリには含めていません。
export FLYBRAIN_DATA_DIR=/path/to/your/male_cns
generate と同梱のモチーフスナップショットは、データを一切必要としません。
クイックスタート
以下の
flybrain <cmd>はすべてpython flybrain_cli.py <cmd>としても実行できます (セットアップ A)。そのため、何もインストールせずにプロジェクトを試せます。
0. インストールを確認する
flybrain info
# -> toolkit root [ok] · motif snapshot [ok, 7363 bytes] · tools exposed: 36
1. コネクトームを提供する(任意 — 実データをクエリする場合のみ)
flybrain serve --port 8799
# or: python flybrain-connectome-mcp/run_api.py
2. 実際の脳にクエリする
export FLYBRAIN_API_KEY=<your-key> # set in config.json or env
flybrain query pair_synapses --args '{"pre":10540,"post":12569}'
# -> 711 (the real APL → DPM connection)
flybrain query connectome_overview
# -> {"total_synapses": 124177617, "annotated_neurons": 211577, ...}
3. 派生モチーフ文書を取得する
flybrain motifs --out motifs.json # live pull from the service
# offline snapshot (no server, no data): flybrain-connectome-mcp/motifs/swarm_agent_topology_motifs.json
4. 合成バイオトポロジーを生成する(オフライン、データ不要)
flybrain generate --blueprint predictive_coding_v2 --modules 5 --agents-per-module 8
# -> flybrain-connectome-mcp/generated_organisms/<name>.{json,html} + flybrain-connectome-mcp/swarmlabs/<name>.swarm.{json,yaml}
5. C. elegans の発生軸を読む
flybrain stages # L1 x4 / L2 / L3 / adult x2, measured per animal
flybrain stages --caveat # why the L1 columns are a floor
flybrain stages --unit cel_amphid_chemosensory_unit
6. 幼虫コネクトームのクラスタ台帳を読む
flybrain larva-clusters # network totals + per-unit coverage
flybrain larva-clusters --top 20 # the 20 biggest clusters
flybrain larva-clusters --unannotated
flybrain larva-clusters --caveat # what "covered" does and does not mean
7. MaleCNS の雄特異的二形性台帳を読む
flybrain composition # can declared combinations actually form?
flybrain costs # latency/energy per connection type
flybrain function # coverage by FUNCTION, not by species
flybrain function --vision # only what PROJECT_VISION requires
flybrain dimorphism # 2,368 cells nobody has looked at
flybrain dimorphism --provenance # ... with the curator note behind each sex label
flybrain dimorphism --top 20 --internal
flybrain dimorphism --caveat # what "male-specific" does not mean here
8. すべてが引き続き動作することを確認する
flybrain verify # needs FLYBRAIN_DATA_DIR set to your data
9. トポロジーをプロファイルする(オフライン、データ不要)
トポロジー対応レイヤーは、「この生物の形状は?」という問いを、呼び出し可能で
再現性のある答えに変換します。密度、次数のばらつき、相互性、モジュラリティ Q、
推移性、スペクトル半径(numpy を使わないべき乗反復法)、フィードバックエッジの
割合、有向 3 ノードモチーフの全数調査、決定論的な構造シグネチャが含まれます。
設計上、誠実さを保っています。not_measured は、構造プロファイルでは扱えない
対象(ダイナミクス、エネルギー、タスクのパフォーマンス)を明示します。
flybrain generate --blueprint predictive_coding_v2 --modules 5 --agents-per-module 6 --name demo
flybrain profile generated_organisms/demo.json
flybrain profile generated_organisms/demo.json --json # full profile
flybrain profile generated_organisms/demo.json --compare generated_organisms/other.json
Gate 15(scripts/check_topology_profile.py)によって自己検証されます。
リポジトリの構成
flybrain-connectome/
├── flybrain_cli.py ★ developer CLI (serve/query/motifs/generate/verify/info)
├── pyproject.toml zero deps, `flybrain` console script
├── LICENSE · CITATION.cff · CHANGELOG.md
├── flybrain-connectome-mcp/
│ ├── mcp_connectome/ query engine (core) + 47-tool MCP + HTTP API (:8799)
│ ├── motifs/ drop-in client + derived motif snapshot
│ ├── synthetic_bio_topology.py ★ C1 generator (motif → agent graph + config + PROV)
│ ├── _verify.py end-to-end smoke test (70/70)
│ └── flybrain-connectome-mcp/
│ ├── generated_organisms/ example artifacts (json/html + swarm configs)
│ └── swarmlabs/ swarm config exports
├── integrations/swarmlabs/ consistency checkers + diagnostics (reproducible experiments)
├── scripts/ run_gates.py · check_no_secrets.py · check_docs_consistency.py
│ check_mcp_tools.py · check_degraded_mode.py
│ check_generated_artifact.py · gh_publish.py
├── .github/workflows/ci.yml the same gates, on py3.10/3.12/3.13 + packaged-CLI job
└── docs/ arxiv_paper.md · mcp_setup.md · module_factory.md
HTTP API リファレンス
サービス:flybrain-connectome-mcp/mcp_connectome/api_server.py。
| エンドポイント | 認証 | 用途 |
|---|---|---|
GET /health | なし | 稼働状況 + バージョン |
GET /tools | キー | 47 個のツールと説明を一覧表示 |
POST /query | キー | {"tool": <name>, "args": {...}} → {"ok": true, "result": ...} |
認証: Authorization: Bearer <key> または X-API-Key: <key>。キーは
config.json(api_keys)または環境変数 FLYBRAIN_API_KEY から取得します。キーが
設定されていない場合、サーバーは起動ごとに一時キーを生成して警告を表示します。
ソースコードにコミットされたキーへフォールバックすることはありません。
47 個のツール(実際の名前です。捏造しないでください — scripts/check_docs_consistency.py によって
GET /tools と照合済みです):
実コネクトームのクエリ — ⚠ が付いた 11 個のツールには FLYBRAIN_DATA_DIR が必要です:
connectome_overview ⚠ · neuron_info ⚠ · pair_synapses ⚠ ·
neuron_outputs ⚠ · neuron_inputs ⚠ · degree ⚠ · search_neurons ⚠ ·
superclass_projection ⚠ · hub_targets ⚠ · list_superclasses ⚠ ·
pathway ⚠ · export_swarm_motifs
ジェネレーター機能 — オフラインでも利用でき、モチーフスナップショットから提供されます:
list_blueprints · list_modules · list_bio_motifs ·
batch_generate_topologies · get_provenance_bundle ·
list_stacked_blueprints · get_stacked_feasibility ·
list_neuropils · get_neuropil_detail · get_module ·
check_module_compatibility · compose_virtual_organism · list_virtual_organisms ·
list_presets · get_preset · apply_preset ·
organism_to_swarmlabs · get_module_agent_roles ·
save_market_organism · load_market_organism · list_market_organisms ·
rate_market_organism · search_market_organisms · delete_market_organism ·
list_combination_rules · validate_combination · expand_organism · get_multiplier_metrics · profile_topology · profile_health
機能単位の構成ライブラリ — ニューロン型の上位にある、組み合わせ可能なレイヤー:
list_functional_units · get_functional_unit ·
list_connection_types · list_evidence_ledger · compose_from_units
合成生物スキーマ
synthetic_bio_topology.design_organism(spec) の戻り値:
{
"organism": {
"nodes": [ {"id": "m0_rep", "role": "tissue_rep", "module": 0,
"profile": "memory", "ref_superclass": "CB", ...} ],
"edges": [ {"from": "m0_rep", "to": "m0_c0", "weight": -0.31,
"kind": "inhibitory", "module": 0, "ref_body": 10540} ]
},
"metrics": {
"n_nodes": 29, "n_edges": 18, "avg_degree": 1.24,
"inhibition_ratio": 0.11, "n_modules": 4,
"intra_module_edges": 14, "inter_module_edges": 4,
"modularity_est": 0.778, "profile_breakdown": { ... }
},
"blueprint": "predictive_coding_v2",
"motif_provenance": { // 3-stage traceability
"mode": "local_snapshot",
"motif_synapse_stats": { ... }, // % of the 124M-synapse dataset
"motif_query": "SELECT ...", // runnable provenance query
"blueprint_to_motif": { ... }
},
"prov_json": { ... } // W3C PROV-JSON bundle (schema v1.2.1)
}
W3C PROV-JSON(prov_json)バンドルには、wasDerivedFrom / wasAssociatedWith /
wasAttributedTo エッジで接続された entity / activity / agent ノードが記録され、
すべてのトポロジーが FlyCellAtlas と flybrain:dataset_anchor(MaleCNS v1.0)に帰属します。
yProv4ML、MLflow2PROV、MIT Sloan のプロベナンスツールで利用できます。
ブループリントとモジュールライブラリ
3つのカテゴリにわたる25個のブループリントを、270個のモジュールで構成しています: 10個の認知機能モジュール(感覚/記憶/運動/統合/注意/ ワーキングメモリ/報酬/罰/習慣/メタ認知)+ 種を超えた190種類の ニューロン型。これらには、皮質錐体細胞(L2/3 CX1/CX5、L4b/L4c、L5 basal tuft、L6 reticulo-thalamic、 L7 temporal、Mayeret)+ 中間介在ニューロン(Calbindin/LAMP/NPH/NPF/VLAC/SST-dendritic/ SST-somatic/KCN、およびPV/SST/VIP/chandelier/basket)+ 調節系(ドーパミン作動性 A9/A11/VMC/VTA/SNC、セロトニン作動性の背側/腹側/正中縫線核、ノルアドレナリン作動性LC、コリン作動性 MT/horizontal、ヒスタミン作動性TM、オレキシン)+ 網膜(双極錐体/桿体、アマクリンACL1/ACL2、 midget/PV神経節細胞、水平細胞)+ 脊髄/小脳(α/γ運動、Icc/Ih/Ihp介在ニューロン、 グリシン作動性、侵害受容性、プルキンエ/顆粒/星状細胞、下オリーブ核)+ 視床/大脳基底核 (LGN/MD/VA/VL/VPL/VPM/RTN、STN、赤核、線条体D1/D2 MSN)+ 辺縁系/境界領域 (海馬CA1/CA2/CA3/CA4/顆粒細胞/海馬台、扁桃体BLA/LA、隔壁、嗅内皮質L2/L3、 格子細胞)+ 特殊感覚(松果体、メラノプシン、嗅覚、前庭、蝸牛外有毛細胞)
-
反応性アストロサイトが含まれます。
-
脊椎動物の皮質に対応するものがないニューロンを持つ4つの系統群(さらに35種類。 それぞれに固有の
biological_referenceがあります):
- 昆虫(14) — キノコ体細胞/キノコ体出力細胞/PPL1-PAMドーパミン作動性細胞/APL、 触角葉投射ニューロンおよび局所ニューロン、前大脳橋/楕円体/扇状体/結節/環状ニューロン、 s-LNvおよび側方時計ニューロン、下行性ニューロン
- 鳥類(6) — HVC、RA、LMAN、Area X、DLM、NIf(歌唱システム)
- 魚類(8) — マウスナー細胞、網様体脊髄ニューロン、側線有毛細胞、 膨大部および結節性電気受容器、ELL錐体細胞、電気感覚抑制性介在ニューロン、発電器官ペースメーカー細胞
- 頭足類(7) — 垂直葉の大型/アマクリン/小型細胞、上前頭葉細胞、 色素胞運動ニューロン、腕運動ニューロン、腕感覚求心性ニューロン
- 2つ目の非皮質系統群:リズム、状態、誤差(さらに24種類、v1.6.0):
- 分節/末梢振動子(9) — ヒルの遊泳CPG介在ニューロンおよび体壁運動ニューロンとその機械感覚T細胞、 ホヤ幼生の運動ニューロンおよび眼点光受容細胞、アメフラシの感覚/運動/セロトニン作動性促進ニューロン、口球 神経節CPGニューロン
- 赤外線および両生類(5) — 三叉神経赤外線求心性ニューロン、赤外線視蓋マップ ニューロン、多感覚視蓋ニューロン、視蓋T5型の獲物検出ニューロン、舌運動ニューロン
- 誤差学習および状態(6) — 登上線維、小脳ゴルジ細胞、前庭神経核ニューロン、延髄 プレ・ベッツィンガー複合体ニューロン、横隔神経運動ニューロン、VLPOニューロン
- ナビゲーションおよび能動的センシング(4) — 頭方位細胞、場所細胞、バレル皮質 ニューロン、ひげ運動ニューロン
すべてのブループリントは、40種類のトポロジーモチーフ(MaleCNSから抽出した独自の3種類+解剖学的/機能的/可塑性/
特殊カテゴリにわたる概念パターン37種類)のいずれかに対応するか、motif: none(合成オーケストレーションで、生物学的事前情報なし)と
正直に明記されています。生物学的事前情報ありは16種類、なしは9種類です:
- 基本形5種類 — フラット/ハブ/リング/階層型/ランダムな参照トポロジー
- 生物学的モチーフ16種類 — 例:
predictive_coding_v2(recurrent_feedback+reward)、metacognitive_control(inhibitory_hub)、habit_consolidation(recurrent_feedback)、hierarchical_deep(reservoir_smallworld)… - 合成モチーフ4種類 —
rl_actor_critic、curiosity_driven、cognitive_control、multi_motif_blend(正直にmotif: noneと明記)
入れ子の構成a+(b+c)は、a+b+cと同型として解析されます。全リスト:
from flybrain_connectome_mcp.synthetic_bio_topology import BLUEPRINTS # (in-repo path)
# or after pip install: import synthetic_bio_topology as c1; c1.BLUEPRINTS
機械可読な同等の情報(同じデータをHTTP/MCP経由で提供):list_blueprints、
list_modules、list_bio_motifs。
機能単位および接続タイプのライブラリ
上記のニューロンリストは語彙です。構成単位ではありません。単一のニューロン型だけでは何もできず、2つをつなげても意味はありません。構成できるのは、既知のインターフェースを持つ関数です。そのため、このライブラリは2つの階層に分かれており、実際に構築に使うのは上位階層です。
- 116個の機能単位 — それぞれが1つの機能(光変換、行動選択、シータペーシング、グリア伝達、キノコ体の疎な符号化、リングアトラクターによる方位検出、歌のタイミング、マウスナー細胞による逃避、能動的電気定位、カモフラージュ、ヒルの遊泳リズム、赤外線熱画像、登上線維による誤差学習、睡眠/覚醒の切り替えなど)を担います。254個のモジュールから選んだニューロン集団のグループ(1~6個)を内部サブ回路に接続して機能を実現し、型付きポート(
light入力 →high_res出力、candidates+value入力 →selected_action出力)を公開します。 構成:哺乳類の大脳皮質を模した40個 + 系統群横断型16個(昆虫/鳥類/魚類/頭足類、v1.4.1)+ リズム/状態/誤差および能動的センシング型16個(環形動物、尾索動物、軟体動物、ピットバイパー、カエル、小脳、脳幹、海馬、バレル皮質、v1.6.0)+ ショウジョウバエ型10個(視葉、巨大線維による逃避、オスの求愛と歌、側角、v1.8.0 — すべて完全に根拠付け済みです。詳細は以下をご覧ください)。- ショウジョウバエ型5個(温度選好、摂食回路、脚の運動、マルチモーダルLAL、睡眠記憶、v1.10.0 — 最初のバッチは根拠付け済みです。詳細は以下をご覧ください)。
- C. elegansのコネクトーム由来4個(前進運動指令、接触回避反射、両親媒性化学感覚、侵害受容性回避 — v2.27.0。詳細は以下をご覧ください。それぞれにL1 → L2 → L3 → 成体の軸もあります。v2.30.0)。
- ショウジョウバエ幼虫のコネクトーム由来8個(
larv_olfactory_associative_learning_unit、larv_somatosensory_escape_unit、larv_gustatory_feeding_program_unit、larv_descending_motor_command_unit、larv_mushroom_body_feedback_unit— v2.28.0、3つ目のコネクトーム — さらにlarv_thermosensory_relay_unit、larv_visual_relay_unit、larv_respiratory_relay_unit— v2.29.0。追跡された感覚チャネルごとに1つの単位があります。詳細は以下をご覧ください)。
- 66種類の接続タイプ — それぞれが1種類の接続形式で、接続可能なポート型が制約されています。次の6つのファミリーがあります。 ミクロ(軸索樹状突起間/軸索細胞体間/軸索軸索間/樹状突起間…の点対点接触部位) · 回路(フィードフォワード/フィードバック/側方/相互/反回/脱抑制/勝者総取り/全体的な抑制性ゲイン制御/シナプス前フィードフォワード連鎖/遠心性コピーの相殺/半中心振動/グリッド位相の前進…) · 調節 (拡散性/容積伝達/逆行性/状態ゲーティング) · 電気的(ギャップ結合/エファプス結合/電気化学的混合/三者間アストロサイト/プラトー電位の双安定性) · 可塑性(STDP/LTP-LTD/短期/恒常性スケーリング/調節因子ゲーティング/反復活性化LTS/セロトニン作動性のシナプス前促通/短期馴化/同時性検出) · マクロ(地形的マッピング/発散的なファンアウト/収束的なファンイン/随伴性放電/全体ブロードキャスト/疎な拡張/指令ニューロンの動員/双安定状態スイッチ/温度のモダリティ横断的収束)。
したがって、代数的には 仮想生物 = 単位(ノード)+ 接続タイプ(型付きエッジ) となります。両端のポート型が宣言されているため、すべてのエッジを機械的に検証できます。
unit A .out_port[type] --connection_type(from_port, to_port)--> unit B .in_port[type]
compose_from_units は、ポート型の互換性、必須ポートの充足、生物全体の外部からの駆動可能性/読み取り可能性を検証し、フィードバックループを警告として報告します(意図的なフィードバックループも、ここでは第一級の要素です)。生物の境界にある未充足の必須入力は、その生物の外部入力であり、欠陥ではありません。内部サブチェーンを検証するには、allow_boundary_inputs: false を渡してください。
4 つの標準チェーンがフィクスチャとして用意されており、実行のたびに Gate 9 によって再検証されます。--demo mammal(網膜 → 視床 → 皮質 → 大脳基底核 → 運動視床)、--demo insect(触角葉 → キノコ体のスパースコード → 学習された価 → 中央複合体の方位・操舵、時計によるバイアスあり)、--demo electrosensory(EOD ペースメーカー → 遠心性コピーのキャンセル → 電気定位に加え、受動的な電気的手掛かりがマウスナー逃避指令へ入力)および --demo swim(ヒルの半中枢遊泳 CPG → ホヤ幼生の振動子 → カエルの網様体脊髄性逃避遊泳)です。
引数なしで --demo を実行すると、4 つすべてが実行されます。
発達段階の軸(v2.30.0)— L1/L2/L3/成体の各段階における同じ4つの回路
Witvliet 2020シリーズは2つではなく、8つの再構築データで構成されています。L1の個体が4つ、L2が1つ、L3が1つ、成体が2つです。以前、このライブラリに含まれていたのは成体の2つだけでした。現在は8つすべてが読み込まれ、個体ごとに測定されています。上記のC. elegansユニット4つには、それぞれ結果がprovenance.developmental_stagesに含まれています。flybrain stagesを実行すると表示されます。
| stage | dataset | cell classes | unique edges | synapses |
|---|---|---|---|---|
| L1 | 1 | 108 | 566 | 1,400 |
| L1 | 2 | 114 | 693 | 2,028 |
| L1 | 3 | 119 | 700 | 2,237 |
| L1 | 4 | 122 | 795 | 3,020 |
| L2 | 5 | 128 | 1,107 | 4,535 |
| L3 | 6 | 132 | 1,072 | 4,723 |
| adult | 7 | 135 | 1,565 | 7,867 |
| adult | 8 | 134 | 1,530 | 8,400 |
4つの回路をすべての段階で測定した結果(個体ごとのシナプス数):
| unit | L1 | L2 | L3 | adult |
|---|---|---|---|---|
| forward locomotion command | 26 / 34 / 41 / 66 | 92 | 87 | 125 / 179 |
| touch-avoidance reflex | 30 / 38 / 43 / 72 | 111 | 107 | 159 / 210 |
| amphid chemosensory | 97 / 127 / 150 / 199 | 301 | 267 | 433 / 495 |
| nociceptive avoidance | 21 / 22 / 31 / 64 | 76 | 69 | 110 / 144 |
この4行の値は合計と一致しません(v2.34.0)。 回路は細胞クラスの集合が互いに重複しないわけではありません。AIAは4つすべてに、AIB/AIZ/AVB/PVは2つまたは3つの回路に含まれています。そのため、AIZ → AIBのようなエッジは2つの回路の内部配線にあたり、両方で数えられます。列を合計すると、これらの回路に実際に含まれる配線を約1.27倍に見積もることになります。現在は段階ごとに両方の数値を報告しています。
| stage | sum of the four circuits | union (counted once) | inflation |
|---|---|---|---|
| L1 | 1,061 | 849 | 1.25× |
| L2 | 580 | 455 | 1.27× |
| L3 | 530 | 421 | 1.26× |
| adult | 1,855 | 1,456 | 1.27× |
「この個体の配線のうち、これらの回路に含まれる量」を調べる場合はunionを使用してください。回路を個別に数える場合に限り、合計を使用してください。抽出ツールは、回路ごとの行から合計を再構成できることを検証し、一致しない場合は書き込みを拒否するようになりました。
1つの回路は、関連付け先のユニットより広い範囲で測定されています(v2.35.0)。 PROFILESでは、touch-avoidance回路の細胞クラスが11個定義されており、その中にPLMも含まれます。しかし、extract_cel_profiles.pyは、定義されたクラスのうちモジュール内にエッジが実際に存在するクラスについてのみメンバープロファイルを出力します。成体の再構築データにはPLMのエッジがないため、v2.27ユニットに含まれるメンバーは10個で、cel.plmはこのライブラリ内のどこにも存在しません。8つの再構築データを統合するとPLMにはエッジがあるため、このシリーズでは11個を測定します。どちらも正しい結果です。ユニット名が同じであるため、まさにその理由で差異に名前も検証の仕組みもありませんでした。現在、アーティファクトにはこの差異がdeclared_vs_shippedとして記録され、シリーズで測定できないクラスをユニットが含む場合、抽出ツールは書き込みを拒否します。実用上は、touch-avoidanceの段階別数値をユニットと比較する際、その1クラス分を考慮し、直接比較しないでください。
16件すべての測定において、4つの回路はすべての段階のすべての個体に存在します(L1では6~37エッジ)。したがって、発達によって増えるのはシナプスの重みであり、新たなトポロジーではありません。
ここで重要となる境界。 副次的な結果として、L1には存在するものの成体には存在しないエッジの組が271個ありますが、これを発達中に一時的に存在するシナプスとして報告してはいません。L1のファイル1つに含まれる個別のエッジは566~795個で、L2のファイル1つに含まれる1,107個より少ないため、「L1で確認された」ことには再構築の深度が交絡しています。この交絡の影響を受けずに成立する主張のみを公開しています。cel_development_stages.jsonのcaveatフィールドにも、アーティファクト自体にこの点が記載されています。v2.34.0では、271という値は、ソースが変更された場合に再導出できないリテラル値として注意書きに書くのではなく、stage_diffs.l1_only_keysとして計算されるようになりました(l1_union_keys 1,188、adult_union_keys 1,980、shared_keys 917、adult_only_keys 1,063と併記)。
Larva クラスタ台帳(v2.31.0)— larva ネットワークのどれほどを各ユニットがカバーしているか
8 つの larva ユニットは、(cell_type, annotations) に基づいてノードを集約して構築されました。これにより、1 つの疑問が残りました。352,611 シナプスからなる larva ネットワークのどれほどを、実際にカバーしているのでしょうか。 flybrain larva-clusters は、116,922 個すべてのエッジをたどってこの疑問に答えます。
両方の端点の (cell_type, modality bucket) が、少なくとも 1 つのユニットがメンバーとして宣言している larv.* プロファイルに解決される場合にのみ、そのシナプスをカバー済みと数えます。どちらの端点も該当しないシナプスはフロンティアです。
| 指標 | シナプス数 | 割合 |
|---|---|---|
| 両端点を追跡可能 | 271,956 | 77.13% |
| フロンティア(どちらの端点もユニットが宣言していない) | 12,415 | 3.52% |
両端点の解決に基づくユニットごとの内訳:
| ユニット | シナプス数 | 割合 | 到達した細胞数 |
|---|---|---|---|
| 嗅覚連合学習 | 80,161 | 22.73% | 548 |
| キノコ体フィードバック | 74,960 | 21.26% | 530 |
| 体性感覚による逃避 | 57,262 | 16.24% | 942 |
| 下行性運動指令 | 53,824 | 15.26% | 910 |
| 温度感覚リレー | 22,981 | 6.52% | 361 |
| 視覚リレー | 20,712 | 5.87% | 358 |
| 味覚摂食プログラム | 6,428 | 1.82% | 525 |
| 呼吸リレー | 2,736 | 0.78% | 275 |
3 つの細胞クラスは、どのユニットにも完全に含まれていません。ラベルなしクラス(346 細胞)、MB-FFN、pre-DN-SEZ です。
プロファイル ID の _unannotated は「注釈なし」を意味しません(v2.36.0)。 43 のプロファイルクラスのうち 15 クラスにこの接尾辞が付いていますが、これは注釈に関する判定ではなく、bucket() によるモダリティ認識のフォールバックです。たとえば、annotations 文字列が文字どおり KC の細胞にはモダリティを示すキーワードが含まれていないため、名前が完全に付いていてもフォールバックバケットに分類されます。この 15 クラスのうち 13 クラスには注釈付き細胞が含まれており、その数は合計 1,686 細胞です。例として、larv.kc_unannotated(144 細胞、すべて KC と注釈)、larv.mb_fbn_unannotated(100 細胞、すべて CN-10; FAN-2 のように注釈)、larv.mb_ffn_unannotated(54 細胞、すべて FFN-23 とその近縁名)があります。この README の以前の記述では、フロンティアの一覧を注釈の判定として解釈していましたが、この点が誤りでした。MB-FFN の 54 細胞にはすべて名前が付いています。
ネットワーク全体の数値は変わりません。1,560 細胞(52.77%)には公式な注釈が本当にありません。この数値は annotations 列を直接参照し、バケットには一切触れずに算出されるためです。誤っていたのは、名前の解釈でした。ID は変更されていません(40 個のプロファイルキーがあり、gate 9 や公開済みの各種アーティファクトでは、引き続き名前でインデックス化されています)。現在は annotation_identity でこの 2 つの概念を分けて測定し、各ユニットには member_id_caveat として記録しています。
ユニットごとの行も合算できません(v2.34.0)。 19 個の larv.* プロファイルが複数のユニットによって宣言されています。larv.lhn_unannotated、larv.lhn_mechano、larv.kc_unannotated などが該当します。そのため、同じシナプスがそれぞれのユニットに対して正当に数えられます。8 行の合計は 319,064 で、カバー済みの合計 271,956 の 1.17 倍です。ネットワークのカバレッジには全体の和集合の値を使い、ユニットごとの行はユニット間の比較にのみ使ってください。共有プロファイルの一覧は unit_attribution にあり、flybrain larva-clusters --caveat で表示できます。抽出処理では、合計がカバー済みの合計を超えることのみを許容すること、カバレッジの区分の合計が一致すること、クラスタごとの internal + out がネットワークを再構成することを検証します。
細胞数を基準にしたのは誤りでした。 larva ネットワークには公式な注釈のない細胞が 1,560 個あり、全ニューロンの 52.77% を占めます。この数によって、ネットワークは大部分が未特性化されているように見えていました。これらの細胞は合計 212,542 個のシナプス、つまり全体の 60.28% に関与しています。これは、ユニットが未注釈の集団を補完的な役割として実際に宣言しているためです。カバレッジと特性化は別の概念であり、この台帳では意図的に分けています。ユニットが larva のシナプスの 4 分の 3 をカバーしていても、その未注釈のメンバーの機能は不明なままである可能性があります。クラスタ 0 は、著者らによる未割り当ての分類先であり、364 細胞を含みます。ネットワーク全体で最も多くのシナプス(51,211)を持つクラスタですが、ここでは機能を割り当てていません。
雄の二型性台帳(v2.32.0、監査済み v2.33.0)— 雄のコネクトーム内の2,368個の細胞
MaleCNS v1.0は雄の再構築であり、そのアノテーションテーブルには
dimorphism列があります。このライブラリでは、これまで誰もこの列を読んでいませんでした。58個のアンカー付きプロファイルは
superclass / typeをもとに作成されており、typeは性別を考慮していないためです。
flybrain dimorphismは151,856,684件すべての結合行を読み込み、各エッジについて、両端の少なくとも一方がこの列でフラグ付けされた2,368個の細胞体のいずれかかどうかを調べます。
| 項目 | 値 |
|---|---|
| 細胞体/細胞型 | 2,368 / 479 |
| 集団に接するエッジ | 5,875,648組 — 22.97% |
| 集団に接するシナプス | 13,376,848 — 10.77% |
| 両端が二型性を持つエッジ | 284,982組 — 1.11% |
| 両端が二型性を持つシナプス | 1,589,267 — 1.28% |
**最後の2行の差が今回の発見です。**雄の集団は孤立していません。広くつながる薄い部分集合であり、その大部分は普遍的な細胞とやり取りしていて、触れるシナプスのうち、自身の細胞同士の間にあるのはおよそ9分の1にすぎません。この数値に基づいて「雄の回路」を定義するなら、その規模は1.28%ということになります。これは周囲のネットワークの測定ノイズよりも小さい値です。そのため、回路は定義しません。FUNCTIONAL_UNITSは115のままとし、29個のユニットがprovenance.male_dimorphicにこの集団までの距離を記録しています。
合計が最も大きい細胞型はTmY21(細胞体372個、シナプス732,527個、ネットワークの0.590%)です。両端が該当するペアで最も大きいのはTmY21 → LoVP92(エッジ442件/シナプス2,721個)で、次がAN09B017b → mAL_m1、その次がpC1_2a → mAL_m8です。
**ここで「大きい」とはどの程度か(v2.33.0)。**v2.32.0では比較対象なしで合計値を示していたため、oviINの細胞体2個/シナプス196,360個が誤りのように見えていました。「1ニューロンあたり1,000~10,000」という俗説の10倍にあたるためです。しかし、誤りではありません。このコネクトームにおける細胞体あたりの分布は裾が重い分布です。
| 細胞体あたりのシナプス数(アノテーション済み細胞体) | 中央値 | p90 | p99 | p99.9 | 最大 |
|---|---|---|---|---|---|
| シナプスを持つ細胞体191,696個 | 1,164 | 4,636 | 19,816 | 48,496 | 271,220 |
したがって、oviINは99.98パーセンタイルに位置します。外れ値ではなく、長い裾の最上部です。一方、合計が最も大きい細胞型であるTmY21は、細胞体あたりではわずか72パーセンタイルです。細胞数と細胞あたりの結合強度は別のものであり、台帳では今回から両方を記録します。
細胞型名からは分からない3つのこと(v2.33.0)。1つ目に、アノテーションテーブルには独立した細胞型の軸が3つあります。type(MaleCNS、11,751クラス)、flywireType(8,199)、hemibrainType(4,495)であり、typeとflywireTypeは33.08%の細胞体で一致しません。この台帳のTmY21は、FlyWireではTm36と呼ばれるクラスです。この別名は、上位の細胞型すべてに付記されます。アンカー付き細胞型名5,413件すべてがtype軸に属することを確認済みであり、そうでなくなった場合、スクリプトは書き込みを拒否します。2つ目に、各細胞型には、性別ラベルに加えてキュレーター自身によるmatchingNotesの文(oviIN:「雄では樹状突起がより広範」)と、そのトレースの評価が付記されるようになりました。479個の細胞型のうち、こうした注記があるのは150個で、327個はRoughly tracedにとどまります。3つ目に、細胞型ごとの合計値を実行のたびに検証するようになりました。各ペアは二型性を持つ端点ごとに1回ずつ計上されるため、合計は「集団に接するエッジ」+「両端が該当するエッジ」(14,966,115)と一致する必要があります。一致しない場合、抽出スクリプトは書き込みを拒否します。v2.32.0では一致していませんでした。内部ペアを4回計上していたため、細胞型ごとの数値すべてが内部合計の3倍分だけ膨らんでいました。
この台帳では分からないこと。MaleCNSには雌の再構築が含まれていないため、dimorphismラベルはキュレーターによるアノテーションであり、ここで比較した結果ではありません。「雄のほうが大きい」ことを裏付けるものはなく、生成物自体のcaveatフィールドにもその旨が記載されています。カウンターも2つに分けてあります。アンカー付きプロファイルの細胞型リストに記載されている二型性細胞型は194個(誰かが確認した細胞型)であり、479個すべてが何らかのアンカー付き^XXXファミリールールに含まれています。ファミリーへの所属はトレース済みであることを意味しません。
接続コストの軸(v2.38.0)— 各接続にかかるコストと、断言できないこと
PROJECT_VISION.md では、生成器が生物学的ライブラリを事前分布として、あらゆる目標を最適化できるとしています。フェーズ3ではこれを検証し、構造については最適化器が性能を上げられる(配線コスト −84%)一方、主要な計算に関する主張は否定的で、7つのトポロジーのうちランダムを上回ったものは0という結果でした。
原因は最適化器ではなく、語彙にありました。66種類の接続タイプには、delay_class として3つの記号値(immediate/short/long)があり、parameters ブロックには単位がありませんでした。レイテンシがカテゴリで、エネルギーもないため、トレードオフに使える軸は構造だけでした。flybrain costs では、引用元がある場合は数値を、ない場合は unknown を追加します。
| 基準 | レイテンシ | 出典 |
|---|---|---|
| 化学シナプス | 0.5–4 ms | Guyton & Hall 2008 p.570 では最小値を0.5 msとし、典型値は0.5–4 msとしています |
| 電気シナプス | 0.05–0.2 ms | 0.2 ms未満とされ、多くの場合、瞬時と呼ばれます |
| 容積伝達 | 10–1000 ms | 拡散雲。その広がり自体が機構です |
| 逆行性メッセンジャー | 1–60 ms | 順行性の放出より遅く、容積拡散より速いです |
| 回路モチーフ/マクロ形状/可塑性ルール | なし — unknown | 接触部位ではなく、コストが創発するパターンです |
66種類中16種類にレイテンシがあり、50種類にはありません。この内訳こそが重要な結果です。 数値があるタイプはすべて実際の接触部位です(ミクロ 9/10、電気 3/7、調節 4/6)。回路モチーフ20種類、マクロ形状13種類、可塑性ルール10種類には、単一接触の遅延はパターンに対して定義されないため、どれも数値がありません。各要素の遅延を組み合わせれば、モチーフのコストが決まります。エネルギーは66種類すべてにあります。モチーフ全体で合成できる一方、レイテンシは合成できないためです。この非対称性は設計上のものです。
ルールにより21種類にはレイテンシがありません。 abstraction_only としてフラグ付けされています。勝者総取りや半中心振動子は設計パターンであり、生物学的な接触ではありません。また、自シナプスは化学的には化学シナプスですが、設計パターンとしては、文献から得られる遅延値がありません。仮定を測定値と合算しないよう、これらの delay_class は designed_cost に保持されています。レイテンシは単一値ではなく範囲です。速いシナプスを選ぶと信頼性が犠牲になるため、その幅がトレードオフを表します。
この軸は実際に最適化器を誘導するのでしょうか?(v2.39.0) 最適化されないデータは飾りにすぎないため、cost_aware_optimization_experiment.py では同じGAを2回実行します。探索空間、予算、評価シードは同じにして、目的関数だけを変え、レイテンシのペナルティが実際にレイテンシを下げるかを調べます。
単位の粒度では検証できません。これは測定された事実です。 115ユニットのうち、レイテンシ軸上にすべての接続タイプがあるのは14ユニットのみです。残りの101ユニットにはレイテンシ不明のタイプが含まれ、レイテンシ不明の割合の**中央値は100%**です。そのため、5~6ユニットの生物体にはほぼ必ずそのようなタイプが含まれ、レイテンシ値がまったく得られません。
接続タイプの粒度では機能します。 エッジ数を6に固定した場合:
| struct_only | cost_aware | |
|---|---|---|
| エッジ数 | 6.00 | 6.00(変化なし) |
| レイテンシ | 1536.62 ms | 16.40 ms(−98.9%) |
| エネルギー | 0.414 | 0.383(−7.4%) |
配線を増やさず、エネルギーも抑えながら、レイテンシを99%削減できました。これはパレート改善です。高速なタイプ(電気、0.05–0.2 ms)は、コストも低いためです。4つのパラメーター設定では、k=6で同一の−98.9%が2回、k=8で−51.2%、そしてk=10では+73%となり、この軸は機能しなくなります。高速側の16種類のレイテンシ値付きタイプだけでは、10タイプの候補を埋められないためです。容量の境界は平均化して隠すのではなく、成果物に残されています。
オプティマイザーによって、測定上の問題が3つ見つかりました。いずれも私が原因です。
unknown を 0 ms として扱ったため、測定不能なものを選ぶのが最も勝ちやすくなり、誤った −99.9% が報告されました。代わりに最も遅いレイテンシを割り当てたところ、GA は測定不能なタイプを追加するよう学習し、3回の実行でレイテンシが16~19%上昇しました。また、候補のサイズを固定しなかったため、GA はすべての候補を1タイプに縮小し、トポロジーを削除して99.9%の勝利を報告しました。3つすべてに対する修正は同じです。未測定のタイプは、安価でも高価でもなく、比較不能です。そのため、これを含むトポロジーはレイテンシの順位付けから除外し、候補のサイズは仮定ではなくアサーションで検証します。
GATE 12 はこれを徹底します。設計の抽象化にレイテンシが追加された場合、範囲の形式が不正な場合、最速の電気シナプスが最遅の化学シナプスより厳密に速くない場合(この軸が表現するトレードオフです)、段階値に根拠が示されていない場合、またはいずれかのタイプからエネルギー項目が失われた場合に失敗します。
機能軸(v2.37.0)— 種ではなく機能によるカバレッジ
ライブラリは分類群ごとに構成されています。116個のユニットには48種類の異なるsystem値と60種類を超える異なるfunction値があり、名前も解剖学的です。
cortical_、retinal_、larv_、cel_、frog_、birdsong_。これは種ごとの回路のカタログであり、機能ライブラリではありません。PROJECT_VISION.mdが求めているのは後者であり、ジェネレーターが目指して拡張する対象として、その集合を示しています。
flybrain functionはその隔たりを測定します。各ユニットには、自身のcapability / task_hint_poolフィールドで宣言されている機能カテゴリがタグ付けされます。説明文から何かを推測することはなく、ユニットの追加、名称変更、再分類も行いません。
PROJECT_VISIONが求める15カテゴリのうち:
| 状況 | カテゴリ |
|---|---|
| 不足 | なし(v2.41.0で最後の1つであるmetacognitionを解消し、v2.42.0で視覚以外の2つであるhomeostasisとneuromodulationを解消しました) |
| カバレッジが薄い(3ユニット未満) | attention(2) · habit(1) · metacognition(1) · punishment(1) · working_memory(1) · motor_command(2) · motor_relay(1) |
| カバレッジあり | integration(4) · prediction(6) · reward(5) · associative_learn(9、4分類群) · memory_encode(11) · memory_readout(5) · sensory_relay(16) · sensory_transduction(6) |
実態を正確に測るには分類群の広がりを見る必要があり、これがライブラリ最大の課題です。
coveredはユニット数を数えるため、1種だけが担うカテゴリもカバレッジありと判定されます。各必須カテゴリを実際に担う分類群の数で分けると、次のようになります。
必須カテゴリ15個のうち、3つ以上の分類群にまたがるのは
associative_learnの1つだけです。残り14個は、単一分類群による実装です。
GATE 11はこの分類をマトリックスから導出し、手作業で記述された場合や、気づかれないまま改善された場合に失敗します。ライブラリは115個の回路を生成できますが、形態ジェネレーターに必要な、種をまたいで機能を一般化することはまだできません。この課題を解消するには、根拠のある新しいユニットが必要です。文献による検証、JEVの実行、プロファイルへの登録をそれぞれ行うものを、およそ14個追加する必要があります。
メタ認知、最後に欠けていたカテゴリ(v2.41.0)
116 個すべてのユニットを対象に、名前、機能、説明に confidence、
uncertainty、metacognit、precision、attentional が含まれているかを
調べましたが、該当するものはありませんでした。この不足は実際に存在し、
タグのない 48 個のユニットでも補えませんでした(それらの能力は
oscillate や reflex のような機構を表す動詞だからです)。そのため、
6 つのプロファイルを持つ prefrontal_metacognitive_unit が必要でした。
文献では、「確信度の中枢」が 1 つあるのではなく、2 つのネットワークが
区別されています。dACC と島皮質は客観的な不確実性を担い、報告された
確信度と負の相関を示します。VMPFC と pgACC は主観的な感覚を担い、
正の相関を示します。そして外側前頭極は、内的な推定を公的な報告に
対応づけます。これは確信度そのものとは分離可能な段階です。JEV の結果は
PARTIAL(文献 0.76、モデル 0.56、スコア 4)でした。十分に文書化されて
いますが、計算論的には検証されていません。処理中にはフェイルクローズの
ゲートが 2 つ作動しました(JEV の判定なし、続いてメンバーが
MODULE_PROFILES に含まれていない状態)。どちらも迂回されませんでした。
この軸についての率直な要約:24 カテゴリ中、3 つ以上の分類群が該当するのは
わずか 2 つです(associative_learn、credit_assign)。また、116 個の
ユニットのうち 41 個は、どのカテゴリにも属していません。分類群を横断した
カバレッジは、このライブラリの最も弱い側面であり、今や印象ではなく数値で
示されています。タグは、ユニットがそのカテゴリを実装する機構を宣言して
いることを意味します。これはカバレッジのラベルであり、ユニットがその機能を
うまく実行するという主張ではありません。
キーワードの修正と照合根拠(v2.42.0)— マトリックスを信頼できるものにする必要がありました
v2.42.0 では、ライブラリがすでに宣言しているにもかかわらず、2 つのカテゴリが
ユニット数 0 と報告していた問題を発見しました。homeostasis のキーワード
リストは homeostasis、thermoregulation、circadian_rhythm、
fluid_balance でしたが、ライブラリではこの概念を circadian_pace、
oscillate_circadian、circadian_track、sleep_wake、
metabolic_support と表現しています。neuromodulation も同様で、6 個の
トークンは何にも一致しませんでしたが、12 個のユニットが modulate、
modulation、peptide_release、calcium_wave として宣言していました。
どちらも missing と判定されたため、ライブラリにすでに存在するものを
「構築する」よう作業キューが示していました。
修正では、マッチャーの条件を緩めるのではなく、ライブラリで実際に使われている
単語を追加しました。候補トークン 2 つは、すべての能力文字列を調べた後に
却下され、その却下理由は見落とされないよう function_coverage.json に
記録されています。
| token | would have gone to | why it was refused |
|---|---|---|
rhythm_generate | homeostasis | すべての CP とパターン生成器(spinal_cpg_unit、respiratory_rhythm_cpg_unit、courtship_song_pattern_unit …)に一致します。リズムの生成は運動出力であり、内部変数を一定範囲に保つことではありません |
broadcast | neuromodulation | value_broadcast と arousal_broadcast はコマンドのブロードキャストであり、多数の標的のゲインを変える拡散性シグナルではありません。部分文字列に引っかかる問題が、今度はトークン全体で再発する形です |
各タグには、マッチしたトークンが記録されるようになりました。
match_evidence[unit] = ["cap <- token", …]。GATE 11 は、ユニット自身の
capability / task_hint_pool フィールドから213 組すべてを再導出し、
再現できないタグの書き込みを拒否します。spinal_cpg_unit に偽の
rhythm_generate <- circadian という証拠エントリを与えた障害注入テストでは、
ゲートが the tag was not earned という理由で失敗しました。これが、
カバレッジマトリックスと偶然の一致を報告するだけのものとの違いです。
このゲートができる前、マトリックスは 3 回も実態以上に見積もっていました。
構成の意味論(v2.40.0)— ライブラリは組み立て可能か?
composable_with は、どのユニット同士を接続できるかを決めますが、v2.40.0 まではこれをチェックするものがありませんでした。ゲート 1~12 では、ユニットの形式が正しいこと、関数の網羅率が測定されていること、レイテンシが記載されていることを検証していましたが、宣言された組み合わせを実際に構成できるかどうかは確認していませんでした。
115 個のユニットにわたる 163 件の宣言の内訳は次のとおりです。
| 状態 | 件数 |
|---|---|
| 相互に宣言され、かつポート型が一致 | 28 |
| 一方向だが、ポート型は一致 | 38 |
| 宣言されているが、一致するポート型がない | 97 |
使用可能な組み合わせ:相互に宣言されたペアが 23 組、一方向だが到達可能な組み合わせが 28 件です。 たとえば、amygdala_fear_unit は out: limbic.fear を公開していますが、hypothalamic_arousal_unit が受け付けるのは arousal.state / rhythm.circadian のみです。一致するものがないため、この構成は構築できません。
v2.41.0 で修正されました。 ビルダーは宣言をそのまま受け入れなくなりました。suggest_composition は、相手のユニットもその組み合わせを宣言しているかポート型が実際に一致する場合にのみエッジを出力し、除外したものすべてを理由とともに skipped_edges に記録します。そのため、破棄された構成を黙って処理するのではなく、確認できるようになりました。strict=False にすると従来の動作に戻ります。memory クエリでは、strict モードは 2 個のエッジを保持し、1 個を
reason: ports_cannot_meet_and_not_reciprocated
の理由で除外します。従来の動作では 3 個が保持されました。
GATE 13 はソースコードの grep ではなく、動作で検証します。suggest_composition を呼び出し、strict モードが従来の動作より多くのエッジを返さないこと、また保持リストとスキップリストの両方に同じものが現れないことを確認します。
問題がない点:internal_wiring には参照先のないロールが 0 件あり、115/115 個のユニットが入力ポートと出力ポートの両方を公開しています。
ゲートは不正なデータにも対応する必要がありました。最初のバージョンは、存在しないユニットを指定する composable_with エントリがあるとクラッシュしました。不正な参照 1 件で停止するゲートでは、残りの問題を報告できません。これを修正した結果、参照先のないロールと参照先のないターゲットを両方注入すると、両方を報告して終了コード 1 で終了します。
GATE 11 は整合性を保ちます。 ライブラリがビジョンの要件を満たしているかを問う、最初のゲートです。抜けがあること自体では失敗しません。抜けのリストそのものが作業キューです。失敗するのは、抜けが見えなくなった場合です。たとえば、サマリーとマトリックスが一致しない、カテゴリにライブラリに存在しないユニットが記載されている、タグ付きとタグなしの合計がライブラリのサイズと一致しなくなる、あるいは cross_species の主張がその件数と矛盾する場合です。
MaleCNS の実体化(v1.7.0、v1.8.0 で高密度化)
ここまでの情報はすべて文献に基づいて整理されたものです。そのため、読者が最初に抱く疑問、すなわち「これらのユニットのうち、名前の由来となったハエの脳に対応するものはあるのか」に、ライブラリは答えられませんでした。functional_units/malecns_anchors.json(scripts/build_malecns_anchors.py で生成)は、正直に答えられる範囲について、その疑問に答えます。
- 実在性。 116 個のユニットのうち 37 個は、メンバーの集団が実在する注釈付き MaleCNS v1.0 の細胞型に対応しています。ライブラリ全体では、204 個のニューロン集団のうち 58 個が実在する 107,558 個の細胞をカバーしています。キノコ体ユニットの
kcロールは、実在する 15 種類の KC(KCg-m、KCab-m、KCa'b'-ap2…)に属する実在のケニヨン細胞 4,064 個、inputロールは、145 種類(DA1_lPN、VM5d_adPN…)に属する実在の触角葉投射ニューロン 583 個、gabaロールは、実在する APL 細胞 2 個です。照合には、明示的な名前規則とデータセット独自のsuperclassの両方を使います。名前規則だけでは、時計ニューロンDN1a/DN1pAと内分泌細胞DNES1-3まで下降性ニューロンのアンカーに含まれてしまうためです。完全な照合リストはアーティファクトに記録されており、スクリプトを信頼するのではなく JSON を確認することで、規則の誤りを監査できます。 - 想定ではなく実測した構造。 実際のシナプステーブルを一度処理することで、完全な 27×27 の superclass 行列と、アンカー付き細胞型行列が得られます。これらは
connectivity_stats.jsonと個別に照合されており、25,582,938 個のエッジにわたる124,177,617 個のシナプスという値で一致しています。したがって、宣言された各ユニットエッジには、両方の集団に属する実際の細胞型間で実測されたシナプス数が割り当てられます。触角葉 PN → ケニヨン細胞は、21,658 個の接続済み細胞型ペアにわたって 378,315 個、ケニヨン細胞 → キノコ体出力ニューロンは 463,640 個、ケニヨン細胞 → APL は 210,352 個のシナプスを示します。また v1.8.0 では、ショウジョウバエをモデルにした新しい 10 個のユニットも、配線を書き込む前に同じテストを通過しています。T4/T5 → 小葉板接線細胞は 296,217 個、髄質内在ニューロン → T4/T5 は 1,924,544 個、PN → 側角は 391,155 個、巨大繊維 → TTMn は(実際の電気・化学混合シナプスにおける)有名な 90 個、pC1 → pIP は 1,973 個、AMMC → pIP は 90 個のシナプスを示します。 - 細胞型ペア解像度でのサポート段階(v2.2.0)。 プロファイルレベルのカウントは依然として矛盾を判定する基準ですが、もはや判定のすべてではありません。宣言された各エッジについて、さらに5,413×5,413 のアンカー付き細胞型ペア行列を調べ、実際のシナプスを持つ個々の
(from_type, to_type)ペアの数を数えます。これにより、多数の細胞型に広がる経路と、たまたま 1 組のペアだけが寄与したプロファイルレベルの非ゼロ値を区別でき、細胞型セットでの判定では問題なしとされていた FRAGILE エッジ 6 個が明らかになりました。giant_fiber_escape_unitのGF → TTMn(4 ペア中、実際にシナプスがあるのは 1 ペア:DNp01 → TTMn= 90)とGF → PSI(1 ペア:DNp01 → PSI= 16)、auditory_song_reception_unitのAMMC → aSP(240 ペア中、実際にシナプスがあるのは 1 ペア:AMMC012 → aSP10A_b= 19)、cb_efferent_command_unitのPN → CB-efferent(145 ペア中、実際にシナプスがあるのは 1 ペア:VP2+Z_lvPN → GNG656= 2)、およびbuccal_efferent_feedback_unitの両エッジ(LN-DN2 → DNg28= 16、DNg28 → PhG3= 3)です。109 個のエッジは SUPPORTED(実際にシナプスがあるペアが 2 組以上)、6 個は FRAGILE(1 組のみ)、1 個は CONTRADICTEDです。FRAGILE は新たな誠実性の段階であり、新たな矛盾ではありません。これらのエッジには実測による裏付けがありますが、強い証拠として引用すべきではありません。Gate 10 は生の行列からすべての段階を再導出するため、手書きの段階指定は維持されません。 - 確認ではなく反証。 非ゼロのカウントが意味するのは、細胞型セットの解像度で宣言されたエッジが否定されないということだけです。宣言された接続形式がハエの実際の接続形式であるかどうかは分かりません。ゼロのカウントは実際の矛盾であり、ライブラリには 1 件だけあります。
central_complex_steering_unitのnod -> fb投射は、このリリースの Nod 集団(5 種類、12 個の細胞。データセットではvisual_projectionに分類)には見られません。問題なく通るようにひそかに書き換えるのではなく、UNSUPPORTED として残し、フラグを付けています。理由とともにACKNOWLEDGED_CONTRADICTIONSに登録されていない矛盾があれば、Gate 10 は失敗します。 - 残りの 146 個の集団は、理由を明示したうえでアンカーされていません。黙って除外しているわけではありません。131 個はショウジョウバエ以外のもので(鳥類の歌唱系、魚類のマウスナー細胞と電気受容、頭足類の垂直葉、哺乳類の皮質クラス)、5 個は十分に限定して確実に解決できず、10 個は単一の細胞クラスに対応しない抽象的な認知モジュールです。アンカーされていない各ユニットには、プロファイルの分類から導出され、手作業で指定されるのではなく、機械検証可能な
provenance.unanchored_reasonも設定されています。値は 3 種類(taxon_no_malecns_data/identity_not_in_drosophila/abstract_module_no_cell_type)であり、ユニットにアンカーがない理由を読者が推測する必要はありません。現在の 66 個はすべてidentity_not_in_drosophilaに該当します。そのうち 58 個はショウジョウバエ以外の細胞クラスのみを参照し、8 個はそれらと、解決するには広すぎた 5 つのプロファイル(interneuron_kcn、interneuron_lamp、interneuron_npf、interneuron_nph、olfactory_receptor)を組み合わせています。アンカーされていないユニットのメンバーがすべて抽象モジュール、またはすべて種内データがないものに該当するケースはありません。そのため、ほか 2 つの列挙値は用意されていますが、現在は使われていません。Gate 10 は各ユニットの理由が分類から導出される理由と一致することを検証するため、手入力した理由は維持されません。 誠実な境界設定。 これらのユニットは、比較神経科学の文献から、それぞれ出典を明記して選定したものです(97 個すべてでprovenance.extracted_from_malecnsはfalseです)。元のハエのモチーフ 3 種とは異なり、MaleCNS v1.0 から抽出したものではありません。メンバー比率は構成比であり、測定された細胞数ではありません。provenance.embodied_in_malecnsは、実際に注釈付けされた細胞に集団を対応付けられる 31 個のユニットを示します。実体化によって、構成要素が存在し、宣言されたエッジが矛盾していないことは確認できますが、宣言されたマイクロ回路やその接続形態が証明されるわけではありません。このレイヤーは、測定済みの細胞集合体ではなく、文献に基づく、組み合わせ可能な足場として扱ってください。
機械可読な同等機能:list_functional_units、get_functional_unit、list_connection_types、compose_from_units。python scripts/gen_functional_units.py と scripts/check_functional_units.py で再生成・検証できます(Gate 9。生成物がジェネレーターと食い違う場合、メンバーニューロンが語彙に存在しない場合、またはコンポーザーが不正な配線を拒否しなくなった場合、ビルドを失敗させます)。実体化レイヤーは python scripts/build_malecns_anchors.py で再構築し、scripts/check_embodiment.py で固定します(Gate 10。マトリクスから測定数をすべて再計算し、生のタイプペアマトリクスからすべてのサポート階層を再導出し、実行ごとに 9 件の欠陥を再注入します。また、未承認の矛盾や手入力の理由が含まれる場合は出荷を拒否します)。
科学と論文
手法、4 つの防護策、反証された 6 つのメカニズム、2 つの否定的結果について、docs/arxiv_paper.md にまとめています(プレプリント公開可能な状態です)。
研究における自己検証の規律(S6–S9)
このプロジェクトでは、オープンソースツールでは一般的ではないものの、研究の完全性に不可欠な、4 つの科学的な自己検証の規律に従っています。
-
S6 · 対照群の採点可能性 — すべての対照実験で、対照群にすべてのタスクカテゴリについて採点可能なサンプルがあることを検証する必要があります。あるカテゴリが対照群では構造上採点できない場合は、そのカテゴリを除外するか、別途報告する必要があります。(P1 で誤った +33.4pp の結果を発見。)
-
S7 · 解像度の事前確認 — スキャン実験を開始する前に、目標解像度がパラメーター空間の幾何学的な上限(
clamp_density = n_nodes / (n * (n-1)))に合致することを検証します。(R2 でサイレントなクランプを発見。) -
S8 · 出力としてのメカニズム反証 — メカニズム仮説が反証された場合、結果には構造化された
falsified_mechanismsリスト(メカニズム、仮説、テスト、結果、判定)を含める必要があります。6 つのメカニズムを検証し、反証しました(P1 の特徴追加、P2 のタスクアラインメント、P3 のエッジ密度、P1 の補正、R3 の単調な利得、H-A の重要エッジの疎性)。 -
S9 · 相関より摂動分析を優先 — 相関 R² < 0.05 の場合、摂動データが存在し、境界シグナルを含んでいる必要があります。メカニズムを主張するには、相関だけでは不十分です。
Xu 2026の樹状突起計算 — パターンリファレンス(v3.00.3)
Xu, N., et al.(Science, 2026-10-16、DOI: 10.1126/science.adz5323)は、樹状突起が抽象的なルールを符号化し、細胞体が感覚入力を符号化し、両者の非線形な統合が意思決定の出力を生み出すことを、光遺伝学による因果的証拠で実証しました。これは当プロジェクトのL3境界を裏付ける外部の理論的根拠であり、プロジェクトのアーキテクチャを変更するものではありません。
参照のみを目的とした実装(中核となる組み合わせ代数は変更しません):
| パス | 内容 |
|---|---|
tools/dendritic_rule_engine.py | 約200行の最小限のリファレンス:RuleCache(樹状突起)+SensoryStream(細胞体)+NonlinearIntegrator(乗算ゲート)+DendriticAgentファサード |
examples/07_dendritic_rule_cache_demo.ipynb | 信頼度ゲートによる定着を示すルール切り替えストリームのデモ |
docs/XU2026_DENDRITIC_PATTERN_MAPPING.md | EPE L1/L2/L4への対応関係と、明確に対応する要素とそうでない要素をまとめた1ページのマッピング |
docs/XU2026_DENDRITIC_COMPUTATION_IMPACT_2026-10-18.md | 影響に関する完全なメモ(100行、2026-10-18公開) |
明示的に実施していないこと(メモの§2.3を参照):116ユニットのコアに細胞内コンパートメントを設けていません。マウスの聴覚皮質からDrosophila MaleCNSへの種間転移を主張していません。ニューロモーフィック実装も行っていません。Xu 2026は、少数ショットの仮説キャッシュに関するパターンリファレンスであり、新しいアーキテクチャではありません。これらの規律はGate 30(scripts/check_llm_orchestrator.py)によって適用されます。Gate 30は実験データから主張のメタデータを独立して再計算し、未検証の主張が通過するのを防ぎます。
再現可能な否定的結果
このプロジェクトでは、6件の主張(R1~R6)を含む公開research_claims.jsonを管理しています。各主張には、記述、定量的予測、反証条件、再現コマンド、サンプルサイズ、乱数シード、境界に関する記述、反証されたメカニズムが含まれています。現在の状況:指標修正後に支持されたものが1件、完了したものが3件、境界にあるものが2件(部分的反証とアンカーギャップ。いずれもPR-2bの先例に基づき、終端状態)。研究主張システム自体にもゲートが設けられており(Gate 30)、気付かないうちに内容が変化するのを防いでいます。
主な参考文献:
- MaleCNS v1.0 — Cell, 2026-09-03(CC-BY)。このプロジェクトの基盤となる、166,700個のニューロンから成るオスの脳のコネクトーム。
male-cns.janelia.org/download/gs://flyem-male-cns/v1.0/から入手でき、neuPrintデータセットmale-cns:v1.0としてクエリできます。 - Friston(2008)NeuropsychologiaとFodor(1983)The Modularity of Mind — 当プロジェクトの障害分離に関する主張が位置付けられる、巨大なモジュール性をめぐる議論。
- 認知神経科学のゴールドスタンダードとしての二重解離(Geddes 2014、Glenberg 2014、Campanella 2022、Vaidya PNAS 2010)。
dataprov(RI-SE、W3C PROV)— 採用している来歴のシリアライズ形式。
この研究の引用方法:CITATION.cffを参照してください(GitHubでは、ここから「このリポジトリを引用」ボタンが表示されます)。撤回された主張を含むリリースごとの変更内容は、CHANGELOG.mdに記載されています。
MCPクライアントからの利用方法:docs/mcp_setup.mdを参照してください。
モジュールのバリエーション、SwarmLabsとの統合、オーガニズムマーケット(v1.1.0):
クライアント設定、47個のツールのリファレンス、トラブルシューティングについては、docs/module_factory.mdを参照してください。
開発とテスト
1つのコマンドですべてのオフラインゲートを実行
CIで実行するものと同じセットなので、「ローカルで成功」と「CIで成功」が食い違うことはありません。
python scripts/run_gates.py # 62 gates, no dataset needed
python scripts/run_gates.py --quick # the 53 gates that don't need numpy / a server
python scripts/run_gates.py --with-data # 62 gates: + `flybrain verify` (70 assertions)
Makefileのショートカット(v2.43.0)
make help # all targets
make setup # create .venv, install [dev]
make lint # ruff check + black --check
make format # ruff --fix + black
make typecheck # mypy on shipped code
make test # pytest --cov
make gates # = python scripts/run_gates.py
make gates-data # + flybrain verify
make smoke # generate a smoke organism
make build # build dist/{sdist,wheel}
make publish # twine upload
Docker(v2.43.0)
1つのイメージに2種類の構成があります。データセットはイメージに含めず、マウントしてください。
docker build -t flybrain-connectome .
# MCP stdio server
docker run --rm flybrain-connectome
# HTTP API on :8799
docker run --rm -p 8799:8799 \
-v "$(pwd)/male_cns:/data/male_cns:ro" \
-e FLYBRAIN_DATA_DIR=/data/male_cns \
flybrain-connectome serve-http
docker-compose.ymlには、dev / api / mcp / gatesのサービス構成も用意されています。それぞれの用途に1つのコマンドで対応できます。
docker compose up --build dev # shell into the dev container
docker compose run --rm gates # offline CI-equivalent gates
Dev container / Codespaces
VS CodeまたはCodespacesで開いてください。.devcontainer.jsonがすべてをインストールし、起動時にmake gatesを実行します。
Pre-commit
pre-commit install # one time
pre-commit run --all-files
フック:ruff + ruff-format + black + 末尾の空白チェック + ファイル末尾の修正 +
check-yaml/toml/json + マージ競合チェック + デバッグ文チェック +
detect-secrets(.secrets.baselineに対して実行)。
個別に確認する場合:各ゲート
# credential gate — MUST pass before any push (see CHANGELOG 1.0.0)
python scripts/check_no_secrets.py
# docs-vs-code drift gate: tool count/names, versions, schema, blueprint count
python scripts/check_docs_consistency.py
# every advertised MCP tool must actually respond (needs FLYBRAIN_DATA_DIR)
python scripts/check_mcp_tools.py
# a missing OPTIONAL dependency must degrade, not crash — and must not
# silently skip producing provenance when the dependency IS installed
python scripts/check_degraded_mode.py
# the generated artifact is structurally real (not just "exit code 0")
python scripts/check_generated_artifact.py --dir <out-dir> --name <organism>
# end-to-end smoke test (needs FLYBRAIN_DATA_DIR -> your data)
flybrain verify
# consistency between this repo and any downstream consumer
python integrations/swarmlabs/check_swarmlabs_sync.py
# reproducible experiments
python integrations/swarmlabs/diagnostics/fault_isolation_experiment.py --quick
python integrations/swarmlabs/diagnostics/snn_energy_experiment.py
python integrations/swarmlabs/diagnostics/multi_readout_experiment.py
個別に確認する場合:
# credential gate — MUST pass before any push (see CHANGELOG 1.0.0)
python scripts/check_no_secrets.py
# docs-vs-code drift gate: tool count/names, versions, schema, blueprint count
python scripts/check_docs_consistency.py
# every advertised MCP tool must actually respond (needs FLYBRAIN_DATA_DIR)
python scripts/check_mcp_tools.py
# a missing OPTIONAL dependency must degrade, not crash — and must not
# silently skip producing provenance when the dependency IS installed
python scripts/check_degraded_mode.py
# the generated artifact is structurally real (not just "exit code 0")
python scripts/check_generated_artifact.py --dir <out-dir> --name <organism>
# end-to-end smoke test (needs FLYBRAIN_DATA_DIR -> your data)
flybrain verify
# consistency between this repo and any downstream consumer
python integrations/swarmlabs/check_swarmlabs_sync.py
# reproducible experiments
python integrations/swarmlabs/diagnostics/fault_isolation_experiment.py --quick
python integrations/swarmlabs/diagnostics/snn_energy_experiment.py
python integrations/swarmlabs/diagnostics/multi_readout_experiment.py
scripts/check_mcp_tools.py --offline は、データに依存する 11 個のツールをスキップします。CI ではデータセットをダウンロードしないため、CI でもこの方法を使用します。したがって、CI ではジェネレーターのインターフェースとパッケージングを検証し、データパスはコネクトームがあるマシンで flybrain verify を実行して検証します。
ライセンスとデータの出典
- コード: MIT — LICENSE を参照してください。リポジトリは 2026-10-18 以降、公開されています。3 段階の区分と再公開の経緯については、LICENSE-CLAUSE.md を参照してください。
- コネクトームデータ: MaleCNS v1.0、CC-BY。5.63 GB のデータセットは、このリポジトリには含まれていません。元の論文から入手し、
FLYBRAIN_DATA_DIRを設定してください。このプロジェクトの数値はすべて実際のデータセットに基づいており、見栄えを良くするために合成データを捏造したものはありません。
「仮想生物」はソフトウェア層における類推です。実際の細胞ではなく、実際のトポロジーの原理(モチーフの形状、反復率、抑制パターン)を再利用しています。これはウェットラボで作製するものではなく、そのようなものだとも主張していません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。