Coherent-resonant netting: disorder-enhanced selectivity from transient wave-like dynamics on biological connectomes.
The 16 matches
- [1] § Methods › Controls (competitors) and surrogate networks ↔ experiments/drosophila/A8_4_5/A8_4_5_bundle_localization_arch/A8_5_architecture_dependence.py, lines 337–403 · score 0.86 · lesion_KC_MBON, lesion_drop, n_surrogates, n_trials, architecture dependence, rewired
- [2] § Methods › Substrates and rationale ↔ experiments/bridgeA_scripts/A2_freeze_benchmark_config.py, lines 306–384 · score 0.80 · k_source, k_target, max_hops, active subgraph, PN, MBON
- [3] § Methods › Simulation parameters ↔ experiments/step6_release_candidate/CRN_step6_release_candidate/steps/step2_repro_bundle/CRN_step2_repro_bundle/step2_cortex_transport/run_cortex_transport_eps_sweep.py, lines 1–39 · score 0.68 · diagonal disorder amplitude, temperature parameter, T_env
- [4] § Methods › Model–substrate correspondence ↔ experiments/bridgeA_scripts/A3_run_real_graph_benchmark.py, lines 219–315 · score 0.68 · sink jump, L_sym, Hamiltonian, uv, symmetrized, Laplacian
- [5] § The CRN framework › Two-factor mechanism: coherence × topology ↔ experiments/bridgeA_scripts/A3_run_real_graph_benchmark.py, lines 219–315 · score 0.65 · sink jump, L_sym, distractor node, symmetrized, coherent, graph
- [6] § The CRN framework › Two-regime architecture: Stage-I netting and Stage-II fixation ↔ datasets/zenodo_18379851_evolutionary_game/PUBLIC/run_step4_evolutionary_selection.py, lines 1–48 · score 0.64 · recurrent associative memory, confinement, gating, permeability, recall, dynamics
- [7] § Results › Architecture dependence across κ ↔ experiments/drosophila/A8_4_5/A8_4_5_bundle_localization_arch/A8_5_architecture_dependence.py, lines 4–45 · score 0.64 · Disorder Enhanced Selectivity, Architecture dependence, mushroom body, confidence, lesion, variant
- [8] § Results › Architecture dependence across κ ↔ experiments/drosophila/A8_6/A8_6_postprocess_A85.py, lines 168–243 · score 0.60 · P_good, pT_min, coverage end, lesion, variants, rewiring
- [9] § Methods › Statistical analysis ↔ experiments/elegans_touch_circuit/crn_nematode_pipeline.py, lines 132–173 · score 0.60 · elegans touch circuit, expm multiply, Liouvillian, CRN
- [10] § The CRN framework › Two-regime architecture: Stage-I netting and Stage-II fixation ↔ datasets/zenodo_18379851_evolutionary_game/PUBLIC/run_cortex_transport.py, lines 1–66 · score 0.60 · associative memory, inter, leaks, permeability, inhibitory, recurrent
- [11] § Methods › Model–substrate correspondence ↔ experiments/bridgeA_scripts/A2_freeze_benchmark_config.py, lines 1–36 · score 0.58 · active subgraph, Drosophila larva, PN, MBON, hop, benchmark
- [12] § Methods › Model–substrate correspondence ↔ experiments/bridgeA_scripts/A2_freeze_benchmark_config.py, lines 1–36 · score 0.55 · mushroom body, canonical, PN, MBON, subgraph, hop
- [13] § Methods › Statistical analysis ↔ experiments/drosophila/A8_analysis/A8_1_uncertainty_analysis.py, lines 262–307 · score 0.55 · coverage_end, Uncertainty, Selectivity_end, bootstrap, curves, model
- [14] § The CRN framework › Two-regime architecture: Stage-I netting and Stage-II fixation ↔ datasets/zenodo_18379851_evolutionary_game/PUBLIC/run_step3_architecture_tradeoff.py, lines 241–291 · score 0.54 · probability mass, t_end, global, memory, architectural, distractor
- [15] § Methods › Statistical analysis ↔ experiments/elegans_touch_circuit/crn_graph_topology_metrics.py, lines 412–463 · score 0.54 · elegans touch circuit, human, seeds, CRN, graph
- [16] § Methods › Model–substrate correspondence ↔ experiments/bridgeA_stepA1_real_connectome/CRN_bridgeA_stepA1_real/scripts/run_stepA1_real_connectome.py, lines 541–664 · score 0.53 · PN nodes, MBON nodes, subgraph, larva, connectome
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 481 lines · 16 KB · MIT · 3 matches
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- A2_freeze_benchmark_config.py
- Step A.2 (Drosophila larva / Mushroom Body): Freeze a reproducible benchmark config
- on top of the real connectome graph produced in Step A.1.
- What it does:
- 1) Loads GraphML(s) from A.1 outputs (core and/or extended).
- 2) Detects node "type" attribute and edge weight attribute.
- 3) Computes sanity/topology reports (reachability, path length stats).
- 4) Picks canonical Source / Target / Distractor sets deterministically.
- 5) Builds an "active subgraph" (nodes on PN→...→MBON paths, hop-limited).
- 6) Writes:
- - topology_report_<mode>.json
- - bench_config_<mode>.json
- - active_subgraph_<mode>.graphml
- - active_nodes_<mode>.csv
- - active_edges_<mode>.csv
- No pandas required (pure stdlib + networkx + numpy).
- """
- import argparse
- import csv
- import json
- import os
- import sys
- from collections import Counter, defaultdict, deque
- import networkx as nx
- import numpy as np
- KNOWN_TYPE_TOKENS = ("PN", "KC", "MBON", "MBIN", "FBN", "FFN")
- def _find_graphml_files(a1_dir: str):
- """Recursively find .graphml files under a directory."""
- out = []
- for root, _, files in os.walk(a1_dir):
- for fn in files:
- if fn.lower().endswith(".graphml"):
- out.append(os.path.join(root, fn))
- return sorted(out)
- def _guess_mode_from_path(p: str) -> str:
- low = os.path.basename(p).lower()
- if "extended" in low:
- return "extended"
- if "core" in low:
- return "core"
- # Fallback: infer from directory names
- low2 = p.lower()
- if "/extended" in low2 or "\\extended" in low2:
- return "extended"
- if "/core" in low2 or "\\core" in low2:
- return "core"
- return "unknown"
- def _detect_node_type_attr(G: nx.Graph):
- """
- Detect node attribute containing the coarse cell type.
- Heuristic: attribute whose values contain tokens PN/KC/MBON etc.
- """
- # Collect candidate keys
- keys = set()
- for _, attrs in G.nodes(data=True):
- for k in attrs.keys():
- keys.add(k)
- # Score keys by how many values look like known types
- best_key = None
- best_score = -1
- for k in keys:
- vals = []
- for _, attrs in G.nodes(data=True):
- v = attrs.get(k, None)
- if v is None:
- continue
- vals.append(str(v))
- if not vals:
- continue
- score = 0
- for v in vals:
- vv = v.upper()
- if any(tok in vv for tok in KNOWN_TYPE_TOKENS):
- score += 1
- # Prefer keys that classify most nodes
- if score > best_score:
- best_score = score
- best_key = k
- return best_key, best_score
- def _detect_weight_attr(G: nx.Graph):
- """
- Detect edge attribute that represents weight (synapse count).
- Preference order: 'weight', 'w', 'synapses', 'count', otherwise first numeric attr.
- """
- if G.number_of_edges() == 0:
- return None
- u, v, attrs = next(iter(G.edges(data=True)))
- preferred = ["weight", "w", "synapses", "count", "n_syn", "n_synapses"]
- for k in preferred:
- if k in attrs:
- return k
- # Fallback: first numeric
- for k, val in attrs.items():
- try:
- float(val)
- return k
- except Exception:
- continue
- return None
- def _as_float(x, default=1.0):
- try:
- return float(x)
- except Exception:
- return default
- def _node_type(G: nx.Graph, n, type_key: str):
- v = G.nodes[n].get(type_key, None)
- if v is None:
- return "UNKNOWN"
- return str(v)
- def _split_types(G: nx.DiGraph, type_key: str):
- """
- Return dict of {coarse_type: set(nodes)}. Uses substring matching.
- """
- buckets = defaultdict(set)
- for n in G.nodes():
- t = _node_type(G, n, type_key).upper()
- if "MBON" in t:
- buckets["MBONs"].add(n)
- elif "KC" in t:
- buckets["KCs"].add(n)
- elif "PN" in t:
- buckets["PNs"].add(n)
- elif "MBIN" in t:
- buckets["MBINs"].add(n)
- elif "FBN" in t:
- buckets["MB-FBNs"].add(n)
- elif "FFN" in t:
- buckets["MB-FFNs"].add(n)
- else:
- buckets["OTHER"].add(n)
- return buckets
- def _edge_type_counts(G: nx.DiGraph, type_key: str):
- c = Counter()
- for u, v in G.edges():
- tu = _node_type(G, u, type_key)
- tv = _node_type(G, v, type_key)
- c[f"{tu}->{tv}"] += 1
- return dict(c)
- def _weighted_out_degree(G: nx.DiGraph, nodes, weight_key: str):
- scores = {}
- for n in nodes:
- s = 0.0
- for _, v, attrs in G.out_edges(n, data=True):
- s += _as_float(attrs.get(weight_key, 1.0), 1.0)
- scores[n] = s
- return scores
- def _weighted_in_degree(G: nx.DiGraph, nodes, weight_key: str):
- scores = {}
- for n in nodes:
- s = 0.0
- for u, _, attrs in G.in_edges(n, data=True):
- s += _as_float(attrs.get(weight_key, 1.0), 1.0)
- scores[n] = s
- return scores
- def _multi_source_bfs_limited(G: nx.DiGraph, sources, max_hops: int):
- """
- Return dict {node: dist} for nodes within max_hops from any source (directed).
- """
- dist = {}
- q = deque()
- for s in sources:
- dist[s] = 0
- q.append(s)
- while q:
- u = q.popleft()
- du = dist[u]
- if du >= max_hops:
- continue
- for v in G.successors(u):
- if v in dist:
- continue
- dist[v] = du + 1
- q.append(v)
- return dist
- def _path_length_stats(G: nx.DiGraph, sources, targets):
- """
- Compute directed shortest-path lengths from any source to each target.
- """
- # BFS from all sources (unweighted hop-count)
- dist = _multi_source_bfs_limited(G, sources, max_hops=10**9)
- lens = []
- unreachable = 0
- for t in targets:
- if t in dist:
- lens.append(dist[t])
- else:
- unreachable += 1
- if lens:
- arr = np.array(lens, dtype=float)
- stats = {
- "n_targets": int(len(targets)),
- "n_reachable": int(len(lens)),
- "n_unreachable": int(unreachable),
- "min": float(np.min(arr)),
- "p25": float(np.percentile(arr, 25)),
- "median": float(np.median(arr)),
- "mean": float(np.mean(arr)),
- "p75": float(np.percentile(arr, 75)),
- "max": float(np.max(arr)),
- }
- else:
- stats = {
- "n_targets": int(len(targets)),
- "n_reachable": 0,
- "n_unreachable": int(unreachable),
- }
- return stats
- def _write_csv_nodes(path, rows):
- with open(path, "w", newline="", encoding="utf-8") as f:
- w = csv.DictWriter(f, fieldnames=list(rows[0].keys()))
- w.writeheader()
- for r in rows:
- w.writerow(r)
- def _write_csv_edges(path, rows):
- with open(path, "w", newline="", encoding="utf-8") as f:
- w = csv.DictWriter(f, fieldnames=list(rows[0].keys()))
- w.writeheader()
- for r in rows:
- w.writerow(r)
- def freeze_one(graphml_path: str, out_dir: str, k_source: int, k_target: int, max_hops: int, seed: int):
- mode = _guess_mode_from_path(graphml_path)
- print(f"\n[A2] Loading GraphML ({mode}): {graphml_path}")
- G = nx.read_graphml(graphml_path)
- if not isinstance(G, nx.DiGraph):
- # GraphML can load as Graph; if so, treat as directed for safety
- G = nx.DiGraph(G)
- type_key, type_score = _detect_node_type_attr(G)
- if type_key is None:
- raise RuntimeError("Could not detect node-type attribute in GraphML nodes.")
- weight_key = _detect_weight_attr(G)
- if weight_key is None:
- raise RuntimeError("Could not detect edge-weight attribute in GraphML edges.")
- # Normalize weight attribute to float for all edges
- for u, v, attrs in G.edges(data=True):
- attrs[weight_key] = _as_float(attrs.get(weight_key, 1.0), 1.0)
- buckets = _split_types(G, type_key)
- pns = sorted(list(buckets.get("PNs", [])))
- kcs = sorted(list(buckets.get("KCs", [])))
- mbons = sorted(list(buckets.get("MBONs", [])))
- node_type_counts = {k: len(v) for k, v in buckets.items() if len(v) > 0}
- # Simple sanity
- isolated = [n for n in G.nodes() if (G.in_degree(n) + G.out_degree(n)) == 0]
- n_isolated = len(isolated)
- # Weighted degree for picking sources/targets
- rng = np.random.default_rng(seed)
- pn_scores = _weighted_out_degree(G, pns, weight_key)
- # take top-k_source by weighted out-degree; tie-break by node id for determinism
- pns_sorted = sorted(pns, key=lambda n: (-pn_scores.get(n, 0.0), str(n)))
- source_nodes = pns_sorted[: min(k_source, len(pns_sorted))]
- mbon_scores = _weighted_in_degree(G, mbons, weight_key)
- mbons_sorted = sorted(mbons, key=lambda n: (-mbon_scores.get(n, 0.0), str(n)))
- target_nodes = mbons_sorted[: min(k_target, len(mbons_sorted))]
- distractor_nodes = mbons_sorted[min(k_target, len(mbons_sorted)) : min(2 * k_target, len(mbons_sorted))]
- # Reachability stats (any PN -> MBON)
- path_stats_all = _path_length_stats(G, sources=pns, targets=mbons)
- path_stats_sel = _path_length_stats(G, sources=source_nodes, targets=target_nodes)
- # Active subgraph: forward-reachable from selected sources within max_hops AND
- # reverse-reachable to selected targets within max_hops.
- forward = _multi_source_bfs_limited(G, source_nodes, max_hops=max_hops)
- Grev = G.reverse(copy=False)
- backward = _multi_source_bfs_limited(Grev, target_nodes, max_hops=max_hops)
- active_nodes = set(forward.keys()).intersection(set(backward.keys()))
- # Always include selected endpoints
- active_nodes.update(source_nodes)
- active_nodes.update(target_nodes)
- active_nodes.update(distractor_nodes)
- H = G.subgraph(active_nodes).copy()
- # Edge-type counts (coarse)
- edge_type_counts = Counter()
- for u, v in H.edges():
- tu = _node_type(H, u, type_key)
- tv = _node_type(H, v, type_key)
- edge_type_counts[f"{tu}->{tv}"] += 1
- # Build reports
- def _node_label(n):
- # Try common label keys; else return node id
- attrs = G.nodes[n]
- for k in ("label", "name", "id", "cell_id"):
- if k in attrs and attrs[k] not in (None, ""):
- return str(attrs[k])
- return str(n)
- selection = {
- "sources": [{"node": str(n), "label": _node_label(n), "w_out": pn_scores.get(n, 0.0)} for n in source_nodes],
- "targets": [{"node": str(n), "label": _node_label(n), "w_in": mbon_scores.get(n, 0.0)} for n in target_nodes],
- "distractors": [{"node": str(n), "label": _node_label(n), "w_in": mbon_scores.get(n, 0.0)} for n in distractor_nodes],
- }
- topo_report = {
- "mode": mode,
- "graphml": os.path.abspath(graphml_path),
- "detected": {"node_type_attr": type_key, "node_type_score": int(type_score), "weight_attr": weight_key},
- "counts_full": {"N_nodes": int(G.number_of_nodes()), "N_edges": int(G.number_of_edges()), "N_isolated": int(n_isolated)},
- "counts_types_full": node_type_counts,
- "path_lengths_all_PN_to_all_MBON": path_stats_all,
- "path_lengths_selected_sources_to_selected_targets": path_stats_sel,
- "selection": selection,
- "active_subgraph": {"N_nodes": int(H.number_of_nodes()), "N_edges": int(H.number_of_edges()), "max_hops": int(max_hops)},
- "edge_type_counts_active": dict(edge_type_counts),
- }
- bench_config = {
- "mode": mode,
- "graphml_source": os.path.abspath(graphml_path),
- "node_type_attr": type_key,
- "weight_attr": weight_key,
- "seed": int(seed),
- "k_source": int(k_source),
- "k_target": int(k_target),
- "max_hops": int(max_hops),
- "source_nodes": [str(n) for n in source_nodes],
- "target_nodes": [str(n) for n in target_nodes],
- "distractor_nodes": [str(n) for n in distractor_nodes],
- "active_nodes": [str(n) for n in sorted(active_nodes, key=str)],
- # Simulation defaults (editable later)
- "sim_defaults": {
- "gamma": 1.0,
- "eta_sink": 1.0,
- "kappa_grid": [1e-3, 3e-3, 1e-2, 3e-2, 1e-1, 3e-1, 1.0, 3.0, 10.0],
- "T_max": 10.0,
- "dt": 0.05,
- "disorder": {"kind": "none", "epsilon": 0.0, "seed": int(seed)},
- },
- "selection_human_readable": selection,
- }
- os.makedirs(out_dir, exist_ok=True)
- # Write JSONs
- topo_path = os.path.join(out_dir, f"topology_report_{mode}.json")
- cfg_path = os.path.join(out_dir, f"bench_config_{mode}.json")
- with open(topo_path, "w", encoding="utf-8") as f:
- json.dump(topo_report, f, indent=2, ensure_ascii=False)
- with open(cfg_path, "w", encoding="utf-8") as f:
- json.dump(bench_config, f, indent=2, ensure_ascii=False)
- # Write active subgraph
- subgraph_path = os.path.join(out_dir, f"active_subgraph_{mode}.graphml")
- nx.write_graphml(H, subgraph_path)
- # Write nodes/edges CSV for convenience
- nodes_rows = []
- for n, attrs in H.nodes(data=True):
- row = {"node": str(n), "cell_type": str(attrs.get(type_key, ""))}
- # store a couple of optional labels if exist
- for k in ("label", "name"):
- if k in attrs:
- row[k] = str(attrs.get(k))
- nodes_rows.append(row)
- edges_rows = []
- for u, v, attrs in H.edges(data=True):
- row = {"u": str(u), "v": str(v), "weight": float(attrs.get(weight_key, 1.0))}
- # also preserve edge type if present
- for k in ("type", "edge_type"):
- if k in attrs:
- row[k] = str(attrs.get(k))
- edges_rows.append(row)
- nodes_csv = os.path.join(out_dir, f"active_nodes_{mode}.csv")
- edges_csv = os.path.join(out_dir, f"active_edges_{mode}.csv")
- if nodes_rows:
- _write_csv_nodes(nodes_csv, nodes_rows)
- if edges_rows:
- _write_csv_edges(edges_csv, edges_rows)
- # Print summary
- print(f"[A2:{mode}] node_type_attr='{type_key}', weight_attr='{weight_key}'")
- print(f"[A2:{mode}] FULL: N={G.number_of_nodes()} E={G.number_of_edges()} (isolated={n_isolated})")
- print(f"[A2:{mode}] ACTIVE: N={H.number_of_nodes()} E={H.number_of_edges()} (max_hops={max_hops})")
- print(f"[A2:{mode}] Sources={len(source_nodes)} Targets={len(target_nodes)} Distractors={len(distractor_nodes)}")
- print(f"[A2:{mode}] Wrote:")
- print(f" - {topo_path}")
- print(f" - {cfg_path}")
- print(f" - {subgraph_path}")
- if nodes_rows:
- print(f" - {nodes_csv}")
- if edges_rows:
- print(f" - {edges_csv}")
- return topo_path, cfg_path, subgraph_path
- def main():
- ap = argparse.ArgumentParser()
- ap.add_argument("--a1_dir", default=None, help="Folder where Step-A1 wrote GraphML(s). If set, auto-discovers .graphml files.")
- ap.add_argument("--graphml", default=None, nargs="*", help="Explicit GraphML file path(s). Overrides --a1_dir.")
- ap.add_argument("--out_dir", default="A2_outputs", help="Output folder.")
- ap.add_argument("--k_source", type=int, default=10, help="Number of PN source nodes to freeze.")
- ap.add_argument("--k_target", type=int, default=5, help="Number of MBON target nodes to freeze.")
- ap.add_argument("--max_hops", type=int, default=4, help="Hop limit used to define the active subgraph.")
- ap.add_argument("--seed", type=int, default=42, help="RNG seed for deterministic selection.")
- args = ap.parse_args()
- graphml_files = []
- if args.graphml:
- graphml_files = [os.path.abspath(os.path.expanduser(p)) for p in args.graphml]
- elif args.a1_dir:
- a1 = os.path.abspath(os.path.expanduser(args.a1_dir))
- graphml_files = _find_graphml_files(a1)
- if not graphml_files:
- raise RuntimeError(f"No .graphml files found under: {a1}")
- else:
- raise RuntimeError("Provide either --graphml <file(s)> or --a1_dir <folder>.")
- out_dir = os.path.abspath(os.path.expanduser(args.out_dir))
- os.makedirs(out_dir, exist_ok=True)
- # Freeze each graphml found
- for p in graphml_files:
- freeze_one(
- graphml_path=p,
- out_dir=out_dir,
- k_source=args.k_source,
- k_target=args.k_target,
- max_hops=args.max_hops,
- seed=args.seed,
- )
- print("\n[A2] DONE")
- if __name__ == "__main__":
- main()
A2_freeze_benchmark_config.py at commit e12f45d, under MIT · at the source
Overview
- Independent Researcher, Sant Cugat del Vallès, Spain
Abstract
Biological agents face an energy-information bottleneck: inference requires rapid exploration of large hypothesis spaces, yet high-gain spiking is metabolically expensive. We propose Coherent-Resonant Netting (CRN) as a two-regime decision architecture in which a low-amplitude Stage-I transport process filters candidate routes on a structural graph before a higher-cost Stage-II commitment step. In this manuscript, we model Stage-I only, using a mechanistically neutral GKSL open-system proxy with dephasing rate κ and diagonal disorder ε. The model does not imply microscopic quantum coherence in neural tissue. In two biological connectome benchmarks, selectivity improves under partial coherence. In a compact Caenorhabditis elegans touch-circuit benchmark, the wave proxy yields a 1.39 × improvement in peak target absorption over a matched low-temperature classical baseline. In a Drosophila larva mushroom-body motif (N = 243 active nodes), selectivity shows a pronounced non-monotonic disorder-enhanced selectivity peak at intermediate ε, strongest in the native topology and strongly attenuated by degree-preserving rewiring. A permutation-based reanalysis confirms the pre-specified DES contrast (ε = 3 versus ε = 0, p = 0.010), and the effect weakens progressively with increasing dephasing, becoming non-significant in the high-κ regime. We interpret these findings as evidence for a topology-sensitive, dephasing-dependent Stage-I routing effect on biological connectomes. Broader energetic and evolutionary implications remain conditional because Stage-II commitment is not explicitly modeled here.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 16 matches between paragraphs and lines of code.
Zenodo 18338260
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
- 28 September 2026: the link answers (HTTP 200)
ovdspb-code/crn_4.1
e12f45d5f428b101784e624953ddc4aea5d4317f, 19 February 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
51 files
- R12-CROWN-LargeN-N1000/
run_largeN_stress_test.p , Python, 384 linesy - R12-CROWN/
qrn_analysis.py , Python, 265 lines - R12-CROWN/
qrn_core.py , Python, 437 lines - R12-CROWN/
qrn_energy.py , Python, 114 lines - R12-CROWN/
qrn_viz.py , Python, 255 lines - R12-CROWN/
run_all.py , Python, 155 lines - R12-CROWN/
validate_checkpoints.py , Python, 81 lines - datasets/
zenodo_18379851_evolutio , Python, 643 linesnary_game/ PUBLIC/ ecological_benchmark_v1. 3.py - datasets/
zenodo_18379851_evolutio , Python, 621 linesnary_game/ PUBLIC/ ecological_benchmark_v1. 3_FULL.py - datasets/
zenodo_18379851_evolutio , Python, 268 lines, 1 matchnary_game/ PUBLIC/ run_cortex_transport.py - datasets/
zenodo_18379851_evolutio , Python, 380 lines, 1 matchnary_game/ PUBLIC/ run_step3_architecture_t radeoff.py - datasets/
zenodo_18379851_evolutio , Python, 365 lines, 1 matchnary_game/ PUBLIC/ run_step4_evolutionary_s election.py - experiments/
bridgeA_scripts/ , Python, 481 lines, 3 matchesA2_freeze_benchmark_conf ig.py - experiments/
bridgeA_scripts/ , Python, 530 lines, 2 matchesA3_run_real_graph_benchm ark.py - experiments/
bridgeA_scripts/ , Python, 197 linesA4_analyze_and_plot.py - experiments/
bridgeA_stepA1_real_conn , Python, 668 lines, 1 matchectome/ CRN_bridgeA_stepA1_real/ scripts/ run_stepA1_real_connecto me.py - experiments/
drosophila/ , Python, 278 linesA7/ A7_analyze_disorder_resu lts.py - experiments/
drosophila/ , Python, 432 linesA7/ A7_run_disorder_thermal_ benchmark.py - experiments/
drosophila/ , Python, 322 linesA8/ A8_sweep_objectives_ener gy.py - experiments/
drosophila/ , Python, 407 linesA8_4_5/ A8_4_5_bundle_localizati on_arch/ A8_4_localization_diagno stics.py - experiments/
drosophila/ , Python, 545 lines, 2 matchesA8_4_5/ A8_4_5_bundle_localizati on_arch/ A8_5_architecture_depend ence.py - experiments/
drosophila/ , Python, 391 lines, 1 matchA8_6/ A8_6_postprocess_A85.py - experiments/
drosophila/ , Python, 501 lines, 1 matchA8_analysis/ A8_1_uncertainty_analysi s.py - experiments/
elegans_touch_circuit/ , Python, 467 lines, 1 matchcrn_graph_topology_metri cs.py - experiments/
elegans_touch_circuit/ , Python, 438 linescrn_nematode_full_stress _test.py - experiments/
elegans_touch_circuit/ , Python, 229 linescrn_nematode_honest_test .py - experiments/
elegans_touch_circuit/ , Python, 182 lines, 1 matchcrn_nematode_pipeline.py - experiments/
step6_release_candidate/ , Python, 268 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ step2_cortex_transport/ run_cortex_transport.py - experiments/
step6_release_candidate/ , Python, 236 lines, 1 matchCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ step2_cortex_transport/ run_cortex_transport_eps _sweep.py - experiments/
step6_release_candidate/ , Python, 255 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ compare_baselines.py - experiments/
step6_release_candidate/ , Python, 191 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ compare_baselines_barrie r.py - experiments/
step6_release_candidate/ , Python, 265 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ qrn_analysis.py - experiments/
step6_release_candidate/ , Python, 480 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ qrn_core.py - experiments/
step6_release_candidate/ , Python, 114 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ qrn_energy.py - experiments/
step6_release_candidate/ , Python, 257 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ qrn_viz.py - experiments/
step6_release_candidate/ , Python, 155 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ run_all.py - experiments/
step6_release_candidate/ , Python, 81 linesCRN_step6_release_candid ate/ steps/ step2_repro_bundle/ CRN_step2_repro_bundle/ vendor/ R12-CROWN/ validate_checkpoints.py - experiments/
step6_release_candidate/ , Python, 380 linesCRN_step6_release_candid ate/ steps/ step3_architecture_trade off_bundle/ CRN_step3_bundle/ step3_architecture_trade off/ run_step3_architecture_t radeoff.py - experiments/
step6_release_candidate/ , Python, 365 linesCRN_step6_release_candid ate/ steps/ step4_evolutionary_selec tion_bundle/ step4_evolutionary_selec tion/ run_step4_evolutionary_s election.py - experiments/
step6_release_candidate/ , Python, 309 linesCRN_step6_release_candid ate/ steps/ step5_consolidated_evide nce_bundle/ CRN_step5_consolidated_e vidence_bundle/ code/ run_step5_robustness_aud it.py - smoke_test.sh, Shell, 21 lines
- src/
vendor/ , Python, 255 linesR12-CROWN/ compare_baselines.py - src/
vendor/ , Python, 191 linesR12-CROWN/ compare_baselines_barrie r.py - src/
vendor/ , Python, 265 linesR12-CROWN/ qrn_analysis.py - src/
vendor/ , Python, 480 linesR12-CROWN/ qrn_core.py - src/
vendor/ , Python, 114 linesR12-CROWN/ qrn_energy.py - src/
vendor/ , Python, 257 linesR12-CROWN/ qrn_viz.py - src/
vendor/ , Python, 155 linesR12-CROWN/ run_all.py - src/
vendor/ , Python, 81 linesR12-CROWN/ validate_checkpoints.py - LICENSE, License, 21 lines
- README.md, Text, 112 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 49 scripts, each with its path and the digest of its content;
- 16 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- zenodo:18379850, at Zenodo; found in “Data availability statement”
- zenodo:18432680, at Zenodo; found in “Data availability statement”
- zenodo:18433186, at Zenodo; found in “Data availability statement”
- zenodo:18697116, at Zenodo; found in “Data availability statement”
Data availability statement
Datasets and supplementary exploratory artifacts are archived on Zenodo: auxiliary evolutionary game-theory dataset (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, pages, dates, 1 author, 6 keywords, 33 references.
Cite
This paper
Dolgikh, O. (2026). Coherent-resonant netting: disorder-enhanced selectivity from transient wave-like dynamics on biological connectomes. Frontiers in computational neuroscience, 20, 1813959. https://
BibTeX
@article{dolgikh2026cohe
author = {Dolgikh, Oleg},
title = {{Coherent-resonant netting: disorder-enhanced selectivity from transient wave-like dynamics on biological connectomes}},
journal = {Frontiers in computational neuroscience},
year = {2026},
month = may,
volume = {20},
pages = {1813959},
publisher = {Frontiers Media SA},
issn = {1662-5188},
doi = {10.3389/
url = {https://
pmid = {42211247},
pmcid = {PMC13212248}
}
RIS
TY - JOUR
AU - Dolgikh, Oleg
TI - Coherent-resonant netting: disorder-enhanced selectivity from transient wave-like dynamics on biological connectomes
T2 - Frontiers in computational neuroscience
J2 - Front Comput Neurosci
PY - 2026
DA - 2026/
VL - 20
SP - 1813959
SN - 1662-5188
PB - Frontiers Media SA
DO - 10.3389/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.3389/
"type": "article-journal",
"title": "Coherent-resonant netting: disorder-enhanced selectivity from transient wave-like dynamics on biological connectomes",
"container-title": "Frontiers in computational neuroscience",
"author": [
{
"family": "Dolgikh",
"given": "Oleg"
}
],
"container-title-short":
"volume": "20",
"page": "1813959",
"DOI": "10.3389/
"PMID": "42211247",
"PMCID": "PMC13212248",
"ISSN": "1662-5188",
"publisher": "Frontiers Media SA",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
13
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1007/s00422-026-01063-3 [code]
- Increased firing rates monotonically expand neuronal coding bandwidth.Journal: Biological cyberneticsIn common: pandas, SciPy, Matplotlib, 1 other tool, 3 references
- [2] doi:10.1038/s41598-026-52140-3 [code]
- Energy-efficient information processing and eligibility-trace plasticity in the Drosophila optic lobe connectome.Journal: Scientific reportsIn common: NetworkX, pandas, SciPy, 2 other tools, 2 references
- [3] doi:10.1073/pnas.2531706123 [code]
- Metabolism-weighted brain connectome reveals synaptic integration and vulnerability to neurodegeneration.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: NetworkX, pandas, SciPy, 2 other tools, 2 references
- [4] doi:10.1038/s41467-026-74357-6 [code]
- Hippocampo-neocortical interaction as compressive retrieval-augmented generation.Journal: Nature communicationsIn common: NetworkX, pandas, SciPy, 2 other tools, 2 references
- [5] doi:10.1038/s42003-026-10646-6 [code]
- Energy paradox in REM sleep: balancing supply and consumption in brain metabolism.Journal: Communications biologyIn common: SciPy, Matplotlib, NumPy, 3 references
- [6] doi:10.1371/journal.pcbi.1014152 [code]
- Synchronization properties in C. elegans: Relating behavioral circuits to structural and functional neuronal connectivity.Journal: PLoS computational biologyIn common: NetworkX, pandas, SciPy, 2 other tools, 1 reference
- [7] doi:10.1038/s41467-026-74466-2 [code]
- Neuromorphic hierarchical modular reservoirs.Journal: Nature communicationsIn common: NetworkX, pandas, SciPy, 2 other tools, 1 reference
- [8] doi:10.1038/s41467-026-75959-w [code]
- Charting higher-order models of brain function beyond pairwise interactions.Journal: Nature communicationsIn common: NetworkX, pandas, SciPy, 2 other tools, 1 reference
- [9] doi:10.1371/journal.pcbi.1014730 [code]
- A unified model of short- and long-term plasticity: Effects on network connectivity and information capacity.Journal: PLoS computational biologyIn common: NetworkX, pandas, SciPy, 2 other tools, 1 reference
- [10] doi:10.1038/s41586-026-10735-w [code]
- Distributed control circuits across a brain-and-cord connectome.Journal: NatureIn common: NetworkX, pandas, SciPy, 2 other tools, 1 reference
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 49 scripts, and 16 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:2b89f51b3cbe091c…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
