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 の言語
英語
スター
6
フォーク
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で見る