設定
概要
bionetliteは、BMTKのJSON形式の設定ファイル(config.json)を読み込み、Neuliteカーネル用の設定ヘッダファイル(config.h)を自動生成します。
設定ファイルの役割
BMTKのconfig.jsonファイルには、以下の情報が含まれます:
シミュレーション実行パラメータ(時間刻み幅、シミュレーション時間など)
ネットワークファイルのパス
入力設定(電流注入など)
コンポーネントディレクトリのパス
bionetliteは、このconfig.jsonからNeuliteカーネルに必要なパラメータを抽出し、C言語のヘッダファイル(config.h)として出力します。
config.jsonの構造
基本的な実行設定
{
"run": {
"tstop": 2000.0,
"dt": 0.1,
"spike_threshold": -15.0
}
}
tstop: シミュレーション時間(ms)(デフォルト: 1000.0)dt: 時間刻み幅(ms)(デフォルト: 0.1)spike_threshold: スパイク検出閾値(mV)(デフォルト: -15.0)
入力設定(電流注入)
{
"inputs": {
"current_clamp": {
"input_type": "current_clamp",
"module": "IClamp",
"node_set": "all",
"amp": 0.120,
"delay": 500.0,
"duration": 1000.0
}
}
}
amp: 電流注入の振幅(nA)(デフォルト: 0.1)delay: 電流注入開始時刻(ms)(デフォルト: 500.0)duration: 電流注入の持続時間(ms)(デフォルト: 500.0)
注釈
bionetliteは input_type が current_clamp または module が IClamp の入力を自動的に検出します。
コンポーネント設定
{
"components": {
"morphologies_dir": "$COMPONENT_DIR/morphologies",
"biophysical_neuron_models_dir": "$COMPONENT_DIR/biophysical_neuron_models",
"synaptic_models_dir": "$COMPONENT_DIR/synaptic_models"
}
}
morphologies_dir: SWCファイルが格納されているディレクトリbiophysical_neuron_models_dir: イオンチャネルJSONファイルが格納されているディレクトリsynaptic_models_dir: シナプスモデルJSONファイルが格納されているディレクトリ
config.hの自動生成
bionetliteの使用方法
bionetliteは、ネットワーク構築時に自動的にconfig.hを生成します:
from bionetlite import NeuliteBuilder as NetworkBuilder
# Auto-generate config.h from config.json
net = NetworkBuilder('mcortex')
net.add_nodes(...)
net.build()
net.save_nodes(output_dir='network')
生成されるconfig.h
bionetliteは、config.jsonから以下のようなconfig.hを生成します:
// Automatically generated by bionetlite
#pragma once
#undef DEBUG
// Simulation parameters
#define TSTOP ( 2000.0 )
#define DT ( 0.1 )
#define INV_DT ( ( int ) ( 1.0 / ( DT ) ) )
// Neuron parameters
#define SPIKE_THRESHOLD ( -15.0 )
#define ALLACTIVE ( 0 ) // Set to 1 for allactive models
// Current injection parameters
#define I_AMP ( 0.12 )
#define I_DELAY ( 500.0 )
#define I_DURATION ( 1000.0 )
各定義の意味:
TSTOP: シミュレーション時間(ms)DT: 時間刻み幅(ms)INV_DT: 1ミリ秒あたりのステップ数(int型)SPIKE_THRESHOLD: スパイク検出閾値(mV)ALLACTIVE: allactiveモデルの使用フラグ(0 or 1)I_AMP: 電流注入の振幅(nA)I_DELAY: 電流注入開始時刻(ms)I_DURATION: 電流注入の持続時間(ms)
出力場所
config.hは以下の場所に生成されます:
neulite/ # or {base_dir}_nl/
└── kernel/
└── config.h
Neuliteカーネルのビルド時に、このconfig.hが自動的に使用されます。
高度な使用方法
simulation_configパラメータの使用
config.jsonを使用せず、Pythonコード内で直接設定を指定することもできます:
from bionetlite import NeuliteBuilder as NetworkBuilder
from bmtk.utils.sonata.config import SonataConfig
# Create SonataConfig object
config = SonataConfig.from_dict({
'run': {
'tstop': 3000.0,
'dt': 0.05,
'spike_threshold': -20.0
},
'inputs': {
'current_clamp': {
'input_type': 'current_clamp',
'amp': 0.15,
'delay': 1000.0,
'duration': 2000.0
}
}
})
# Pass SonataConfig via simulation_config parameter
net = NetworkBuilder('mcortex', simulation_config=config)
net.add_nodes(...)
net.build()
net.save_nodes(output_dir='network')
config.h生成の無効化
config.hの自動生成を無効にする場合:
# Disable by setting generate_config_h=False
net = NetworkBuilder('mcortex', generate_config_h=False)
この場合、既存のconfig.hファイルを使用するか、手動でconfig.hを作成する必要があります。
既存のBMTK configとの互換性
bionetliteは、既存のBMTKのconfig.json形式と完全に互換性があります。BMTKで使用していたconfig.jsonをそのまま使用できます。
ただし、以下の制限事項に注意してください:
delay値: Neuliteはdelay値を整数(int型)として扱います。config.jsonでは小数も指定できますが、bionetliteが内部で四捨五入して整数に変換します。
入力タイプ: 現在、
current_clamp(IClamp) 形式の入力のみサポートしています。
次のステップ
基本的な使い方 - 基本的な使用方法
ファイル形式 - 生成されるファイルの詳細
仕様と制限事項 - 制限事項の詳細
Neuliteカーネルのビルド - Neuliteカーネルのビルド方法