NetPyNE モデリング仕様 v1.0
仕様の概要
NetPyNE モデリング仕様は、分子スケールから回路スケールまでニューロン ネットワークの生物学的パラメーターを定義するための標準化された宣言言語を提供します。
これらの標準化された仕様は、人間が判読できる、クリーンでコンパクトな、ルールベースの JSON 互換形式を採用しています。この宣言型言語を使用すると、ユーザーは、NEURON での実装に必要な複雑な技術的側面をすべて隠しながら、各生物学的スケールで観察される特性とパターンを正確に記述することができます。たとえば、Python または hoc for ループを使用して潜在的に数百万のセル間接続を作成する代わりに、2 つの母集団間の確率的接続ルールを定義できます。宣言型言語により、すべてのモデル パラメーター (集団、細胞特性、接続性、刺激、分子反応拡散) の構造化された仕様が可能になります。
-
参考文献: Dura-Bernal S、Suter B、Gleeson P、Cantarelli M、Quintana A、Rodriguez F、Kedziora DJ、Chadderdon GL、Kerr CC、Neymotin SA、McDougal R、Hines M、Shepherd GMG、Lytton WW。 (2019) NetPyNE: 脳回路のデータ駆動型マルチスケール モデリングのためのツール。 eLife 2019;8:e44494 - https://elifesciences.org/articles/44494
-
仕様 JSON ベースのスキーマ: https://github.com/suny-downstate-medical-center/netpyne/blob/development/netpyne/metadata/metadata.py
-
スキーマパッケージ経由の仕様検証コード: https://github.com/suny-downstate-medical-center/netpyne/blob/development/netpyne/sim/validator.py
ネットワークパラメータ
クラス NetParams の netParams オブジェクトには、ネットワークを定義するために必要な情報がすべて含まれています。これは、次の順序付けられた辞書で構成されます。
-
cellParams- セルのタイプとそれに関連するパラメータ (セルの形状など) -
popParams- ネットワーク内の人口とそのパラメータ -
synMechParams- シナプス機構とそのパラメータ -
connParams- ネットワーク接続ルールとそれに関連するパラメータ。 -
subConnParams- ネットワークのセルラー接続ルールとそれに関連するパラメーター。 -
stimSourceParams- 刺激源パラメータ。 -
stimTargetParams- 刺激源と標的細胞間のマッピング。 -
rxdParams- 反応拡散 (RxD) コンポーネントとそのパラメーター。
これらの順序付けされた辞書はそれぞれ、直接入力することも、NetParams オブジェクト メソッドを使用して入力することもできます。どちらの方法も同等ですが、オブジェクト メソッドは追加されるパラメーターの構文をチェックします。以下は、popParams 順序付きディクショナリに項目を追加する 2 つの同等の方法です。
from netpyne import specs
netParams = specs.NetParams()
# Method 1: direct
netParams.popParams['Pop1'] = {'cellType': 'PYR', 'numCells': 20}
# Method 2: using object method
netParams.addPopParams(label='Pop1', params={'cellType': 'PYR', 'numCells': 20})
netParams の構成は、フレームワークが内部で実行する標準的なイベント シーケンスと一致しています。
-
cellParamsに基づいてタイプに応じてセルのプロパティを設定します。 -
Networkオブジェクトを作成し、その中にpopParamsに基づくCellオブジェクトとPopulationオブジェクトのセットを追加します -
connParamsおよびsubConnParams(どのシナプス前セルとシナプス後セルが接続ルールの条件に一致するかを確認) に基づいて、synMechParamsのシナプス パラメーターを使用して一連の接続を作成します。 -
stimSourceParamsおよびstimTargetParamsに基づいて細胞に刺激を追加します
さらに、netParams には、次のカスタマイズ可能な単一値属性が含まれています (例: netParams.sizeX = 100)。
-
scale: セル数のスケール係数乗数 (デフォルト: 1)
-
形状: ネットワークの形状: 「直方体」、「円柱」、または「楕円体」 (デフォルト: 「直方体」)
-
sizeX: x 次元 (水平方向の長さ) ネットワーク サイズ (μm 単位) (デフォルト: 100)
-
sizeY: y 次元 (垂直高さまたは皮質深さ) ネットワーク サイズ (μm 単位) (デフォルト: 100)
-
sizeZ: Z 次元 (水平方向の奥行き) ネットワーク サイズ (μm 単位) (デフォルト: 100)
-
rotateCellsRandomly: y 軸 [min,max] ラジアンを中心にセルをランダムに回転します。 [0, 3.0] (デフォルト: False)
-
defaultWeight: デフォルトの接続の重み (デフォルト: 1)
-
defaultDelay: デフォルトの接続遅延 (ミリ秒単位) (デフォルト: 1)
-
propVelocity: um/ms 単位の伝導速度 (例: 500 um/ms = 0.5 m/s) (デフォルト: 500)
-
scaleConnWeight: 接続重みスケール係数 (NetStims を除く) (デフォルト: 1)
-
scaleConnWeightNetStims: NetStims の接続重みスケール係数 (デフォルト: 1)
-
scaleConnWeightModels: 各セル モデルの接続重量スケール係数 (例: {‘HH’: 0.1、’Izhi’: 0.2} (デフォルト: {})
-
popTagsCopiedToCells: 母集団からセルにコピーされるタグのリスト (デフォルト: [‘pop’, ‘cellModel’, ‘cellType’])
netParams dict への他の任意のエントリを追加し、接続パラメーターのカスタム定義関数で使用できます (文字列としての関数 を参照)。
セルの種類
cellParams 順序付き辞書の各項目は、キーと値で構成されます。キーは、このセルの種類を識別するためのラベルです。値は、次のフィールドを含むセルのプロパティを定義するディクショナリで構成されます。
- secs - セルのセクションを含むディクショナリ。各セクションには次のフィールドが含まれます (空のフィールドは省略できます)。
geom:
diam、L、またはRaなどのジオメトリ プロパティを含むディクショナリ。 オプションで、3D 点のリストを含むフィールドpt3dを含めることができます。各点は(x,y,z,diam)形式のタプルとして定義されます。topol: トポロジのプロパティを含むディクショナリ。
parentSec(親セクションのラベル)、parentX(接続を行う親の場所)、およびchildX(現在のセクション -子- 接続を行う場所) が含まれます。mechs: 密度/分散メカニズムの辞書。 キーにはメカニズムの名前が含まれます (例: 「hh」または「pas」)。 値にはメカニズムのプロパティを含む辞書が含まれます (例:
{'g':0.003,'e':-70})。イオン: イオンの辞書。 キーにはイオンの名前 (例: 「na」または「k」) が含まれます。 値には、特定のセクションのイオンのプロパティを含む辞書が含まれます (例:
{'e':-70})。利用可能なプロパティは、'e': 逆転電位、'i': そのセクションのイオンの内部濃度、および'o': そのセクションのイオンの細胞外濃度です。pointps: 点プロセスの辞書 (シナプス機構を除く)。 キーには任意のラベルが含まれます (例: 「Izhi」)。 値にはポイント プロセスのプロパティを含む辞書が含まれます (例: 「Izhi」)。
{'mod':'Izhi2007a','a':0.03,'b':-2,'c':-50,'d':100,'celltype':1})。内部ポイント プロセス変数とは別に、次のプロパティを各ポイント プロセスに指定できます。
mod、NEURON メカニズムの名前。'Izhi2007a'
loc、シナプス機構を配置するセクションの位置。1.0、デフォルト=0.5
vref(オプション)、細胞膜電圧を含む内部メカニズム変数。'V'
synList(オプション)、内部メカニズムのシナプスメカニズムラベルのリスト。 [「AMPA」、「NMDA」、「GABAB」]vinit - (オプション) セクションの初期膜電圧 (mV 単位) (デフォルト: -65)
例:
cellRule['secs']['soma']['vinit']=-72
- spikeGenLoc - (オプション) このセクションが (デフォルトの「soma」の代わりに) スパイクの生成を担当することを示し、スパイクが生成される場所 (セグメント) を提供します。
例:
cellRule['secs']['axon']['spikeGenLoc']=1.0
- 閾値 - (オプション) セルのこのセクションで発生するスパイクを検出するために使用される閾値電圧 (mV 単位)。省略した場合、デフォルトは
netParams.defaultThreshold=10.0例:
cellRule['secs']['soma']['threshold']=5.0
- secLists - (オプション) セクション リストの辞書 (例: {‘all’: [‘soma’, ‘dend’]})
2 つの異なるセル タイプを追加する例:
## PYR_HH cell properties
soma = {'geom': {}, 'mechs': {}} # soma properties
soma['geom'] = {'diam': 18.8, 'L': 18.8, 'Ra': 123.0, 'pt3d': []}
soma['geom']['pt3d'].append((0, 0, 0, 20))
soma['geom']['pt3d'].append((0, 0, 20, 20))
soma['mechs']['hh'] = {'gnabar': 0.12, 'gkbar': 0.036, 'gl': 0.003, 'el': -70}
dend = {'geom': {}, 'topol': {}, 'mechs': {}} # dend properties
dend['geom'] = {'diam': 5.0, 'L': 150.0, 'Ra': 150.0, 'cm': 1}
dend['topol'] = {'parentSec': 'soma', 'parentX': 1.0, 'childX': 0}
dend['mechs']['pas'] = {'g': 0.0000357, 'e': -70}
PYR_HH_dict = {'secs': {'soma': soma, 'dend': dend}}
netParams.cellParams['PYR_HH'] = PYR_HH_dict # add rule dict to list of cell property rules
## PYR_Izhi cell properties
Izhi_dict = {'secs': {'soma': {} }}
Izhi_dict['secs']['soma'] = {'geom': {}, 'pointps':{}} # soma properties
Izhi_dict['secs']['soma']['geom'] = {'diam': 18.8, 'L': 18.8, 'Ra': 123.0}
Izhi_dict['secs']['soma']['pointps']['Izhi'] = {'mod':'Izhi2007a', 'vref':'V', 'a':0.03, 'b':-2, 'c':-50, 'd':100, 'celltype':1}
netParams.cellParams['PYR_Izhi'] = Izhi_dict # add rule to list of cell property rules
注記
上記の例のように、一時的な変数/構造体 (soma や Izhi_dict など) を使用して、最終的な辞書 netParams.cellParams の作成を容易にすることができます。
注記
netParams.cellParams を介してセル パラメータを直接作成または変更できます。 netParams.cellParams['PYR_HH']['secs']['soma']['geom']['L']=16。
こちらも参照
セルのプロパティは外部ファイルからインポートできます。詳細と例については、外部定義セル モデルのインポートを参照してください。
母集団パラメータ
popParams 順序付き辞書の各項目は、キーと値で構成されます。キーは母集団の任意のラベルであり、タグ pop としてすべてのセルに割り当てられ、特定の接続ルールを適用するための条件として使用できます。
値は母集団のパラメータを含む辞書で構成され、次のフィールドが含まれます。
-
cellType - この集団内のすべての細胞に使用される細胞タイプ。 例えば「Pyr」(錐体ニューロン用)または「FS」(高速スパイク介在ニューロン用)
-
numCells、density、または gridSpacing - この集団内の細胞の総数、ニューロン/mm3 単位の密度、または固定グリッド間隔 (3 つのうち 1 つだけが必要です)。 各母集団が占める体積はカスタマイズできます (
xRange、yRange、およびzRangeを参照)。それ以外の場合は、ネットワーク ボリューム全体が使用されます (netParamsで定義:sizeX、sizeY、sizeZ)。
density は、文字列に変数と一般的な Python 算術演算子/関数を指定することで、正規化された位置の関数 (xnorm、ynorm、または znorm) として表現できます。例えば'1e5 * exp(-ynorm/2)'。
gridSpacing はセル間の間隔 (μm) です。セルの総数は、間隔と sizeX、sizeY、sizeZ に基づいて決定されます。例えば10。
-
xRange または xnormRange - x 軸のニューロン位置の範囲 (水平方向の長さ)、指定された 2 要素リスト [min, max]。 um 単位の絶対値の場合は
xRange(例: [100,200])、またはsizeXの小数として 0 から 1 までの正規化された値の場合はxnormRange(例: [0.1,0.2])。 -
yRange または ynormRange - y 軸のニューロン位置の範囲 (垂直高さ = 皮質深さ)、指定された 2 要素リスト [min, max]。 um 単位の絶対値の場合は
yRange(例: [100,200])、またはsizeYの小数として 0 から 1 までの正規化された値の場合はynormRange(例: [0.1,0.2])。注: NEURON オブジェクトの 3D ポイント (pt3d)y座標は、Y 軸を深度座標として正しく使用して表すために、NetPyNE/Pythontags.y値と逆の符号を持ちます。cell.tags.y=500の場合、cell.secs.soma.geom.pt3d[0][1]=-500([0] は最初の pt3d を指し、[1] は y 座標を指します) -
zRange または znormRange - Z 軸 (水平方向の深さ) のニューロン位置の範囲、指定された 2 要素リスト [min, max]。 um 単位の絶対値の場合は
zRange(例: [100,200])、またはsizeZの小数として 0 から 1 までの正規化された値の場合はznormRange(例: [0.1,0.2])。
母集団を作成する例:
netParams.popParams['Sensory'] = {'cellType': 'PYR', 'ynormRange':[0.2, 0.5], 'density': 50000}
クラス netParams の addPopParams(label, params) メソッドを使用して、項目を popParams に追加できます。対話的に作業する場合、追加されたパラメーターの構文をチェックできるという利点があります。
netParams.addPopParams('Sensory', {'cellType': 'PYR', 'ynormRange':[0.2, 0.5], 'density': 50000})
また、スパイク イベントを生成するがセクションを持たない人工細胞の集団、つまり点プロセスを作成することも可能です (例: NEURON オブジェクト: NetStim、VecStim、または IntFire2)。この場合、cellModel フィールドはポイント プロセス メカニズムの名前を指定し、メカニズムのプロパティは追加フィールドとして指定されます。人工セルはより単純であるため、netParams.cellParams 構造体で個別のセル パラメーターを定義する必要がないことに注意してください。たとえば、以下は NetStims (NEURON の人工スパイク ジェネレーター) の母集団を作成するために必要なフィールドです。
-
pop - すべてのセルに割り当てられるこの集団の任意のラベル (例: 「バックグラウンド」)。特定の接続ルールを適用する条件として使用できます。
-
cellModel - ポイント プロセス人工セルの名前 (例:
IntFire2、NetStim、またはVecStim)。 -
numCells - セルの数
-
人工セルのパラメータ - 各ポイントプロセス人工セルに固有 (例:
IntFire2には「taum」、「taus」、「ib」が含まれます)
cellModel が「NetStim」または「VecStim」の場合、次のパラメータが許可されます。
-
間隔 - スパイク間隔(ミリ秒)
-
rate - 発火速度 (Hz) (これは NetStim 間隔プロパティの逆数であることに注意してください)
-
ノイズ - NetStim のノイズの割合 (0 = 決定的; 1 = 完全にランダム)
-
start - 最初のスパイクの時間 (ミリ秒) (デフォルト = 0)
-
数値 - 生成されるスパイクの最大数 (デフォルト = 1e12)
-
シード - ランダマイザーのシード (オプション; デフォルトは
simConfig.seeds['stim']に設定された値) -
spkTimes (「VecStim」のみ) - スパイク時間のリスト (例: [1, 10, 40, 50]、range(1,500,10)、または Python リストを含む変数)
-
パルス (「VecStim」のみ) - スパイクパルスのリスト。各項目には、
start(ms)、end(ms)、rate(Hz)、およびnoise(0 ~ 1) のパルス パラメーターが含まれます。以下の例を参照してください。
点プロセス人工細胞集団の例:
netParams.popParams['artif1'] = {'cellModel': 'IntFire2', 'taum': 100, 'noise': 0.5, 'numCells': 100} # Intfire2
netParams.popParams['artif2'] = {'cellModel': 'NetStim', 'rate': 100, 'noise': 0.5, 'numCells': 100} # NetsStim
# create custom list of spike times
spkTimes = range(0,1000,20) + [138, 155,270]
# create list of pulses (each item is a dict with pulse params)
pulses = [{'start': 10, 'end': 100, 'rate': 200, 'noise': 0.5},
{'start': 400, 'end': 500, 'rate': 1, 'noise': 0.0})]
netParams.popParams['artif3'] = {'cellModel': 'VecStim', 'numCells': 100, 'spkTimes': spkTimes, 'pulses': pulses} # VecStim with spike times
最後に、cellsList 辞書フィールドにセルのリストを含めることによって、個別に定義されたセルで構成される集団を定義できます。セルのリストの各要素は、cellLabel や場所 (x や ynorm など) などのセル プロパティのセットを含む辞書になります。以下に例を示します。
cellsList.append({'cellLabel':'gs15', 'x': 1, 'ynorm': 0.4 , 'z': 2})
cellsList.append({'cellLabel':'gs21', 'x': 2, 'ynorm': 0.5 , 'z': 3})
netParams.popParams['IT_cells'] = {'cellType':'IT', 'cellsList': cellsList} # IT individual cells
注記
VecStim を使用するには、 vecevent.mod ファイル をダウンロードしてコンパイル (nrnivmodl) する必要があります。
シナプス機構パラメータ
シナプス メカニズムのパラメーターを定義するには、synMechParams 順序付き辞書に項目を追加します。 addSynMechParams(label,params) メソッドを使用できます。各 synMechParams 項目はキーと値で構成されます。キーはこのメカニズムの任意のラベルであり、接続ルールで参照するために使用されます。値は、次のフィールドを含むシナプス メカニズム パラメーターの辞書です。
-
mod- NMODL メカニズム名 (例: 「ExpSyn」)。これは MOD ファイルの名前と必ずしも一致しないことに注意してください。 -
メカニズムパラメータ (
tauまたはeなど) - これらは特定の NMODL メカニズムに依存します。 -
selfNetCon(オプション) - 恒常性シナプス (hsyn) などの一部のシナプス メカニズムで必要な、セル電圧とシナプスの間の NetCon パラメーターを含む辞書。例えば'selfNetCon':{'sec':'soma','threshold':-15,'weight':-1,'delay':0}(デフォルトでは、ソースセクションはソーマに設定されています。例:'sec':'soma')
シナプス機構は、接続フェーズ中に必要に応じて細胞に追加されます。各接続ルールは、適切なラベルを参照することによって、どのシナプス メカニズム パラメーターを使用するかを指定します。
以下は、NMDA というラベルが付いた単純な興奮性シナプス機構のシナプス機構パラメーターの例です。Exp2Syn モデルを使用して実装され、立ち上がり時間 (tau1) が 0.1 ミリ秒、減衰時間 (tau2) が 5 ミリ秒、平衡電位が設定されています。 (e) 0mV:
## Synaptic mechanism parameters
netParams.synMechParams['NMDA'] = {'mod': 'Exp2Syn', 'tau1': 0.1, 'tau2': 5.0, 'e': 0} # NMDA synaptic mechanism
接続ルール
接続ルールを使用する理論的根拠は、特定の基準に一致するニューロンのサブセット間に接続を作成できることです。特定の細胞型のシナプス前ニューロン、および特定の集団および/または特定の範囲の位置内のシナプス後ニューロンのみ。
connParams 順序付き辞書の各項目は、キーと値で構成されます。キーは、この接続ルールの参照として使用される任意のラベルです。値には、接続ルールのパラメーターを定義するディクショナリが含まれており、次のフィールドが含まれます。
- preConds - シナプス前細胞の条件セット
シナプス前細胞の属性/タグと必要な値を含む辞書として定義されます。
{'cellType':'PYR'}。
値はリストにすることができます。 {'pop': ['Exc1', 'Exc2']}。位置プロパティの場合、リストの値は最小値と最大値に対応します。 {'ynorm': [0.1, 0.6]}。
-
postConds - シナプス後細胞の条件セット
preConds(上記) と同じ形式。 -
sec (オプション) - シナプス後ニューロンのターゲット セクションの名前 (例:
'soma') 省略した場合、デフォルトで「soma」が存在する場合は「soma」が使用され、存在しない場合はセルセクションリストの最初のセクションが使用されます。
synsPerConn > 1 で、セクションのリストまたはセクションリストが指定されている場合、シナプスは各セクションの長さを考慮して、指定されたセクションに沿って均一に分散されます。
synsPerConn == 1 で、セクションのリストまたはセクションリストが指定されている場合、シナプス (シナプス前セルごとに 1 つ) がリストからランダムに選択されたセクションに配置されます。リストの最初のセクションを常に使用するようにするには、cfg.connRandomSecFromList = False を設定します。
- loc (オプション) - ターゲット シナプス メカニズムの位置 (例:
0.3) 省略した場合、デフォルトは 0.5 になります。
synMechs のリストがある場合は、すべてに対して 1 つの loc を作成するか、または loc のリスト (synMech ごとに 1 つ、たとえば 2 つの synMech の場合: [0.4, 0.7]) を作成できます。
synsPerConn > 1 の場合、すべてに対して 1 つの loc を指定するか、または loc のリスト (シナプスごとに 1 つ、たとえば synsPerConn = 3 の場合) を指定できます。 [0.4, 0.5, 0.7])
synMechs と synsPerConn > 1 の両方のリストがある場合、各 synMech の各シナプスの 2D リストを持つことができます (たとえば、2 つの synMech と synsPerConn = 3 の場合)。 [[0.2, 0.3, 0.5], [0.5, 0.6, 0.7]])
synsPerConn == 1 で、``loc``s のリストが指定されている場合、シナプス (シナプス前セルごとに 1 つ) がリストからランダムに選択された位置に配置されます (ランダムなセクションと位置は連動することに注意してください。つまり、両方に同じランダム インデックスが使用されます)。
- synMech (オプション) - シナプス後ニューロン上のターゲット シナプス メカニズムのラベル (またはラベルのリスト) (例:
'AMPA'または['AMPA','NMDA'])
省略した場合、セルのシナプス機構リストの最初のシナプス機構が使用されます。
リストがある場合は、各 synMech に対して個別の接続が作成されます。また、重み、遅延、位置のリストを提供することもできます。
- synsPerConn (オプション) - セル間接続 (connection) ごとの個々のシナプス接続 (synapses) の数
関数として定義できます (文字列としての関数を参照)。
省略した場合、デフォルトは 1 になります。
各シナプスの重み、遅延、位置、あるいはその両方をリストとして指定することも、単一の値をすべてに使用することもできます。
synsPerConn> 1 で単一セクションを指定すると、locでシナプスの位置をリストとして指定できます。
synsPerConn> 1 の場合、locが単一の値か省略された場合、またはターゲット セクションのリストが指定されている場合、シナプスは各セクションの長さを考慮して、指定されたセクションに沿って均一に分散されます。
- 重量 (オプション) - シナプス接続の強度 (例:
0.01) コンダクタンスの変化に関連しますが、シナプス機構と細胞モデルに応じて意味と規模が異なります。
関数として定義できます (文字列としての関数を参照)。
省略した場合、デフォルトは netParams.defaultWeight = 1 になります。
synMechs のリストがある場合は、すべての重みを 1 つ持つことも、重みのリスト (synMech ごとに 1 つ、たとえば 2 つの synMech の場合: [0.1, 0.01]) を持つこともできます。
synsPerConn > 1 の場合、すべてに対して単一の重みを指定することも、重みのリストを指定することもできます (シナプスごとに 1 つ、たとえば、synsPerConn = 3 の場合: [0.2, 0.3, 0.4])。
synMechs と synsPerConn > 1 の両方のリストがある場合、各 synMech の各シナプスの 2D リストを持つことができます (たとえば、2 つの synMech と synsPerConn = 3 の場合)。 [[0.2, 0.3, 0.4], [0.02, 0.04, 0.03]])
- 遅延 (オプション) - シナプス前スパイクがシナプス後ニューロンに到達するまでの時間 (ミリ秒) 関数として定義できます (文字列としての関数を参照)
省略した場合、デフォルトは netParams.defaultDelay = 1 になります。
synMechs のリストがある場合は、すべてに対して 1 つの遅延を設定することも、遅延のリスト (synMech ごとに 1 つ、たとえば 2 つの synMech の場合: [5, 7]) を設定することもできます。
synsPerConn > 1 の場合、すべてに対して 1 つの重みを使用することも、重みのリスト (シナプスごとに 1 つ、たとえば synsPerConn = 3 の場合) を使用することもできます。 [4, 5, 6])。
synMechs と synsPerConn > 1 の両方のリストがある場合、各 synMech の各シナプスの 2D リストを持つことができます (たとえば、2 つの synMech と synsPerConn = 3 の場合)。 [[4, 6, 5], [9, 10, 11]])。
- しきい値 (非推奨、使用しないでください)
ソース セルのしきい値 (mV 単位) を設定するには、
cellParamsのセル ルールのセクション内でthresholdパラメータを使用するか、デフォルト値を設定します (例:netParams.defaultThreshold=10.0)。
- 確率 (オプション) - 各シナプス前セルと後セル間の接続の確率 (0 ~ 1)
関数として定義できます (文字列としての関数を参照)。
connFuncをprobConnに設定します (内部確率的接続関数)。
convergence、divergence、およびfromListパラメータをオーバーライドします。
- 収束 (オプション) - 各シナプス後セルに接続されているシナプス前セルの数
関数として定義できます (文字列としての関数を参照)。
connFuncをconvConnに設定します (内部コンバージェンス接続機能)。
divergenceおよびfromListパラメータをオーバーライドします。probabilityパラメータが含まれている場合は効果がありません。
- 発散 (オプション) - 各シナプス前セルに接続されているシナプス後セルの数
関数として定義できます (文字列としての関数を参照)。
connFuncをdivConnに設定します (内部分岐接続機能)。
fromListパラメータをオーバーライドします。probabilityまたはconvergenceパラメーターが含まれている場合、効果はありません。
- connList (オプション) - 個々のシナプス前セルとシナプス後セル間の接続の明示的なリスト
各接続は、前集団と後集団のセルの相対 ID で示されます。
[[0,1],[3,1]]は、前セル 0 と後セル 1、前セル 3 と後セル 1 の間の接続を作成します。重み、遅延、および位置は、個々のセル接続ごとにリストとして指定することもできます。これらのリストは、複数の synMech および synsPerConn > 1 と組み合わせると 2D または 3D になります (外側の次元は connList に対応します)。
connFuncをfromListに設定します (明示的リスト接続機能)。
probability、convergence、またはdivergenceパラメータが含まれている場合は効果がありません。
- connFunc (オプション) - 使用する内部接続関数
probability、convergence、divergence、またはconnListパラメーターが含まれる場合、それぞれprobConn、convConn、divConn、またはfromListに自動的に設定されます。それ以外の場合は、デフォルトでfullConn、つまり全対全接続になります。ユーザー定義の接続機能を追加できます。
- shape (オプション) - 指定されたパターンに基づいて、シミュレーション中に接続の重みを動的に変更します。
次のフィールドを含む辞書が含まれています。
'switchOnOff'- 体重のオンとオフを切り替える時間
'pulseType'- 生成するパルスのタイプ。 「平方」または「ガウス」のいずれか
'pulsePeriod'- パルスの周期 (ミリ秒単位)
'pulseWidth'- パルスの幅 (ミリ秒単位)振動や特定の時間にオン/オフする複雑な刺激パターンを生成するために使用できます。
例:
'shape':{'switchOnOff':[200,800],'pulseType':'square','pulsePeriod':100,'pulseWidth':50}
- 可塑性 (オプション) - この接続に使用する可塑性メカニズム
2 つのフィールドが必要です。塑性メカニズムの名前を指定する
mechと、メカニズムのパラメーターを含む辞書を含むparamsです。例:
{'mech':'STDP','params':{'hebbwt':0.01,'antiwt':-0.01,'wmax':50,'RLon':1'tauhebb':10}}
接続ルールの例を次に示します。
## Cell connectivity rules
netParams.connParams['S->M'] = { # S -> M
'preConds': {'pop': 'S'},
'postConds': {'pop': 'M'},
'sec': 'dend', # target postsyn section
'synMech': 'AMPA', # target synaptic mechanism
'weight': 0.01, # synaptic weight
'delay': 5, # transmission delay (ms)
'probability': 0.5} # probability of connection
netParams.connParams['bg->all'] = { # background -> S,M in ynorm range
'preConds': {'pop': 'background'},
'postConds': {'cellType': ['S','M'],
'ynorm': [0.1, 0.6]},
'synReceptor': 'AMPA', # target synaptic mechanism
'weight': 0.01, # synaptic weight
'delay': 5} # transmission delay (ms)
netParams.connParams['yrange->HH'] = { # cells with y in range 100 to 600 -> HH cells
'preConds': {'y': [100, 600]},
'postConds': {'cellType': 'HH'},
'synMech': ['AMPA', 'NMDA'], # target synaptic mechanisms
'synsPerConn': 3, # number of synapses per cell connection (per synMech, ie. total syns = 2 x 3)
'weight': 0.02, # single weight for all synapses
'delay': [5, 10], # different delays for each of 3 synapses per synMech
'loc': [[0.1, 0.5, 0.7], [0.3, 0.4, 0.5]]} # different locations for each of the 6 synapses
文字列としての機能
一部のパラメーター (weight、delay、probability、convergence、および divergence) は、関数を含む文字列を使用して指定できます。文字列は NetPyNE によって内部的に解釈され、適切な lambda 関数 に変換されます。この文字列には次の要素が含まれる場合があります。
-
数値、例: 「3.56」
-
すべての Python 数学演算子:
+、-、*、/、%、**(指数) など。 -
Python 数学関数:
sin、cos、tan、exp、sqrt、mean、inf(詳細については、https://docs.python.org/2/library/math.html を参照) -
NEURON h.Random() メソッド:
binomial、discunif、erlang、geometric、hypergeo、lognormal、negexp、normal、poisson、uniform、weibull(https://www.neuron.yale.edu/neuron/static/py_doc/programming/math/random.html を参照) -
セル位置変数:
pre_x、pre_y、pre_z: シナプス前細胞の x、y、または z の位置。
pre_ynorm、pre_ynorm、pre_znorm: 正規化されたシナプス前細胞の x、y、または z の位置。
post_x、post_y、post_z: シナプス後細胞の x、y、または z の位置。
post_xnorm、post_ynorm、post_znorm: 正規化されたシナプス後セルの x、y、または z の位置。
dist_x、dist_y、dist_z: シナプス前細胞とシナプス後細胞の x、y、または z 位置間の絶対ユークリッド距離。
dist_xnorm、dist_ynorm、dist_znorm: 正規化されたシナプス前細胞とシナプス後細胞の x、y、または z 位置間の絶対ユークリッド距離。
dist_2D、dist_3D: シナプス前細胞とシナプス後細胞間の絶対ユークリッド 2D (x および z) または 3D (x、y および z) 距離。
dist_norm2D、dist_norm3D: 正規化されたシナプス前細胞とシナプス後細胞間の絶対ユークリッド 2D (x および z) または 3D (x、y および z) 距離。
netParamsディクショナリで定義された単一値の数値ネットワーク パラメーター。既存のものをカスタマイズしたり、新たに任意のものを追加したりできます。デフォルトでは、次のパラメータが使用可能です。
sizeX、sizeY、sizeZ: ネットワーク サイズ (μm) (デフォルト: 100)
defaultWeight: デフォルトの接続重み (デフォルト: 1)
defaultDelay: デフォルトの接続遅延 (ミリ秒単位) (デフォルト: 1)
propVelocity: 伝導速度 (um/ms) (デフォルト: 500)
文字列ベースの関数は、NetPyNE 接続ルールに優れた柔軟性と機能を追加します。これらにより、ユーザーは、皮質深さに依存する接続確率や距離に依存する接続重みなど、さまざまな接続機能を定義できます。以下にいくつかの具体的な例を示します。
- 収束 (シナプス後細胞をターゲットとするシナプス前細胞の数) は 1 ~ 15 の間で均一に分布します。
netParams.connParams[…] = { ‘収束’: ‘uniform(1, 15)’,
…
- 接続遅延を最小値 0.2 に平均 13.0、分散 1.4 のガウス分布値を加えた値に設定します。
netParams.connParams[…] = { ‘遅延’: ‘0.2 + 通常(13.0, 1.4)’,
…
- 上記と同じですが、
netParams辞書で定義された変数を使用します。
netParams[‘遅延最小’] = 0.2 netParams[‘遅延平均’] = 13.0 netParams[‘遅延変数’] = 1.4
…
netParams.connParams[…] = { ‘遅延’: ‘遅延最小値 + 通常(遅延平均, 遅延変数)’,
…
- 接続遅延を
defaultDelayの最小値に伝播速度に基づく 3D 距離依存の遅延を加えたものに設定 (propVelocity):
netParams.connParams[…] = { ‘遅延’: ‘defaultDelay + dist_3D/propVelocity’,
…
- 接続の確率はシナプス後ニューロンの皮質深さに依存します:
netParams.connParams[…] = { ‘確率’: ‘0.1 + 0.2*post_y’,
…
- netParams の属性として定義された長さ定数 (
lengthConst) を使用して、2D 距離の関数として指数関数的に減衰する接続の確率:
netParams.lengthConst = 200
…
netParams.connParams[…] = { ‘確率’: ‘exp(-dist_2D/lengthConst)’,
…
細胞内接続ルール - シナプスの再分配
connParams 順序付き辞書を介して接続が定義されると、樹状ツリーに沿った特定のプロファイルに従ってシナプスを再分布することが必要になる場合があります。この目的のために、subConnParams 順序付き辞書は、この再配布を管理するルールとパラメータを設定します。このディクショナリ内の各項目は、キーと値で構成されます。キーは、この再配布ルールの参照として使用されるラベルです。値は、このプロセスのパラメータを設定する辞書であり、次のフィールドが含まれます。
- preConds / postConds - シナプス前セルとシナプス後セルの条件セット
connParams仕様と同様、これらのフィールドは、シナプス前側とシナプス後側で特定の条件を満たす、すでに確立されている接続を選択するための属性/タグを提供します。これらは、適切な属性/タグと必要な値を含む辞書として定義されます。 {‘cellType’: ‘PYR’}、{‘pop’: [‘Exc1’, ‘Exc2’]}、{‘ynorm’: [0.1, 0.6]}。
- groupSynMechs (オプション) – シナプスを再分配するときにグループ化されたシナプス メカニズムのリスト
省略した場合、すべての接続のシナプス後の位置 (preConds と postConds を満たす) は、指定されたプロファイル (以下で定義) を使用して独立して再分配されます。リストが提供される場合、共通接続のシナプス (各メカニズムの同じシナプス前およびシナプス後ニューロン) が同じ場所に再配置されます。たとえば、[‘AMPA’,’NMDA’]。
- sec (オプション) – 再分散シナプスを許可するセクションのリスト
省略した場合、シナプスの再分配に使用されるセクションは体細胞、または存在しない場合はシナプス後細胞の最初に利用可能なセクションです。たとえば、[‘Adend1’,’Adend2’, ‘Adend3’,’Bdend’] のようになります。
- 密度 - 再配布のタイプ。事前定義されたルールが多数あります。
uniform- 条件を満たす各接続は、長さに応じて重み付けされ、指定されたセクションに沿って均一に再配分されます。さまざまなオプションを持つ辞書:
type- シナプス密度マップのタイプ。利用可能なオプション: 1Dmap または 2Dmap。さらに、以下を含める必要があります。
gridY– y 座標 (深さ) の位置のリスト
gridX(2Dmap のみ) - x 座標 (または z) の位置のリスト。
fixedSomaY(オプション) - ソーマの絶対位置 y 座標。gridY をシフトするために使用されます (絶対座標でも提供されます)。
gridValues– (gridX および) GridY によって定義された座標の (相対) シナプス密度を表す 1 次元または 2 次元のリスト。たとえば、
netParams.subConnParams[…] = {‘type’:’1Dmap’,’gridY’: [0,-200,-400,-600,-800], ‘fixedSomaY’:-700,’gridValues’:[0,0.2,0.7,1.0,0]}。
一方、この選択のためには、シナプス後細胞が 3D 形態を持つ必要があります。単純なセクションの場合、
netParams.defineCellShapes=Trueを設定することにより、これを自動的に生成できます (Y 軸に沿った円柱が上向き)。
distance- シナプスは参照から指定された距離 (許可されたセクション内) に再配置されました。さらに、次のものが含まれる場合があります。
ref_sec(オプション) – 文字列距離を計算する基準となるセクション。省略した場合、距離の参照に使用されるセクションはソーマ、またはソーマが存在しない場合は「som」で始まるもの、それ以外の場合はシナプス後セルで最初に使用可能なセクションになります。
ref_seg(オプション) - 数値距離の参照に使用されるセクション内のセグメント。省略した場合はデフォルト値(0.5)が使用されます。
target_distance(オプション) - シナプスが再割り当てされるリファレンスからのターゲット距離省略した場合、この値は 0 に設定されます。選択された場所は、許可されたセクションの間で、このターゲットに最も近い場所になります。
coord(オプション) - 距離の計算に使用される座標系。省略した場合 (または「topol」に設定した場合)、距離は樹状木に沿って計算されます。あるいは、ユークリッド空間内の距離 (デカルト座標系における基準からターゲット セグメントまでの距離) を計算するために「デカルト」を使用することもできます。この場合、シナプス後細胞は 3D 形態を持つ必要があります (またはnetParams.defineCellShapes=Trueを設定)。たとえば、
netParams.subConnParams[…] = {‘type’:’ distance’,’ref_sec’: ‘soma’, ‘ref_seg’: 1,’target_ distance’: 500}。
</div>
刺激パラメータ
2 つのデータ構造を使用して細胞刺激パラメータを指定します。stimSourceParams は刺激源のパラメータを定義します。 stimTargetParams は、どの細胞にどの刺激源を適用するかを指定します (刺激源のセルへのマッピング)。
stimSourceParams 順序付き辞書の各項目はキーと値で構成されます。ここで、キーはこの刺激源を参照するための任意のラベル (例: 「electrode_current」)、値はソース パラメータの辞書です。
- タイプ - 刺激装置として使用されるポイントプロセス。許可される値:
'IClamp'、'VClamp'、'SEClamp'、'NetStim'、および'AlphaSynapse'。NetStims は、この方法を使用するか、「cellModel」: 「NetStim」の母集団を作成して適切な接続を追加することによって追加できることに注意してください。
- stim params (オプション) - これらはスティミュレーターのタイプによって異なります (たとえば、
'IClamp'の場合は、'del'、'dur'、および'amp'になります)関数として定義できます (文字列としての関数 を参照)。刺激の場合は、シナプス後細胞のパラメーターを使用することのみが意味があることに注意してください (例:
'post_ynorm')。
stimTargetParams の各項目は、ネットワーク内のセルのサブセットに刺激源をマッピングする方法を指定します。キーはこのマッピングの任意のラベルであり、値は次のパラメータを含む辞書です。
ソース - 刺激ソースのラベル (例:
'electrode_current')。条件 - スティムが適用されるセルの条件を含む辞書。 選択したセルのサブセット内の相対セル インデックスを含むフィールド
'cellList'を含めることができます (例:'conds':{'cellType':'PYR','y':[100,200],'cellList':[1,2,3]})sec (オプション) - ターゲットセクション (デフォルト:
'soma')loc (オプション) - ターゲットの場所 (デフォルト: 0.5) 関数として定義可能 (文字列としての関数を参照)
synMech (オプション; NetStims のみ) - NetStim を接続するシナプス メカニズムのラベル
重み (オプション; NetStims のみ) - NetStim とセル間の接続の重み 関数として定義可能 (文字列としての関数を参照)
遅延 (オプション; NetStims のみ) - NetStim とセル間の接続の遅延 (デフォルト: 1) 関数として定義可能 (文字列としての関数を参照)
synsPerConn (オプション; NetStims のみ) - NetStim とセル間の接続のシナプスの数 (デフォルト: 1) 関数として定義可能 (文字列としての関数を参照)
以下のコードは、さまざまなタイプの刺激を作成し、それらをセルのさまざまなサブセットにマッピングする方法の例を示しています。
# Stimulation parameters
## Stimulation sources parameters
netParams.stimSourceParams['Input_1'] = {'type': 'IClamp', 'del': 10, 'dur': 800, 'amp': 'uniform(0.05, 0.5)'}
netParams.stimSourceParams['Input_2'] = {'type': 'VClamp', 'dur': [0, 1, 1], 'amp':[1, 1, 1],'gain': 1, 'rstim': 0, 'tau1': 1, 'tau2': 1, 'i': 1}
netParams.stimSourceParams(['Input_3'] = {'type': 'AlphaSynapse', 'onset': 'uniform(1, 500)', 'tau': 5, 'gmax': 'post_ynorm', 'e': 0}
netParams.stimSourceParams['Input_4'] = {'type': 'NetStim', 'interval': 'uniform(20, 100)', 'number': 1000, 'start': 5, 'noise': 0.1}
## Stimulation mapping parameters
netParams.stimTargetParams['Input1->PYR'] = {
'source': 'Input_1',
'sec': 'soma',
'loc': 0.5,
'conds': {'pop':'PYR', 'cellList': range(8)}}
netParams.stimTargetParams['Input3->Basket'] = {
'source': 'Input_3',
'sec': 'soma',
'loc': 0.5,
'conds': {'cellType': 'Basket'}}
netParams.stimTargetParams['Input4->PYR3'] = {
'source': 'Input_4',
'sec': 'soma',
'loc': 0.5,
'weight': '0.1 + normal(0.2, 0.05)',
'delay': 1,
'conds': {'pop': 'PYR3', 'cellList': [0, 1, 2, 5, 10, 14, 15]}}
反応拡散 (RxD) パラメーター
rxdParams 順序付き辞書を使用して、さまざまな RxD コンポーネントを定義できます。
- 領域 - RxD 領域の辞書 (「細胞外」領域の定義にも使用できます)
このコンポーネントは必須であり、反応が起こる場所を定義するために必要です。
rxdParams['regions']の各項目は、キーが領域の名前 (さらなる定義で使用される) を指定し、値が次のフィールドを含む辞書である。
cells: 種、反応などを指定する必要がある細胞内ドメインの定義に関連する細胞のリスト。このリストには、セル gid (例:[1]または[0,3])、集団ラベル (例:['S']または['all'])、または混合 (例:[['S',[0,2]]]または[('S',[0,2])])。
secs: 上記のセルに含めるセクションのリスト (有効にするためには、セルの「秒」内にある必要があります)。たとえば、[‘soma’,’Bdend’] などです。
cellsとsecsは両方とも、(細胞内) RxD が関連コンポーネントである NEURON セクションを指定するために使用されます。
nrn_region: 領域が細胞の細胞内/細胞質ドメイン (膜貫通電圧の計算対象) に対応するかどうかを定義するオプション。利用可能なオプションは次のとおりです: 「i」 (細胞膜のすぐ内側)、「o」 (血漿のすぐ外側)、または None (上記のどれでもない、たとえば細胞内小器官)。
geometry: このエントリは、領域に関連付けられたジオメトリを定義します。 NEURON のさまざまなオプションに応じて、文字列 (「inside」または「membrane」) または 2 つのエントリを持つ辞書のいずれかになります。ジオメトリの種類を示す「class」 (「DistributedBoundary」、「Fractional Volume」、「FixedCrossSection」、「FixedPerimeter」、「ScalableBorder」、「Shell」) と、構造化された定義に必要な特定の引数を含む「args」です。辞書で。たとえば、netParams.rxdParams[‘regions’] = {‘membrane_in’:{‘cells’: ‘all’, ‘secs’: ‘all’, ‘geometry’: {‘class’: ‘ScalableBorder’, ‘args’: {‘scale’: 1, ‘on_cell_surface’: False}}}}。
dimension: これは整数 (1 または 3) で、シミュレーションが 1D か 3D かを示します。
dx: 離散化を指定する float (または int)。
extracellular: 領域が細胞外空間を表すかどうかを示すブール オプション (指定されていない場合はFalse)。Trueの場合、以前のすべての extries を指定する必要はありません。代わりに、rxdParams['extracellular'](次を参照) に対応するエントリを考慮する必要がありますが、これは辞書階層の同じレベルにあります。たとえば、rxdParams['regions']={'ext':{'extracellular':True,'xlo':-100,...}}のようになります。例、
netParams.rxdParams[‘regions’] = {‘cyt’:{‘cells’: [‘all’], ‘secs’: [‘soma’,’Bdend’], ‘nrn_region’: ‘i’}}
- 細胞外 - RxD 細胞外領域を指定するために必要なパラメータを含む辞書。
xlo、ylo、zlo: 細胞外ドメインを指定するボックスの左下奥の隅を示す値。
xhi、yhi、zhi: 細胞外ドメインを指定するボックスの右上隅を示す値。
dx: 離散化を指定する値 (int、float)。この場合、細胞外領域は、正方形のボクセル以外が必要な場合、3D タプルになる可能性があります。前のエントリは必須です。次の値はオプションです (デフォルト値が考慮されます。NEURON を参照)。
volume_fraction: 拡散に利用可能なスペースを示す値。
tortuosity: 拡散する直進経路がどの程度制限されているかを示す値。たとえば、
netParams.rxdParams[‘extracular’] = {‘xlo’:-100, ‘ylo’:-100, ‘zlo’:-100, ‘xhi’:100, ‘yhi’:100, ‘zhi’:100, ‘dx’:(0.2,0.2,0.4), ‘volume_fraction’:0.2, 「ねじれ度」: 1.6}。
- 種 - このコンポーネントも必須であり、関連する種とそれらが関与するドメインを指定するためのすべての定義を含む辞書に対応します。キーは種の名前/ラベルで、値は次のエントリを含む辞書です。
regions: 種が存在する地域のリスト (rxdParams['regions']にリストされている)。単一の地域の場合は、リストせずに指定することもできます。たとえば、'cyt'または['cyt','er']です。
d: 種の拡散係数。
charge: 種の署名済み請求 (存在する場合)。
initial: 濃度フィールドの初期状態 (mM 単位)。これは、その定義ドメイン全体に対する単一の値、または文字列ベースの関数であり、変数は (RxD のフレームワーク内の) ノード プロパティです。たとえば、'1if(0.4<node.x<0.6)else0'。
ecs_boundary_conditions: 細胞外領域が定義されている場合は、境界条件を指定する必要があります。オプションは、ゼロ磁束条件 (ノイマン型) または境界での濃度を示す値 (ディリクレ) のNone(デフォルト) です。
atolscale: この特定の種の濃度の可変ステップ積分における絶対許容誤差のスケール係数を示す数値 (デフォルト = 1)。
name: この種にラベルを付ける文字列。この名前は NEURON 範囲変数と同じである必要があるため、RxD が hoc モデルと種を共有する場合に重要です。例、
netParams.rxdParams[‘species’] = {‘ca’:{‘regions’: ‘cyt’, ‘d’: 0.25, ‘charge’: 2, ‘name’: ‘ca’, ‘initial’: ‘1 if node.sec in [‘Bdend’] else 0’}}
- states - シミュレーション中に反応以外を通じて変化する状態変数を宣言する辞書。キーはこの変数に割り当てられた名前で、値は次のエントリを含む辞書です。
regions: 状態変数が関連する (つまり、そこで展開される) 領域のリスト。単一の地域の場合は、リストせずに指定することもできます。
initial: この変数の初期状態。ドメイン全体 (この変数が指定されている場所) で有効な単一値、または独立変数としてノード プロパティを持つ文字列ベースの関数のいずれか。
name: この変数を内部的にラベル付けする文字列。例、
netParams.rxdParams[‘states’] = {‘mgate’:{‘regions’: ‘cyt’, ‘initial’: 0.05, ‘name’: ‘mgate’}}
- 反応 - 分析中の反応、誰がどこでしたかを指定する辞書。キーは反応にラベルを付け、値は次のエントリを含む辞書です。
reactant: 化学反応の左側を、種と適切な化学量論とともに宣言する文字列。たとえば、ca+2*clのようにします。ここで、「ca」と「cl」は「種」エントリーであり、反応が起こる地域で利用可能です (次を参照)。
product: 化学反応の右側についても同様です。たとえば、cacl2の場合、「cacl2」は適切に定義された種です。
rate_f: 上で定義したスキームの順反応の速度。これは、数値または文字列ベースの関数のいずれかになります (種などに応じて、たとえば、ヒル方程式を実装するため)。
rate_b: 上記と同じ、逆方向の反応の場合。このエントリはオプションです。
regions: このエントリは、領域のリスト内でのみ反応が進行するように制限するために使用されます。単一の地域の場合は、リストせずに指定することもできます。指定しない場合、反応はすべての (妥当な) 領域で進行します。
custom_dynamics: このブール値エントリは、素反応に対する質量作用の法則が適用されるかどうかを指定します。 「True」の場合、各種の濃度のダイナミクスは質量作用スキームを満たします。例、
netParams.rxdParams[‘reactions’] = {‘リン酸化’:{‘反応剤’: ‘E’, ‘product’: ‘EP’, ‘rate_f’: ‘kmax1 * E/ (k1 + E)’, ‘rate_b’: ‘kmax2 * EP/ (k2 + EP)’,’custom_dynamics’: True}}
- multicompartmentReactions - 異なる領域に属する種との反応を指定する辞書。前のケースと同様に、キーは反応にラベルを付け、値は以前とまったく同じエントリとさらに 2 つの (オプションの) エントリを含む辞書になります。
membrane: ある領域から別の領域へのイオンの通過に関与する領域 (膜または境界と互換性のある幾何学的形状を持つ)。
membrane_flux: このブール値のエントリは、反応によって膜電位に影響を与える細胞膜を横切る電流が生成されるかどうかを示します。
。
注: 「反応物」または「生成物」のエントリに表示される種は、反応スキーム内でそれらが取得された領域とともに指定する必要があることを考慮してください。たとえば、'ca[cyt]' などです。
- rates - 選択した種または状態のダイナミクスを制御するレートを指定する辞書。キーは動的スキームにラベルを付け、値は次のエントリを含む辞書です。
species: どの種または状態が考慮されているかを示す文字列。
rate: 種/状態の時間的進化を支配する力学方程式における速度の値。
regions: このエントリは、ダイナミクスが領域のリスト内でのみ進行するように制約するために使用されます。単一の地域の場合は、リストせずに指定することもできます。
membrane_flux: 前と同様、電流を考慮するかどうかを指定するブール値エントリ。 「True」の場合、「region」エントリは膜状のジオメトリを持つ固有の領域に対応する必要があります。例、
netParams.rxdParams[‘rates’] = {‘h_evol’:{‘species’: h_gate, ‘rate’: ‘(1. / (1 + 1000. * ca[cyt] / (0.3)) - h_gate) / tau’}}
各ディクショナリのパラメータは、RxD パッケージで説明されているものと同じ構造に従います: https://www.neuron.yale.edu/neuron/static/docs/rxd/index.html
使用例を参照してください: RxD バッファリングの例 および RxD ネットワークの例。
