Connectome integration into EvoSpikeNet: Advancing distributed brain simulation with biological connection topology
[!NOTE] For the latest implementation status, please refer to Functional Implementation Status (Remaining Functionality).
- Author: Masahiro Aoki
- Document ID: MT2026-AI-02-001
- ORCID ID: 0009-0007-9222-4181
- Affiliation: Moonlight Technologies Co., Ltd.
- Creation date: 2026-03-18 (Last updated: 2026-03-19 Module diagram, implementation status, and Appendix A updated upon completion of Phase E-0/E-1/E-2/E-3)
- Classification: Research/design paper (internal)
summary
This paper discusses the significance, purpose, and design policy of integrating connection topology information obtained from biological neural connectivity maps (connectomes) into the EvoSpikeNet distributed brain simulation system. EvoSpikeNet has already implemented functionally specialized nodes for each cortical region using a spiking neural network (SNN), but the neuron connections inside the nodes rely on random initialization that has no biological basis. Through connectome integration (Phase E), four hierarchical data of C. elegans whole neural circuit, Drosophila FlyWire whole brain, mouse visual cortex MICrONS, and human long-range connectivity HCP are introduced as structural constraints to achieve four effects: (1) improvement of biological fidelity, (2) reproduction of spontaneous circuit formation, (3) structurally constrained stabilization of STDP plasticity, and (4) connection density-dependent optimization of Zenoh routing. This document details the significance and purpose of the implementation, and then describes the module configuration diagram, data flow, control sequence, and information flow in paper format.
Keywords: connectome, spiking neural network, EvoSpikeNet, structural plasticity, STDP, FlyWire, MICrONS, connection topology, distributed brain simulation
table of contents
- [Introduction: Significance and purpose of integration] (#1-Introduction: Significance and purpose of integration)
- [Background: Current status of EvoSpikeNet and connectome research] (#2-Background: Current status of evospikenet and connectome research)
- Integrated Architecture Overview
- [Module configuration and correlation diagram] (#4-Module configuration and correlation diagram)
- [Connectome data integration pipeline] (#5-Connectome data integration pipeline)
- Data flow design
- [Control Sequence] (#7-Control Sequence)
- [Information Sequence: Learning/Adaptation Cycle] (#8-Information Sequence Learning/Adaptation Cycle)
- Mathematical model
- [Implementation details: Integration into existing components] (#10-Implementation details: Integration into existing components)
- Verification Strategy
- [Discussion: Expected effects and issues] (#12-Discussion expected effects and issues)
- [References and related documents] (#13-References and related documents)
1. Introduction: Significance and purpose of integration
1.1 Raising the issue
As of 2026, EvoSpikeNet has implemented advanced features such as a 29-node distributed brain architecture, a time-series spike attention mechanism using ChronoSpikeAttention, plasticity based on STDP/Meta-STDP, and self-adaptation using an evolutionary genome (EvoGenome). However, the neuron connection structure inside each node relies on random initialization that has no biological basis, and the following fundamental problems remain.
- Non-biological nature of connections: In the real brain, connections between neurons have a specific topology (layered structure, modularity, small-world nature), but this does not exist in a random weight matrix.
- Unconstrained excitatory/inhibitory balance: In the biological brain, the E/I ratio is controlled to approximately 4:1, but in the real world, there is no constraint.
- Lack of electrophysiological consistency: The distribution of synaptic delay, conduction velocity, and synaptic strength deviates from the actual values.
- Plastic convergence instability: STDP without structural constraints risks causing divergence and overwiring.
1.2 Significance of integration
Connectome research is a cutting-edge field in neuroscience that aims to completely describe biological neural circuits at neuron resolution. It started with C. elegans whole neural circuit decoding in 1986 (White et al.), progressed to Drosophila whole brain connectome (140,000 neurons, FlyWire) in 2024, and mm-scale analysis of mouse cortex (MICrONS, 65,000 neurons).
Integrating these data into EvoSpikeNet has the following significance.
| Dimensions of Meaning | Content |
|---|---|
| Scientific Validity | Simulations based on actual neural circuit structures serve as tools for testing neuroscientific hypotheses |
| Engineering Stability | Biological topology has been optimized through a long history of evolution, providing convergent stability and efficiency |
| Emergent functions | The connection structure itself determines information processing ability (knowledge of network theory) |
| Demonstrability | It becomes possible to compare and verify actual measurement data and simulation output |
| Patent/Competitive Advantage | AI using biological connectome data will be a differentiating factor |
1.3 Purpose of integration (5 items)
The specific objectives of this Phase E integration are defined below.
-
Objective 1 — Establishing structural fidelity The internal neuron connections of each EvoSpikeNet node are initialized with the connectome data of the corresponding species and cortical region to reproduce the biological connection topology.
-
Objective 2 — Achieving structural plasticity We separate connectome data as an "unchangeable structural layer" and STDP/Meta-STDP as a "changeable functional layer" to realize stable learning with structural constraints.
-
Objective 3 — Biological control of E/I balance Reflect FlyWire's neuron type classification (excitatory/inhibitory) in EvoSpikeNet's weight initialization to maintain a physiologically accurate E/I ratio (approximately 4:1).
-
Objective 4 — Connection density dependent optimization of Zenoh routing We utilize HCP macroscale connectivity data to prioritize Zenoh communication between nodes and achieve routing that reflects the measured topography of intercortical long-distance connections.
-
Objective 5 — Automatically reflect connectome data updates FlyWire, MICrONS, etc. are continuously proofread and updated. Build a pipeline that automatically reflects this update to EvoSpikeNet parameters.
2. Background: Current status of EvoSpikeNet and connectome research
2.1 EvoSpikeNet Current Status
graph TB
subgraph "EvoSpikeNet Phase D/E(実装済み)"
direction TB
PFC["PFC / Q-PFC<br/>Prefrontal cortex"]
VIS["Visual<br/>V1-V5"]
AUD["Auditory<br/>A1"]
SPAT["Spatial<br/>Parietal lobe"]
MTR["Motor<br/>M1"]
EPI["Episodic<br/>Hippocampus"]
SEM["Semantic<br/>temporal lobe"]
MINT["Integrator<br/>Insular Cortex"]
ZEN["Zenoh Pub/Sub<br/>(depending on connectome density)"]
WEIGHT["Weight initialization<br/>✅ ConnectomeLIFLayer<br/>structural_mask injected"]
TOPO["Connection topology<br/>✅ C.elegans / FlyWire /<br/>MICrONS / HCP"]
EI["E/I balance<br/>✅ validate_ei_ratio()"]
end
2.2 Four layers of connectome research
Connectome data that can be used for integration into EvoSpikeNet will be organized in four levels by scale.
graph LR
subgraph "ミクロスケール(シナプス解像度)"
CE["C. elegans<br/>302 neurons<br/>7,000 synapses<br/>(completely deciphered)"]
FLY["Drosophila FlyWire<br/>140,000 neurons<br/>50 million synapses<br/>(2024 whole brain)"]
end
subgraph "メゾスケール(皮質柱)"
MIC["MICrONS<br/>65,000 neurons<br/>500 million synapses<br/>(Mouse V1 1mm³)"]
end
subgraph "マクロスケール(長距離結合)"
HCP["HCP<br/>Whole brain white matter fiber bundles<br/>Diffusion tensor<br/>(human)"]
end
CE -->|Prototype verification| EVO["EvoSpikeNet<br/>Phase E"]
FLY -->|sensory processing node| EVO
MIC -->|cortical layer structure| EVO
HCP -->|Zenoh Routing| EVO
2.3 EvoSpikeNet × Connectome correspondence table
| EvoSpikeNet node | Cortical support | Main usage data | Scale |
|---|---|---|---|
| Visual (V1-V5) | Occipital cortex | MICrONS Layer 4→2/3, FlyWire visual lobe | Meso+micro |
| Auditory (A1) | Temporal cortex | FlyWire Johnston organ circuit | Micro |
| Spatial | Occipito-Parietal Cortex | MICrONS Whole Cortical Connectivity Matrix | Mezzo |
| Motor (M1) | Motor Cortex | MICrONS M1 Partial Connect | Mezzo |
| PFC / Q-PFC | dlPFC/OFC | MICrONS Cortical Column+HCP | Meso+Macro |
| Episodic (hippocampus) | CA1/CA3/DG | C. elegans self-associative circuit (proxy)+HCP | Micro+Macro |
| Semantic | Medial temporal lobe | FlyWire mushroom body | Micro |
| Integrator | Cingulate/insular cortex | MICrONS long-range axonal projections | Meso |
| Internodal connections | Intercortical white matter | HCP S1200 diffusion tensor | Macro |
3. Integrated architecture overview
3.1 Overall architecture diagram
The overall image of the EvoSpikeNet system after connectome integration is shown.
flowchart TB
subgraph "コネクトームデータ層"
CE_DB["C. elegans DB<br/>WormAtlas JSON"]
FLY_DB["FlyWire DB<br/>CAVE API"]
MIC_DB["MICrONS DB<br/>CAVEclient"]
HCP_DB["HCP S1200<br/>FSL/MRtrix3"]
end
subgraph "コネクトームローダー層"
LOADER["connectome_loader.py<br/>Sparse COO transformation"]
SYNC["sync_connectome.py<br/>Auto-update pipeline"]
CONFIG["connectome_config.yaml<br/>Source control"]
end
subgraph "構造層(変更不可)"
MASK_V["Visual structural mask<br/>structural_mask[V1]"]
MASK_A["Auditory structural mask<br/>structural_mask[A1]"]
MASK_M["Motor structural mask<br/>structural_mask[M1]"]
MASK_E["Episodic structural mask<br/>structural_mask[HPC]"]
ZENOH_TOPO["Zenoh connection priority<br/>HCP derived weight"]
end
subgraph "機能層(STDP可変)"
LIF_V["LIFNeuronLayer<br/>Visual Node<br/>W = mask × scalar"]
LIF_A["LIFNeuronLayer<br/>Auditory Node"]
LIF_M["LIFNeuronLayer<br/>Motor Node"]
LIF_E["LIFNeuronLayer<br/>Episodic Node"]
end
subgraph "制御層"
PFC_C["PFC / Q-PFC<br/>ExecutiveControlEngine"]
STDP_C["Meta-STDP<br/>Structurally Constrained Plasticity"]
EVO_C["EvoGenome<br/>Structural mask evolution (Phase E+)"]
end
subgraph "通信層"
ZENOH_M["Zenoh Mesh<br/>Connectome Priority Routing"]
PTP_M["PTP time synchronization"]
end
CE_DB --> LOADER
FLY_DB --> LOADER
MIC_DB --> LOADER
HCP_DB --> LOADER
LOADER --> MASK_V & MASK_A & MASK_M & MASK_E & ZENOH_TOPO
SYNC -->|Weekly difference| LOADER
MASK_V --> LIF_V
MASK_A --> LIF_A
MASK_M --> LIF_M
MASK_E --> LIF_E
LIF_V & LIF_A & LIF_M & LIF_E --> ZENOH_M
ZENOH_TOPO --> ZENOH_M
ZENOH_M --> PFC_C
PFC_C --> STDP_C --> LIF_V & LIF_A & LIF_M & LIF_E
EVO_C -.->|Phase E+: Structure mask update| MASK_V & MASK_A & MASK_M & MASK_E
PTP_M --- ZENOH_M
3.2 Conceptual diagram of three-layer model
We present the ``three-layer separation model,'' which is the core concept of connectome integration.
graph TD
subgraph "Layer 1: 構造層 Structural Layer"
S1["Connectome-derived adjacency matrix A∈{0,1}^{N×N}"]
S2["E/I neuron type mask"]
S3["Synaptic delay table delay[i,j]"]
S1 --- S2 --- S3
end
subgraph "Layer 2: 機能層 Functional Layer"
F1["STDP weight scalar w_scalar"]
F2["Plasticity update with Meta-STDP"]
F3["Integration with ChronoSpikeAttention"]
F1 --- F2 --- F3
end
subgraph "Layer 3: 進化層 Evolutionary Layer"
E1["Structural mask coevolution with EvoGenome"]
E2["Evolutionary optimization of pruning rate"]
E3["Cross-scale adaptation"]
E1 --- E2 --- E3
end
S1 -->|"W_ij = A_ij × w_scalar"| F1
F2 -->|"Update only ΔSTDP × A_ij"| F1
E1 -.->|"Phase E+ only"| S1
4. Module configuration and correlation diagram
4.1 Software module configuration diagram
Implementation status (updated on 2026-03-19): Phase E-0/E-1/E-2/E-3 completed. ✅ Marked modules are already implemented. ⬜ Only Phase E-3-5 (HCP DUC acquisition) has yet to be started.
graph LR
subgraph "新規モジュール(Phase E-1/E-2/E-3 ✅ 実装済み)"
CL["✅ evospikenet/<br/>connectome_loader.py<br/>━━━━━━━━━━<br/>load_json()<br/>load_npz() / save_npz()<br/>stratified_sample() (F-1)<br/>spectral_coarsen() (F-2)<br/>load() / read_etag()<br/>write_etag()"]
NM["✅ evospikenet/connectome/<br/>node_mapping.py<br/>━━━━━━━━━━<br/>get_source_for_node()<br/>build_manifest()<br/>apply_to_layer()"]
DB["✅ evospikenet/connectome/<br/>delay_buffer.py<br/>━━━━━━━━━━<br/>SparseDelayBuffer<br/>step() / step_int16()<br/>from_connectome_data()"]
ZP["✅ evospikenet/<br/>zenoh_connectome_publisher.py<br/>━━━━━━━━━━<br/>ConnectomeMetadataPublisher<br/>build_payload() / publish()"]
SC["✅ scripts/<br/>sync_connectome.py<br/>━━━━━━━━━━<br/>apply_delta()<br/>apply_delta_with_validation()<br/>sync_connectome()<br/>fetch_cave_synapses_with_retry()"]
BR["✅ evospikenet/<br/>brain_routing.py<br/>━━━━━━━━━━<br/>HCPDelayRouter<br/>compute_delay_matrix()<br/>optimize_routing_delays()<br/>build_hcp_routing_table()"]
ANM["✅ scripts/<br/>auto_node_mapper.py<br/>━━━━━━━━━━<br/>map_connectome()<br/>generate_manifest()<br/>MappingResult / NodeMappingEntry"]
CC["✅ config/<br/>connectome_config.yaml<br/>━━━━━━━━━━<br/>sources:<br/>node_mapping:<br/>update_schedule:"]
end
subgraph "既存モジュール(拡張済み ✅)"
CORE["✅ evospikenet/core.py<br/>━━━━━━━━━━<br/>ConnectomeLIFLayer<br/>structural_mask ✅<br/>attach_sparse_delay_buffer ✅<br/>validate_ei_ratio ✅<br/>SNNModel delay routing ✅"]
NT["evospikenet/<br/>node_types.py<br/>━━━━━━━━━━<br/>NodeDescriptor<br/>+ connectome_meta ←NEW"]
FC["✅ evospikenet/<br/>forgetting_controller.py<br/>━━━━━━━━━━<br/>prune_threshold<br/>compute_connectome_density ✅"]
LTM["evospikenet/<br/>long_term_memory.py<br/>━━━━━━━━━━<br/>weight_normalize<br/>← connectome_stats ←NEW"]
SP["evospikenet/<br/>spatial_processing.py<br/>━━━━━━━━━━<br/>SpatialProcessor<br/>+ where/what masks ←NEW"]
end
subgraph "インフラモジュール(設定拡張)"
ZR["Zenoh Router<br/>━━━━━━━━━━<br/>routing_table<br/>← connectome_priority ←NEW"]
PTP_M["PTP Sync<br/>(no change)"]
end
CL -->|sparse tensor| CORE
CL -->|ei_labels| CORE
CL -->|delay_matrix| CORE
CL -->|hcp_weights| ZR
CC --> CL & SC & ANM
SC -->|weight_delta JSON| CORE
BR -->|delay routing| ZR
BR -->|delay_matrix| CORE
ANM -->|node manifest| NM
NT -->|connectome_meta| ZR
FC -.->|prune use| CORE
LTM -.->|See stats| CORE
SP -.->|apply mask| CORE
4.2 Inter-node correlation diagram (after connectome integration)
Indicates the strength of connections between nodes (thickness of arrows = connection density) based on HCP data.
graph TD
subgraph "センシング・エンコーディング"
CAM["camera"]
MIC_S["microphone"]
VIS["Visual Node<br/>[MICrONS V1]"]
AUD["Auditory Node<br/>[FlyWire A1]"]
end
subgraph "認知・言語"
SLM["Language SLM<br/>[HCP: Broca-Wernicke]"]
SPAT["Spatial Node<br/>[MICrONS parietal lobe]"]
RAG["RAG Index"]
end
subgraph "実行制御"
PFC_N["PFC / Q-PFC<br/>[MICrONS dlPFC]"]
end
subgraph "記憶"
EPI_N["Episodic Memory<br/>[C.elegans CA3 proxy]"]
SEM_N["Semantic Memory<br/>[FlyWire mushroom body]"]
MINT_N["Memory Integrator<br/>[MICrONS ACC]"]
end
subgraph "運動出力"
MTR_N["Motor Node<br/>[MICrONS M1]"]
end
CAM -->|"HCP strength: 0.82"| VIS
MIC_S -->|"HCP strength: 0.79"| AUD
VIS ==>|"HCP: 0.91 (Strong)"| SPAT
VIS -->|"HCP: 0.74"| SLM
AUD -->|"HCP: 0.68"| SLM
SPAT ==>|"HCP: 0.88 (strong)"| PFC_N
SLM ==>|"HCP: 0.85 (Strong)"| PFC_N
RAG --> PFC_N
PFC_N ==>|"HCP: 0.93 (strongest)"| EPI_N
PFC_N -->|"HCP: 0.71"| SEM_N
EPI_N --> MINT_N
SEM_N --> MINT_N
MINT_N -->|"feedback"| PFC_N
PFC_N ==>|"HCP: 0.86 (Strong)"| MTR_N
5. Connectome data integration pipeline
5.1 Data acquisition/conversion pipeline
flowchart LR
subgraph "データソース"
DS1["WormAtlas JSON<br/>C. elegans"]
DS2["CAVE API<br/>FlyWire"]
DS3["CAVEclient API<br/>MICrONS"]
DS4["HCP S1200<br/>FSL tractography"]
end
subgraph "取得・前処理"
A1["URL authentication (environment variable)"]
A2["Neuron ID list<br/>Filtering"]
A3["Get edge list<br/>(pre_id, post_id, strength)"]
A4["E/I type tagging (exc/inh classification)"]
end
subgraph "変換処理"
B1["Coordinate normalization (remapping to intra-node neuron ID)"]
B2["Intensity scaling (α=0.1)"]
B3["COO sparse tensor generation<br/>torch.sparse_coo_tensor()"]
B4["Delay matrix calculation<br/>Distance ÷ Conduction velocity"]
end
subgraph "出力"
C1["structural_mask<br/>bool sparse tensor"]
C2["weight_init<br/>float sparse tensor"]
C3["delay_buffer<br/>float dense tensor"]
C4["ei_label_mask<br/>int8 tensor (+1/-1)"]
end
DS1 & DS2 & DS3 & DS4 --> A1 --> A2 --> A3 --> A4
A4 --> B1 --> B2 --> B3 --> B4
B3 --> C1 & C2
B4 --> C3
A4 --> C4
5.2 Automatic update pipeline (sync_connectome.py)
flowchart TD
TRIGGER["Weekly cron job<br/>Every Monday 02:00 JST"]
subgraph "差分検知"
V_CHECK["CAVEclient.materialize<br/>Check version"]
DIFF["Version difference calculation<br/>added / removed synapse"]
end
subgraph "デルタ処理"
DELTA_COO["Differential COO matrix generation"]
VALIDATE["E/I balance verification<br/>|R_new - 4.2| < 0.5?"]
ROLLBACK["Rollback to previous version"]
end
subgraph "適用"
APPLY["apply_weight_delta()<br/>(Phase D infrastructure diversion)"]
BROADCAST["Delivery to target node via Zenoh"]
end
subgraph "検証"
TEST["pytest:<br/>test_ei_balance()<br/>test_spike_rate()<br/>test_connectome_topology()"]
REPORT["Verification report generation<br/>(Slack notification)"]
end
TRIGGER --> V_CHECK --> DIFF
DIFF -->|There are differences| DELTA_COO --> VALIDATE
DIFF -->|No difference| SKIP["Skip (log only)"]
VALIDATE -->|OK| APPLY --> BROADCAST --> TEST --> REPORT
VALIDATE -->|NG| ROLLBACK --> REPORT
6. Data flow design
6.1 Data flow during inference (after connectome integration)
flowchart LR
subgraph "入力層"
CAM_IN["camera input"]
MIC_IN["microphone input"]
end
subgraph "スパイクエンコーディング"
TAS_ENC["TAS encoding<br/>(rate encoding)"]
DOG["Retinal DoG Filter<br/>V1 Gabor"]
GAMMA["Cochlear Gammatone Filter"]
end
subgraph "構造制約付きSNN処理"
LIF_V2["LIF Layer(Visual)<br/>W = A_V × w_scalar<br/>delay = delay_V"]
LIF_A2["LIF Layer(Auditory)<br/>W = A_A × w_scalar"]
CHRONO["ChronoSpikeAttention<br/>Time series spike attention"]
end
subgraph "統合・制御"
PFC_PROC["PFC processing<br/>route_probs calculation<br/>Cognitive entropy H_t"]
QPFC["Q-PFC<br/>Quantum modulation coefficient"]
end
subgraph "記憶アクセス"
EPI_PROC["Episodic Memory<br/>(C. elegans structure)"]
SEM_PROC["Semantic Memory<br/>(FlyWire mushroom body)"]
end
subgraph "出力"
MTR_OUT["Motor Node<br/>Motor command output"]
SPEECH_OUT["Speech Node<br/>Audio output"]
end
CAM_IN --> DOG --> TAS_ENC --> LIF_V2
MIC_IN --> GAMMA --> TAS_ENC --> LIF_A2
LIF_V2 -->|"Spike train + timestamp (PTP)"| CHRONO
LIF_A2 -->|spike train| CHRONO
CHRONO -->|caution weighted spikes| PFC_PROC
PFC_PROC <--> EPI_PROC
PFC_PROC <--> SEM_PROC
QPFC <-->|feedback| PFC_PROC
PFC_PROC -->|exercise command| MTR_OUT
PFC_PROC -->|language command| SPEECH_OUT
6.2 Data flow during training (STDP + connectome constraints)
flowchart TB
subgraph "スパイク発生"
PRE["Presynaptic neuron firing<br/>Time t_pre"]
POST["Postsynaptic neuron firing<br/>Time t_post"]
end
subgraph "STDP計算"
DT["Δt = t_post - t_pre"]
STDP_CALC["STDP law:<br/>Δw = A+ exp(-Δt/τ+) if Δt>0<br/>Δw = -A- exp(Δt/τ-) if Δt≤0"]
end
subgraph "構造制約適用"
MASK_CHECK["structural_mask[i,j] ∈ {0,1}"]
MASKED_DW["ΔW_ij = A_ij × ΔSTDP<br/>(Updates outside the mask are prohibited)"]
end
subgraph "E/Iバランス監視"
EI_MON["E/I balance monitoring<br/>R = N_E/N_I"]
EI_CLIP["Weight clip:<br/>W_I ≤ 0, W_E ≥ 0"]
end
subgraph "Meta-STDP最適化"
META["L_meta = L_task + λ_E×E + λ_S×Var(r)"]
APPLY_W["apply_weight_delta() via Zenoh"]
end
PRE & POST --> DT --> STDP_CALC
STDP_CALC --> MASK_CHECK --> MASKED_DW
MASKED_DW --> EI_MON --> EI_CLIP
EI_CLIP --> META --> APPLY_W --> PRE
7. Control sequence
7.1 System initialization sequence (after connectome integration)
sequenceDiagram
participant MAIN as main.py<br/>エントリポイント
participant CONFIG as connectome_config.yaml
participant LOADER as connectome_loader.py
participant CAVE as CAVE API<br/>(外部)
participant HCP as HCP Data<br/>(外部)
participant CORE as LIFNeuronLayer<br/>core.py
participant NODE as DistributedBrainNode
participant ZENOH as Zenoh Router
Note over MAIN,ZENOH: Phase E システム起動シーケンス
MAIN->>CONFIG: load_config()
CONFIG-->>MAIN: sources, node_mapping, version
MAIN->>LOADER: initialize(config)
par ミクロスケール取得(並列)
LOADER->>CAVE: synapse_query(flywire_public)
CAVE-->>LOADER: syn_df (pre_id, post_id, strength, type)
LOADER->>LOADER: to_sparse_coo(syn_df, ei_labels)
and マクロスケール取得(並列)
LOADER->>HCP: load_tractography(S1200)
HCP-->>LOADER: connectivity_matrix[29×29]
LOADER->>LOADER: normalize_hcp_weights()
end
LOADER-->>MAIN: ConnectomeBundle{mask, weight, delay, ei_mask, hcp}
loop 各ノードタイプ
MAIN->>CORE: LIFNeuronLayer(connectome_topology=bundle[node_type])
CORE->>CORE: structural_mask = bundle.mask.bool()
CORE->>CORE: weight = nn.Parameter(bundle.weight * α)
CORE->>CORE: delay_buffer = bundle.delay
CORE->>CORE: ei_mask = bundle.ei_mask
CORE-->>MAIN: 初期化完了
end
MAIN->>NODE: DistributedBrainNode.deploy(lif_layers)
NODE->>ZENOH: advertise(connectome_meta=bundle.hcp_meta)
ZENOH->>ZENOH: update_routing_table(hcp_weights)
ZENOH-->>NODE: 優先ルート設定完了
Note over MAIN,ZENOH: 起動完了 — コネクトーム制約付きSNN稼働開始
7.2 Connectome metadata utilization control sequence by PFC
sequenceDiagram
participant EXEC as ExecutiveControlEngine<br/>PFC
participant ZENOH as Zenoh Mesh
participant VIS_N as Visual Node<br/>[MICrONS]
participant EPI_N as Episodic Node<br/>[C.elegans]
participant STDP_ENG as Meta-STDP Engine
participant FC as ForgettingController
Note over EXEC,FC: 通常推論サイクル(50msループ)
EXEC->>ZENOH: subscribe("brain/*/spikes")
ZENOH-->>EXEC: spike_burst[visual, t_ptp=T]
ZENOH-->>EXEC: spike_burst[auditory, t_ptp=T]
EXEC->>EXEC: compute_route_probs(spikes)
EXEC->>EXEC: compute_H_t (cognitive entropy)
alt H_t > H_threshold(高エントロピー = 新規事態)
EXEC->>STDP_ENG: increase_plasticity(A+, A-)
Note right of STDP_ENG: 構造マスク制約内で<br/>STDP強化
else H_t ≤ H_threshold(低エントロピー = 習熟)
EXEC->>STDP_ENG: decay_plasticity()
EXEC->>FC: prune_weak_connections(threshold=connectome_density×0.1)
Note right of FC: コネクトーム密度統計に<br/>基づく閾値でプルーニング
end
EXEC->>VIS_N: publish("brain/visual/attention", roi_mask)
VIS_N->>VIS_N: apply_attention(roi_mask, structural_mask)
VIS_N->>ZENOH: publish("brain/visual/spikes", filtered_spikes)
EXEC->>EPI_N: publish("brain/episodic/encode", experience)
EPI_N->>EPI_N: CA3_autoassociation(experience, elegans_mask)
EPI_N-->>EXEC: memory_index
EXEC->>STDP_ENG: apply_weight_delta(delta_int16)
STDP_ENG->>ZENOH: broadcast_weight_update()
8. Information Sequence: Learning and Adaptation Cycle
8.1 Connectome data update sequence (weekly)
sequenceDiagram
participant CRON as cronジョブ
participant SYNC as sync_connectome.py
participant CAVE as CAVE API
participant LOADER as connectome_loader.py
participant TEST as pytest suite
participant NODES as DistributedBrainNodes
participant ZENOH as Zenoh Mesh
participant ALERT as 通知システム
Note over CRON,ALERT: 毎週月曜 02:00 JST — 自動更新サイクル
CRON->>SYNC: trigger()
SYNC->>CAVE: get_version()
CAVE-->>SYNC: version=v789
SYNC->>SYNC: compare(current_version=v788, new=v789)
alt 差分あり
SYNC->>CAVE: get_diff(v788→v789)
CAVE-->>SYNC: added_synapses[], removed_synapses[]
SYNC->>LOADER: compute_delta_coo(added, removed)
LOADER-->>SYNC: delta_tensor (COO format)
SYNC->>SYNC: validate_ei_balance(delta)
alt E/Iバランス OK(|R - 4.2| < 0.5)
SYNC->>NODES: apply_weight_delta(delta_int16)
NODES->>ZENOH: broadcast weights
ZENOH-->>NODES: 確認応答
SYNC->>TEST: run_regression()
TEST-->>SYNC: results{spike_rate, ei_ratio, topology_match}
alt テスト合格
SYNC->>SYNC: commit_version(v789)
SYNC->>ALERT: notify("✅ Connectome v789 application completed")
else テスト失敗
SYNC->>NODES: rollback(v788)
SYNC->>ALERT: notify("❌ Test failure: rollback v788")
end
else E/Iバランス NG
SYNC->>ALERT: notify("⚠️ E/I balance abnormality: Update skip")
end
else 差分なし
SYNC->>ALERT: notify("ℹ️ No connectome data changes (v788)")
end
8.2 EvoGenome × Connectome coevolution sequence (Phase E+)
sequenceDiagram
participant EVO as 進化エンジン<br/>EvoGenome
participant EVAL as 評価関数
participant MASK as structural_mask<br/>(変異対象)
participant CONN as connectome_loader.py<br/>(参照)
participant LIF as LIFNeuronLayer
participant PHYS as 生理的制約チェッカー
Note over EVO,PHYS: Phase E+ — 構造マスクの進化的探索
EVO->>EVO: generate_genome_population(n=100)
loop 世代 g = 1..N
EVO->>MASK: apply_genome(genome_g)
Note right of MASK: ゲノムが接続のON/OFFを制御<br/>ただしコネクトーム範囲内に制限
MASK->>CONN: validate_within_connectome_bounds()
CONN-->>MASK: 境界外接続は強制OFF
MASK->>PHYS: check_ei_balance()
PHYS-->>MASK: R = N_E / N_I
alt R ∈ [3.5, 5.0](生理的範囲)
MASK->>LIF: update_structural_mask()
LIF->>EVAL: run_simulation(T=1000ms)
EVAL-->>EVO: fitness{task_score, spike_efficiency, bio_fidelity}
else 生理的範囲外
EVAL-->>EVO: fitness=0(ペナルティ)
end
EVO->>EVO: select_top_k(fitness)
EVO->>EVO: crossover_and_mutate()
end
EVO->>EVO: deploy_best_genome()
EVO->>LIF: apply final structural_mask
Note over EVO,PHYS: 生物学的制約を満たす最適接続構造が収束
9. Mathematical model
9.1 Weight initialization with structural constraints
For the population of neurons \(\mathcal{N}_u = \{1, \ldots, N\}\) in node \(u\), the adjacency matrix \(\mathbf{A}^{(u)} \in \{0,1\}^{N \times N}\) and the connection strength \(\mathbf{S}^{(u)} \in obtained from connectome data Define \mathbb{R}_{\geq 0}^{N \times N}\).
The initial weight matrix \(\mathbf{W}^{(u,0)}\) is computed as follows:
where: - \(s_{ij}^{(u)}\): Connection strength of connectome data (normalized) - \(\alpha = 0.1\): Scaling factor - \(e_{ij} \in \{+1, -1\}\): E/I label (+1: excitatory, -1: inhibitory)
9.2 STDP update rule with structural constraints
If structure mask \(A_{ij}^{(u)} = 0\), there is no connection (update prohibited).
9.3 E/I balance constraints
Constrain the excitatory/inhibitory ratio of a neuron population:
Weight sign constraint:
9.4 Synaptic delay model
Calculate synaptic delay \(d_{ij}\) from axon length \(\ell_{ij}\) and conduction velocity \(v\):
where \(v \approx 1\text{–}10\ \text{m/s}\) (depending on unmyelinated/myelinated), \(\delta_{\text{syn}} \approx 0.5\text{–}2\ \text{ms}\) (synaptic delay).
9.5 Zenoh Routing Priority (HCP derived)
Define Zenoh routing priority \(p_{uv}\) between nodes \(u, v\) from HCP connection strength \(c_{uv}^{\text{HCP}}\):
A low-latency, high-bandwidth Zenoh path is assigned between a pair of nodes with a large \(p_{uv}\).
9.6 Meta-STDP objective function (with connectome constraints)
The additional term \(\lambda_C \cdot \mathcal{D}_{\text{KL}}(\cdot)\) is a KL regularization term that suppresses the weight distribution after learning from deviating from the distribution of the connectome data (\(\lambda_C\) is typically \(0.01\)).
10. Implementation details: Integration into existing components
10.1 Changes to evospikenet/core.py
Add the following arguments/attributes to LIFNeuronLayer (maintaining backward compatibility):
class LIFNeuronLayer(nn.Module):
def __init__(
self,
n_in: int,
n_out: int,
leak: int = 230,
threshold: int = 1024,
reset_potential: int = 0,
# --- Phase E: New argument ---
connectome_topology: Optional[torch.sparse.FloatTensor] = None,
ei_mask: Optional[torch.Tensor] = None,
delay_buffer: Optional[torch.Tensor] = None,
):
super().__init__()
self.leak = leak
self.threshold = threshold
self.reset_potential = reset_potential
if connectome_topology is not None:
# Structure mask (no slope required)
self.register_buffer("structural_mask", connectome_topology.bool())
# Initialize weights with connectome strength
dense = connectome_topology.to_dense()
if ei_mask is not None:
dense = dense * ei_mask.float() # E/I label applied
self.weight = nn.Parameter(dense * 0.1)
else:
self.structural_mask = None
self.weight = nn.Parameter(torch.randn(n_out, n_in) * 0.01)
# E/I mask (used for weight sign constraints)
self.register_buffer("ei_mask", ei_mask)
# Synaptic delay buffer (in ms)
self.register_buffer("delay_buffer", delay_buffer)
def forward(self, x: torch.Tensor) -> torch.Tensor:
# Apply structural mask (zero for non-connected parts)
if self.structural_mask is not None:
effective_weight = self.weight * self.structural_mask.float()
else:
effective_weight = self.weight
# E/I sign constraint
if self.ei_mask is not None:
effective_weight = torch.where(
self.ei_mask > 0,
effective_weight.clamp(min=0), # Excitability: ≥0
effective_weight.clamp(max=0), # Inhibitory: ≤0
)
return F.linear(x.float(), effective_weight)
10.2 Changes to evospikenet/node_types.py
Add connectome metadata fields to NodeDescriptor:
@dataclass
class ConnectomeMeta:
source: str # "MICrONS-2023", "FlyWire-2024", etc.
avg_indegree: float
avg_outdegree: float
ei_ratio: float # Typical value: 4.2
preferred_upstream: List[str] # HCP-derived upstream node priority order
preferred_downstream: List[str] # HCP-derived downstream node priority order
version: str # "v789"
@dataclass
class NodeDescriptor:
node_type: str
rank: int
cortical_region: str
# --- Phase E: New field ---
connectome_meta: Optional[ConnectomeMeta] = None
10.3 config/connectome_config.yaml (new)
# config/connectome_config.yaml
# Connectome data source settings
# Manage authentication information with environment variables (never commit)
version: "2026-03-18"
update_schedule: "0 2 * * 1" # Every Monday 02:00 JST
sources:
c_elegans:
type: wormatlas_json
url: "https://wormwiring.org/si/neural_connectome.json"
cache_path: "data/connectome/c_elegans.json"
node_mapping:
memory_spike: "CA3_proxy" # Using C.elegans self-association circuit as a proxy for CA3
flywire:
type: cave_api
dataset: "flywire_public"
auth_token_env: "CAVE_AUTH_TOKEN" # environmental variables
node_mapping:
visual: ["LC4", "T4", "T5", "medulla_columns"]
auditory: ["JO-A", "JO-B", "JO-C"]
semantic: ["mushroom_body_KC"]
microns:
type: cave_api
dataset: "minnie65_public"
auth_token_env: "MICRONS_AUTH_TOKEN"
node_mapping:
visual: ["L4", "L23", "L5"]
spatial: ["posterior_parietal"]
motor: ["M1_excitatory"]
pfc: ["dlPFC_column"]
hcp:
type: tractography
data_path: "data/connectome/hcp_s1200_connectivity.npz"
atlas: "HCP_MMP1.0"
# Inter-node connectivity matrix (29x29) used for Zenoh routing
validation:
ei_ratio_tolerance: 0.5 # Tolerance of |R - 4.2|
min_synapse_count: 100 # Minimum number of synapses per node
spike_rate_range: [0.01, 0.3] # Normal spike rate range
11. Verification strategy
11.1 Four layers of validation
graph TD
subgraph "L1: 単体テスト"
U1["test_structural_mask_init()<br/>Mask shape/sparseness"]
U2["test_ei_constraint()<br/>Weight sign constraint"]
U3["test_delay_buffer_shape()<br/>Delay buffer dimensions"]
end
subgraph "L2: 統合テスト"
I1["test_connectome_stdp()<br/>Zero update outside mask confirmed"]
I2["test_ei_balance_maintained()<br/>R≈4.2 even after training"]
I3["test_zenoh_priority_routing()<br/>HCP priority route confirmation"]
end
subgraph "L3: 生理学的検証"
P1["test_spontaneous_activity()<br/>Spontaneous firing rate 1-5Hz"]
P2["test_gamma_oscillation()<br/>30-80Hz γ oscillation"]
P3["test_place_cell_formation()<br/>Hippocampal place cell formation"]
end
subgraph "L4: システム検証"
S1["test_full_brain_latency()<br/>E2E ≤ 200ms"]
S2["test_connectome_rollback()<br/>Rollback in case of abnormality"]
S3["benchmark_spike_efficiency()<br/>Before and after connectome comparison"]
end
U1 & U2 & U3 --> I1 & I2 & I3
I1 & I2 & I3 --> P1 & P2 & P3
P1 & P2 & P3 --> S1 & S2 & S3
11.2 Expected quantitative improvements
| Indicators | Phase D (current status) | Phase E (target) | Measurement method |
|---|---|---|---|
| Spike efficiency | Baseline | +15~25% | Comparison of spike numbers for the same task |
| E/I balance convergence speed | Indeterminate | < 100 epochs | Time series of weight distribution |
| Hippocampal reproducibility | — | Spontaneous appearance of theta rhythm (4-8Hz) | Episodic Node FFT |
| Connection pruning accuracy | Random | Connectome statistical error < 5% | KL distance of connection density distribution |
| Zenoh delay (PFC-hippocampus) | Homogeneous | HCP connection density proportional | RTT measurement |
12. Discussion: Expected effects and challenges
12.1 Expected effect
1. Emergence of spontaneous neural dynamics
A network initialized with connectome data has topological properties such as small-world structure, modularity, and hub nodes. It has been theoretically shown that these induce physiological neural dynamics such as spontaneous gamma oscillations, theta rhythms, and sparse activity (Watts & Strogatz 1998, Bullmore & Sporns 2009). Phase E may allow these spontaneous organizations to be observed for the first time in EvoSpikeNet.
2. Improving transfer learning efficiency
Visual nodes initialized with FlyWire's sensory circuit structure are expected to converge on visual recognition tasks in fewer training steps than with random initialization (the inverse proposition of Zador et al. 2019's “brain structures encoded through learning”).
3. Structural suppression of catastrophic forgetting
Because the connectome topology structurally limits connections that can be learned and overwritten, it works synergistically with forgetting control by Meta-STDP, improving long-term memory stability.
12.2 Major challenges
| Issues | Risk level | Countermeasures |
|---|---|---|
| Scale mismatch (real number of neurons >> EvoSpikeNet representation) | High | Subgraph sampling/spectral reduction |
| CAVE API rate limit (when acquiring a large amount) | Medium | Local cache/differential update |
| Interspecies differences in connectome (Drosophila→human) | Medium | Structural correspondence of homologous circuits (utilizing knowledge from the BMI field) |
| Memory overhead of delay buffer | Low to moderate | Sparse delay representation (keeps only non-zero delays) |
| Guaranteed convergence of EvoGenome coevolution | Low | Search space limited by physiological constraints |
13. References/Related Documents
EvoSpikeNet internal documentation
| Document | Contents |
|---|---|
docs/NEUROSCIENCE_BRAIN_SIMULATION_PAPER.md |
EvoSpikeNet whole brain simulation paper |
docs/DISTRIBUTED_BRAIN_SYSTEM.md |
29-node distributed architecture specification |
docs/DISTRIBUTED_BRAIN_NODE_TYPES.md |
Node type and cortex correspondence table |
docs/DISTRIBUTED_BRAIN_NODE_CONFIGURATION.md |
Node configuration/simulation type |
docs/EVOSPIKENET_CONCEPTS.md |
LIF/Izhikevich/ChronoSpikeAttention details |
docs/BIOMIMETIC_IMPLIMENTATION_PLAN.md |
Biomimicry Implementation Plan |
docs-dev/connectome_evospikenet_implementation_policy.ja.md |
Policy document underlying this document |
docs-dev/connectome_literature_review.ja.md |
Connectome Literature Review |
docs-dev/connectome_updates_2021-2026.ja.md |
2021–2026 Latest Research Trends |
docs-dev/detailed_paper_summaries.ja.md |
Detailed summaries of 10 representative papers |
Major connectome databases
| Dataset | Species | Number of neurons | Public API |
|---|---|---|---|
| C. elegans (Cook et al. 2019) | Caenorhabditis elegans | 302 | WormAtlas JSON |
| FlyWire (Dorkenwald et al. 2024) | Drosophila | ~140,000 | fafbseg-py, CAVEclient |
| MICrONS (Consortium 2021) | Mouse V1 | ~65,000 | microns-explorer.org, CAVEclient |
| HCP S1200 | Human | Whole brain macro | humanconnectome.org |
Reference article (DOI)
| Paper | DOI |
|---|---|
| White et al. 1986 — C. elegans whole neural circuit | https://doi.org/10.1098/rstb.1986.0056 |
| Watts & Strogatz 1998 — Small World Network | https://doi.org/10.1038/30918 |
| Bullmore & Sporns 2009 — Brain Network | https://doi.org/10.1038/nrn2575 |
| Ronneberger et al. 2015 — U-Net | https://doi.org/10.1007/978-3-319-24574-4_28 |
| Januszewski et al. 2018 — FFN | https://doi.org/10.1038/s41592-018-0049-4 |
| MICrONS Consortium 2021 | https://doi.org/10.1101/2021.07.28.454025 |
| Dorkenwald et al. 2024 — FlyWire | https://doi.org/10.1038/s41586-024-07558-y |
| Schlegel et al. 2024 — Drosophila development | https://doi.org/10.1038/s41586-024-07763-9 |
| Tavakoli et al. 2025 — LICONN (Nature) | https://doi.org/10.1038/s41586-025-08985-1 |
| Zador et al. 2019 — Innate knowledge and learning | https://doi.org/10.1038/s41467-019-11786-6 |
Appendix A: Connectome Integration Checklist (Phase E Implementation Completion Record)
Phase E-0/E-1/E-2/E-3 実装完了チェックリスト(2026-03-19)
---------------------------------------------------------
✅ connectome_loader.py の実装(evospikenet/connectome_loader.py)
✅ load_json(): WormAtlas JSON のロードと COO 変換
✅ load_npz(): NPZ キャッシュからのロード
✅ save_npz(): NPZ キャッシュへの保存
✅ stratified_sample(): F-1 層別サンプリング(E/I 比保持)
✅ spectral_coarsen(): F-2 グラフラプラシアンスペクトル縮約
✅ load(): ETag + TTL キャッシュ制御
✅ read_etag() / write_etag(): ETag 差分管理
✅ _is_cache_expired(): TTL チェック
✅ ConnectomeLIFLayer の実装 (core.py)
✅ structural_mask バッファ登録(bool sparse COO テンソル)
✅ connectome_weight パラメータ
✅ attach_sparse_delay_buffer(): SparseDelayBuffer の装着
✅ validate_ei_ratio(): E/I 比バリデーション
✅ SNNModel.forward(): 遅延ルーティング(step_int16 経由)
✅ SNNModel.reset(): 遅延バッファリセット
✅ Phase E-2 新規モジュール
✅ evospikenet/connectome/node_mapping.py
✅ get_source_for_node()
✅ build_manifest()
✅ apply_to_layer()
✅ evospikenet/connectome/delay_buffer.py(SparseDelayBuffer)
✅ COO リングバッファ [max_delay+1, n_neurons]
✅ step() / step_int16() (_INT16_SCALE=512)
✅ from_connectome_data()
✅ reset() / to()
✅ evospikenet/zenoh_connectome_publisher.py
✅ ConnectomeMetadataPublisher
✅ トピック: connectome/metadata/{node_id}
✅ セッション=None でログオンリーモード
✅ build_payload() / publish() / close()
✅ テスト(合計 102 PASS)
✅ tests/test_connectome_loader.py: 30 pass / 2 fail / 4 skip
✅ tests/test_lif_structural_mask.py: 2 fail(既知不具合)
✅ tests/test_node_mapping.py: 18 pass
✅ tests/test_delay_buffer.py: 22 pass
✅ tests/test_zenoh_connectome_publisher.py: 30 pass
✅ 設定ファイル
✅ config/connectome_config.yaml 作成・チューニング済み
✅ .gitignore に認証情報パスを追加
✅ Phase E-3(実装完了)
✅ scripts/sync_connectome.py 自動更新パイプライン
✅ apply_delta(): weight_delta JSON のアトミック適用
✅ apply_delta_with_validation(): E/I 比バリデーション付き適用
✅ sync_connectome(): CAVE → structural_mask 全同期
✅ fetch_cave_synapses_with_retry(): リトライ付きフェッチ
✅ ConnectomeSyncValidationError 例外クラス
✅ evospikenet/brain_routing.py HCP Zenoh ルーティング最適化
✅ HCPDelayRouter: session=None ログオンリーモード対応
✅ compute_delay_matrix(): 遅延行列計算
✅ optimize_routing_delays(): ルーティング最適化
✅ build_hcp_routing_table(): HCP ルーティングテーブル構築
✅ scripts/auto_node_mapper.py 自動ノードマッパー
✅ map_connectome(): コネクトーム → ノードマッピング
✅ generate_manifest(): node_manifest.yaml 生成
✅ MappingResult / NodeMappingEntry データクラス
✅ EvoGenome ↔ structural_mask 共進化フック(evolution_engine.py E-3-2)
✅ テスト(合計 112 PASS / 1 SKIP)
✅ tests/test_auto_node_mapper.py: 6 pass
✅ tests/e2e/test_connectome_e2e.py: E-3 シナリオ 10 pass
⬜ Phase E-3-5(未着手)
□ HCP DUC(Direct URL Cache)取得最適化
□ 全脳 E2E バリデーション(spike efficiency +15–25%)
*This document is positioned as an academic and technical paper on EvoSpikeNet Phase E "Connectome Integration". Track implementation progress according to the roadmap in docs-dev/connectome_evospikenet_implementation_policy.ja.md. *
Copyright 2026 Moonlight Technologies Inc. All Rights Reserved. Author: Masahiro Aoki / Document ID: MT2026-AI-02-001