====================
単位系リファレンス
====================
BMTK/bionetliteでパラメータを指定する際の単位系と、内部で行われる単位変換について説明します。
ユーザーが指定する単位(BMTK/bionetlite)
==========================================
bionetliteでネットワークを構築する際に指定するパラメータの単位です。
これらは `BMTK `_ と同じ単位系です。
シミュレーションパラメータ
--------------------------
.. list-table::
:header-rows: 1
:widths: 25 15 40 20
* - パラメータ
- 単位
- 説明
- 例
* - tstop
- ms
- シミュレーション終了時間
- 3000.0
* - dt
- ms
- タイムステップ
- 0.1
* - v_init
- mV
- 初期膜電位
- -70.0
電流注入パラメータ
------------------
.. list-table::
:header-rows: 1
:widths: 25 15 40 20
* - パラメータ
- 単位
- 説明
- 例
* - amp
- pA
- 電流注入の強度
- 100.0
* - delay
- ms
- 電流注入の開始時刻
- 500.0
* - duration
- ms
- 電流注入の持続時間
- 1000.0
.. note::
BMTKでは電流をpA単位で指定します。詳細は `BMTK Current Clamps `_ を参照してください。
シナプスパラメータ
------------------
.. list-table::
:header-rows: 1
:widths: 25 15 40 20
* - パラメータ
- 単位
- 説明
- 例
* - syn_weight
- μS
- シナプス重み
- 0.001
* - delay
- ms
- シナプス遅延
- 2.0
* - tau_rise (tau1)
- ms
- 立ち上がり時定数
- 0.1
* - tau_decay (tau2)
- ms
- 減衰時定数
- 1.7
* - erev (e)
- mV
- 平衡電位
- 0.0
形態・イオンチャネルファイル
----------------------------
SWCファイルやイオンチャネルJSONファイルは `NEURON `_ の単位系で記述されています。
.. list-table::
:header-rows: 1
:widths: 30 15 55
* - パラメータ
- 単位
- 説明
* - 座標 (x, y, z)
- μm
- SWCファイルの3D座標
* - 半径 (r)
- μm
- SWCファイルの7列目(直径ではなく半径)
* - Cm
- μF/cm²
- 膜容量
* - Ra
- Ω·cm
- 軸索抵抗
* - g_pas (leak)
- S/cm²
- リークコンダクタンス
* - イオンチャネル
- S/cm²
- 各チャネルのコンダクタンス
内部処理での単位変換
====================
参考のため、`NEURON `_ のデフォルト単位系-Neulite間の単位変換処理の一覧を示します。
NEURON列の単位は `NEURON Units Guide `_ に基づくデフォルト単位系です。
.. _NEURON Unit Chart: https://nrn.readthedocs.io/en/latest/guide/units.html
.. _SONATA Developer Guide: https://github.com/AllenInstitute/sonata/blob/master/docs/SONATA_DEVELOPER_GUIDE.md
.. _SWC Spec: http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html
.. _BMTK Current Clamps: https://alleninstitute.github.io/bmtk/current_clamps.html
単位系一覧
----------
.. list-table::
:header-rows: 1
:widths: 16 7 12 8 10 7 18 22
* - カテゴリ
- 変数
- NEURON
- BMTK
- Neulite
- 変換
- 変換箇所
- 備考
* - Time
- t
- ms
- ms
- ms
- なし
- \-
- `NEURON Unit Chart`_
* - Voltage
- v
- mV
- mV
- mV
- なし
- \-
- `NEURON Unit Chart`_
* - Current (distributed)
- i
- mA/cm²
- mA/cm²
- mA/cm²
- あり
- ion.c (×10⁻³)
- `NEURON Unit Chart`_
* - Current (point process)
- i
- nA
- pA
- nA
- あり
- solver.c (×10⁻³)
- `BMTK Current Clamps`_
* - Concentration
- ko, ki
- mM
- mM
- mM
- なし
- \-
- `NEURON Unit Chart`_
* - Specific capacitance
- Cm
- μF/cm²
- μF/cm²
- μF/cm²
- なし
- popl_func.h (面積変換のみ)
- `NEURON Unit Chart`_
* - Length
- L
- μm
- μm
- cm
- あり
- popl_func.h (×10⁻⁴)
- SWC座標はμm (`SWC Spec`_)
* - Diameter
- diam
- μm
- μm
- cm
- あり
- popl_func.h (×10⁻⁴)
- SWC 7列目は半径 (`SWC Spec`_)
* - Conductance (distributed)
- g
- S/cm²
- S/cm²
- mS/cm²
- あり
- popl_func.h (×10³)
- `NEURON Unit Chart`_
* - Conductance (point process)
- g
- μS
- μS
- μS
- なし
- \-
- `NEURON Unit Chart`_
* - Cytoplasmic resistivity
- Ra
- Ω·cm
- Ω·cm
- kΩ·cm
- あり
- popl_func.h (×10⁻³)
- `NEURON Unit Chart`_
* - Resistance
- Ri()
- 10⁶ Ω
- 10⁶ Ω
- 10⁶ Ω
- なし
- カーネル内部で保持
- `NEURON Unit Chart`_
その他のパラメータ
----------------------------------
.. list-table::
:header-rows: 1
:widths: 18 15 15 8 22 22
* - カテゴリ
- NEURON/BMTK
- Neulite
- 変換
- 変換箇所
- 出典
* - DEPTH
- μm
- cm
- あり
- ion_func.h (×10⁻⁴)
- `NMODL Transpiler `_
* - syn_weight
- μS
- mS
- あり
- solver.c (×10⁻³)
- `SONATA Developer Guide`_
BMTK → NEURON での変換
----------------------
BMTKは一部のパラメータを `NEURON `_ 単位系に変換して渡します。
.. list-table::
:header-rows: 1
:widths: 25 20 20 35
* - パラメータ
- BMTK入力
- NEURON内部
- 備考
* - Current (point process)
- pA
- nA
- `BMTK Current Clamps`_
開発者向け情報
==============
変換処理の実装箇所
------------------
**bionetlite (Python)**
bionetliteは単位変換を行わず、Neuliteカーネルが全ての単位変換を担当します。
bionetliteはフォーマット変換(JSON→CSV等)のみを行い、値はそのまま出力します。
* ``convert_ion_channels()``: イオンチャネルJSON → CSV形式変換(値はそのまま)
* ``convert_morphologies()``: SWCファイルの前処理(インデックス変換、軸索修正、DFSソート)
**Neuliteカーネル (C)**
単位変換はNeuliteカーネルで行われます:
* ``popl_func.h``: Length (μm→cm), Diameter (μm→cm), Ra (Ω·cm→kΩ·cm), Conductance (S→mS)
* ``ion_func.h``: DEPTH (定数として0.1μm=0.1e-4cmで定義)
* ``ion.c``: イオン電流計算時の変換 (×10⁻³)
* ``solver.c``: 外部電流i_ext (pA→nA, ×10⁻³), syn_weight (μS→mS, ×10⁻³)
参考リンク
==========
* `NEURON Units Guide `_ - NEURON単位系の公式リファレンス
* `BMTK Current Clamps Documentation `_ - BMTKでの電流単位(pA)の説明
* `SONATA Developer Guide `_ - syn_weight等のSONATAフォーマット仕様
* `SWC File Format Specification `_ - SWCファイルの座標単位(μm)の仕様
* `NMODL Transpiler `_ - DEPTHの単位定義