============================ bionetliteのセットアップ ============================ このページでは、ネットワーク構築用のPythonパッケージである **bionetlite** のセットアップ手順を説明します。 前提条件 ======== 以下のソフトウェアが必要です: * Python 3.7以上 セットアップ手順 ================ ステップ1: 仮想環境の作成(推奨) ---------------------------------- Python仮想環境の作成を推奨します: .. code-block:: bash # Create virtual environment python -m venv neulite_env # Activate virtual environment (Linux/Mac) source neulite_env/bin/activate ステップ2: BMTKとNEURONのインストール -------------------------------------- bionetliteは`Brain Modeling Toolkit (BMTK) `__と `NEURON `_ に依存しています。 **BMTKのインストール:** .. code-block:: bash pip install bmtk **NEURONのインストール:** NEURON(生物物理学的ニューロンシミュレータ)をインストールします: .. code-block:: bash pip install neuron .. note:: BMTK、NEURONについては公式サイトを参照してください:`BMTK `__ / `NEURON `__ ステップ3: 必要なパッケージのインストール ------------------------------------------ **scikit-learnのインストール:** bionetliteは軸索方向推定にPCA(主成分分析)を使用するため、scikit-learnが必要です: .. code-block:: bash pip install scikit-learn ステップ4: neuliteリポジトリのクローン -------------------------------------- neuliteリポジトリをクローンします: .. code-block:: bash git clone https://github.com/neulite/neulite.git リポジトリには以下が含まれています: * ``bionetlite/`` - bionetliteモジュール * ``kernel/`` - Neuliteカーネル(デフォルト) * ``flavors/`` - カーネルのバリエーション ステップ5: bionetliteの配置 ---------------------------- クローンしたリポジトリから ``bionetlite.py`` をネットワーク構築コードと同じディレクトリに配置します: .. code-block:: bash cp neulite/bionetlite/bionetlite.py /path/to/your/network/code/ **ディレクトリ構成:** ``bionetlite.py`` をネットワーク構築スクリプトと同じ階層に配置します: .. code-block:: text your_project/ ├── bionetlite.py # Copy here ├── build_network.py # Your network construction script └── config.json # Configuration file (if needed) この配置により、 ``build_network.py`` 内で以下のようにimportできます: .. code-block:: python # build_network.py from bionetlite import NeuliteBuilder as NetworkBuilder net = NetworkBuilder('my_network') net.add_nodes(...) net.build() net.save_nodes(output_dir='network') ステップ6: 動作確認 -------------------- 配置が正しく完了したことを確認します: .. code-block:: bash # Move to network construction code directory cd /path/to/your/network/code/ # Verify that bionetlite.py exists ls bionetlite.py .. code-block:: python # Start Python interpreter to verify python >>> from bionetlite import NeuliteBuilder >>> print("bionetlite is ready to use!") エラーが表示されなければ、セットアップは成功です。 基本的な使い方 ============== 既存のbionetコードをbionetliteに変換するのは非常に簡単です。import文を変更するだけで、残りのコードはそのまま使用できます。 importの変更 ------------ **変更前(bionet):** .. code-block:: python from bmtk.builder.networks import NetworkBuilder **変更後(bionetlite):** .. code-block:: python from bionetlite import NeuliteBuilder as NetworkBuilder ネットワークの構築 ------------------ 以降のコードはbionetと全く同じです: .. code-block:: python # Create network net = NetworkBuilder('v1') # Add nodes net.add_nodes( N=1, pop_name='Scnn1a', model_type='biophysical', model_template='ctdb:Biophys1.hoc', dynamics_params='472363762_fit.json', morphology='Scnn1a_473845048_m.swc' ) # Build network net.build() # Save to files net.save_nodes(output_dir='network') net.save_edges(output_dir='network') 出力ファイルの確認 ------------------ bionetliteは、``neulite/`` ディレクトリ内にNeulite用のファイルを生成します: **ディレクトリ構造** .. code-block:: text neulite/ ├── v1_population.csv # Population information ├── v1_v1_connection.csv # Connection information └── data/ ├── *.swc # Processed morphology files └── *.csv # Ion channel settings .. note:: ファイル名は ``NetworkBuilder`` で指定した名前(この例では ``'v1'``)に基づいて生成されます。 各ファイルの詳細: **_population.csv** - ニューロンのポピュレーション情報 .. code-block:: text #n_cell,n_comp,name,swc_file,ion_file * ``#n_cell``: Number of cells in the population * ``n_comp``: Number of compartments * ``name``: Population name * ``swc_file``: Path to morphology file * ``ion_file``: Path to ion channel configuration file **__connection.csv** - シナプス接続情報 .. code-block:: text #pre nid,post nid,post cid,weight,tau_decay,tau_rise,erev,delay,e/i * ``#pre nid``: Presynaptic neuron ID * ``post nid``: Postsynaptic neuron ID * ``post cid``: Postsynaptic compartment ID * ``weight``: Synaptic weight * ``tau_decay``: Decay time constant (ms) * ``tau_rise``: Rise time constant (ms) * ``erev``: Reversal potential (mV) * ``delay``: Transmission delay (ms) * ``e/i``: Excitatory (e) or inhibitory (i) オプション設定 ============== NeuliteBuilderは、以下のオプションパラメータを受け取ることができます: .. code-block:: python net = NetworkBuilder( 'v1', convert_morphologies=True, # Whether to convert SWC files convert_ion_channels=True # Whether to convert ion channel settings ) ``convert_morphologies`` と ``convert_ion_channels`` はデフォルトでTrueです。2回目以降の実行では、これらをFalseに設定することで変換をスキップできます。 依存パッケージの詳細 ==================== bionetliteの主要な依存パッケージ ---------------------------------- bionetliteは以下のPythonパッケージに依存しています: .. code-block:: text bmtk>=1.0.0 # Brain Modeling Toolkit neuron>=8.0.0 # NEURON simulator (required) numpy>=1.19.0 # Numerical computing pandas>=1.2.0 # Data manipulation h5py>=3.0.0 # HDF5 file support scikit-learn>=0.24.0 # PCA for axon direction estimation (required) mpi4py>=3.0.0 # MPI parallel processing (optional) **必須パッケージ:** .. code-block:: bash pip install bmtk neuron scikit-learn **オプションパッケージ:** .. code-block:: bash # When using MPI parallel processing pip install mpi4py 次のステップ ============ * :doc:`neulite_build` - Neuliteカーネルのビルド * :doc:`../tutorials/tutorial01_single_cell` - 実践的なチュートリアル * :doc:`../user_guide/basic_usage` - 詳細な使い方 参考資料 ======== * `NEURON公式サイト `__ * `BMTK Installation Guide `__ * `scikit-learn Documentation `_ * `mpi4py Documentation `_ * Neulite公式サイト: https://numericalbrain.org/neulite/