Skip to main content

brian2

Brian2 skill for spiking neural network simulation with equation-based neuron models, synapses and plasticity, monitors, runtime and cpp_standalone execution, and multicompartment morphology workflows. Use when working with brian2.NeuronGroup, brian2.Synapses, brian2.SpikeMonitor, brian2.StateMonitor, brian2.PopulationRateMonitor, brian2.PoissonGroup, brian2.TimedArray, brian2.set_device, brian2.SpatialNeuron, or brian2.Morphology; keywords: STDP, event-driven synapses, Poisson input, code generation, standalone C++, morphology.

来源信息

仓库
HughYau/neuroforge-skills
最近来源活动
2026年2月24日 23:10
检测到的 SKILL.md 语言
英语
星标
7
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
100 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
brian2
description
Brian2 skill for spiking neural network simulation with equation-based neuron models, synapses and plasticity, monitors, runtime and cpp_standalone execution, and multicompartment morphology workflows. Use when working with brian2.NeuronGroup, brian2.Synapses, brian2.SpikeMonitor, brian2.StateMonitor, brian2.PopulationRateMonitor, brian2.PoissonGroup, brian2.TimedArray, brian2.set_device, brian2.SpatialNeuron, or brian2.Morphology; keywords: STDP, event-driven synapses, Poisson input, code generation, standalone C++, morphology.
# Brian2 Brian2 is a clock-driven simulator for spiking neural networks with equation-defined models, explicit physical units, and multiple execution backends. ## Version <!-- built against: brian2==2.10.1 --> Built against: `brian2==2.10.1` [UNVERIFIED: inferred from `docs_sphinx/introduction/release_notes.rst` because install was denied] Python: `3.13` > See `assets/version.txt` for environment, install policy, and verification limits. ## Scope This skill focuses on user-facing modeling workflows: `NeuronGroup`, `Synapses`, inputs/stimuli, recording, device selection, and `SpatialNeuron`. Coverage profile: `hybrid` (workflow references + dictionary assets). ## Environment Gate Install policy and environment decision are recorded in `assets/version.txt`. Current build used `install_permission: no`; execution-dependent claims are tagged where relevant. ## Installation ```bash # requires explicit install permission pip install brian2 # optional extras from pyproject.toml pip install "brian2[test,docs]" ``` --- ## Neuron Models and Simulation Loop ```python # tested against brian2==2.10.1 try: from brian2 import NeuronGroup, StateMonitor, ms, mV, run neurons = NeuronGroup( 5, "dv/dt = -v/(10*ms) : volt", threshold="v > -50*mV", reset="v = -70*mV", ) neurons.v = -70 * mV mon = StateMonitor(neurons, "v", record=0) run(5 * ms) print(len(mon.t)) except Exception as e: print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}") ``` See `references/modeling-neurons-and-equations.md` for `NeuronGroup`, `Equations`, state variables, and method-selection caveats. --- ## Synapses and Plasticity ```python # tested against brian2==2.10.1 try: from brian2 import NeuronGroup, Synapses, ms, mV, run pre = NeuronGroup(2, "dv/dt = -v/(10*ms) : volt", threshold="v > -55*mV", reset="v = -70*mV") post = NeuronGroup(2, "dv/dt = -v/(10*ms) : volt") syn = Synapses(pre, post, "w : volt", on_pre="v += w") syn.connect(i=[0, 1], j=[1, 0]) syn.w = "0.5*mV" run(1 * ms) print(int(syn.N)) except Exception as e: print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}") ``` See `references/synapses-and-plasticity.md` for `connect(...)` patterns, event-driven equations, and STDP setup. --- ## Inputs and Time-Dependent Stimuli ```python # tested against brian2==2.10.1 try: import numpy as np from brian2 import NeuronGroup, PoissonGroup, SpikeMonitor, TimedArray, Hz, mV, ms, run stim = TimedArray(np.array([0.0, 1.0, 0.5, 0.0]) * mV, dt=1 * ms) target = NeuronGroup(1, "dv/dt = (stim(t) - v)/(5*ms) : volt") drive = PoissonGroup(5, rates=20 * Hz) mon = SpikeMonitor(drive) run(3 * ms) print(len(mon.t), float(target.v[0] / mV)) except Exception as e: print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}") ``` See `references/inputs-and-stimuli.md` for `PoissonGroup`, `SpikeGeneratorGroup`, `TimedArray`, and `PoissonInput`. --- ## Recording and Rate Analysis ```python # tested against brian2==2.10.1 try: from brian2 import PoissonGroup, PopulationRateMonitor, SpikeMonitor, Hz, ms, run group = PoissonGroup(10, rates=50 * Hz) spikes = SpikeMonitor(group) rates = PopulationRateMonitor(group) run(20 * ms) print(spikes.num_spikes, len(rates.rate)) except Exception as e: print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}") ``` See `references/recording-and-analysis.md` for monitor indexing rules, event-clock sampling, and binned/smoothed rates. --- ## Execution Backends and Devices ```python # tested against brian2==2.10.1 try: from brian2 import get_device, set_device set_device("runtime") print(type(get_device()).__name__) except Exception as e: print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}") ``` See `references/execution-and-devices.md` for `set_device`, `device.build`, `run_args`, and cache-management patterns. --- ## Morphology and SpatialNeuron ```python # tested against brian2==2.10.1 try: from brian2 import Cylinder, Soma, SpatialNeuron, amp, cm, mV, meter, ohm, uF, um morph = Soma(diameter=20 * um) morph.axon = Cylinder(length=50 * um, diameter=1 * um, n=5) eqs = "Im = 0*amp/meter**2 : amp/meter**2" neuron = SpatialNeuron(morphology=morph, model=eqs, Cm=1 * uF / cm**2, Ri=100 * ohm * cm) neuron.v = -65 * mV print(neuron.flat_morphology.n) except Exception as e: print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}") ``` See `references/morphology-and-spatial-neurons.md` for `Soma`/`Section`/`Cylinder` constructors and `SpatialNeuron` constraints. --- ## Verification (Medium+) ```bash PYTHONPATH="H:\Agent\OpenSciHub\brian2" python "H:\Agent\OpenSciHub\.opencode\skills\opensci-skill\scripts\verify-snippets.py" --root "H:\Agent\OpenSciHub\.opencode\skills\brian2" --fail-fast ``` ## Dictionary Assets (Hybrid) Use dictionary assets before source traversal for symbol-level lookup: 1. Query `assets/symbol-index.jsonl` for exact symbol names. 2. Open the matching card in `assets/symbol-cards/`. 3. Follow `source` anchors only when implementation details are required. Primary dictionary entrypoint: `assets/symbol-index.md`. ## Quick Reference | Function / Class | Purpose | |-----------------|---------| | `NeuronGroup(...)` | Define equation-based neuron populations with threshold/reset logic. | | `Synapses(...)` | Define synaptic dynamics and pre/post event code between groups. | | `Synapses.connect(...)` | Materialize connectivity via explicit indices, conditions, or probabilities. | | `PoissonGroup(...)` | Generate stochastic spike trains as an input source. | | `TimedArray(...)` | Inject time-varying signals into model equations. | | `SpikeMonitor(...)` | Record spike times and per-neuron spike counts. | | `StateMonitor(...)` | Record continuous state variables over time or event-clock times. | | `PopulationRateMonitor(...)` | Record population firing rates with binned/smoothed summaries. | | `set_device(...)` | Select runtime or `cpp_standalone` backend before creating objects. | | `SpatialNeuron(...)` | Simulate multicompartment neurons over an explicit morphology tree. | --- ## Module Map | Submodule | Contents | Notes | |-----------|----------|-------| | `brian2.core` | clocks, network scheduler, magic run/store/restore APIs | `core.network` is [LARGE] | | `brian2.groups` | `NeuronGroup`, subgroup views, group variable handling | `groups.group` and `neurongroup` are [LARGE] | | `brian2.synapses` | synapse model parsing, connectivity, pathway execution | `synapses.synapses` is [LARGE] | | `brian2.input` | Poisson, spike-generator, and timed-array input sources | used for feedforward drive | | `brian2.monitors` | spike/event/state/rate recording interfaces | `spikemonitor` is [LARGE] | | `brian2.devices` | runtime device and C++ standalone codegen backend | standalone path is [LARGE] | | `brian2.spatialneuron` | morphology objects and multicompartment simulation | morphology module is [LARGE] | | `brian2.units` | unit system and dimension checks | `allunits` and `fundamentalunits` are [LARGE] | Import style: mixed eager import in `brian2.__init__` (`from brian2.only import *`, NumPy/pylab star imports), with top-level API primarily controlled by `brian2.only.__all__`; no lazy `__getattr__` detected. See `assets/module-map.md` for full inventory and source anchors. --- ## References - `references/modeling-neurons-and-equations.md` - equation syntax, `NeuronGroup` configuration, and integration-method implications. - `references/synapses-and-plasticity.md` - `Synapses` signatures, connectivity patterns, and event-driven plasticity. - `references/inputs-and-stimuli.md` - stochastic and scheduled input APIs (`PoissonGroup`, `SpikeGeneratorGroup`, `TimedArray`, `PoissonInput`). - `references/recording-and-analysis.md` - monitor APIs and retrieval patterns for spikes, states, and rates. - `references/execution-and-devices.md` - runtime vs standalone device control, build workflow, and cache behavior. - `references/morphology-and-spatial-neurons.md` - morphology construction and `SpatialNeuron` modeling details. - `assets/symbol-index.md` - module-level dictionary navigation. - `assets/symbol-index.jsonl` - machine-readable symbol registry. - `assets/symbol-cards/` - per-module symbol cards with signatures and source anchors.
在 GitHub 查看