開発のヒホ

iOSとかAndroidとかのアプリを開発するのに四苦八苦するブログ

MacでNEURONをPython3で動かす

 神経回路や神経活動を模倣できるオープンなシミュレーション「NEURON」のpython環境を導入をしてみたのでメモを残しておきます。試した環境はMac OS XYosemite(10.10.5)、homebrewでインストールしたpython3.4.3です。

 参考サイト(公式インストール手順)
 Compiling the standard distribution under OS X | NEURON

必要なライブラリをインストール

 WindowsLinuxpip3 install neuronでいけるらしいですが、残念ながらMacはサポートされていないので自分で色々揃える必要があります。

 ライブラリを揃えるために、便利なhomebrewを使用します。
 MacOSX - パッケージ管理システム Homebrew - Qiita

brew install autoconf
brew install automake
brew install libtool
brew install openmpi

インストールの準備

 最初にwhich gccMacデフォルトのgcc(/usr/bin/gcc)が使われることを確認しておきます。このgccを利用しないと並列環境関連のコードのコンパイルでエラーが出ます。

which gcc
# /usr/bin/gcc

 続いてインストール先のディレクトリを適当に作っておきます。NEURON-7.4のバージョンは最新のものにしておくと無難です。

export IDIR=/Applications/NEURON-7.4
mkdir $IDIR
mkdir $IDIR/iv
mkdir $IDIR/nrn

ivをインストール

 下記サイトのiv-mm.tar.gzからivのソースファイル等をダウンロードします。
 Get the standard distribution's source code | NEURON

 試したタイミングではバージョン19でしたが、最新のものを使うのが無難だと思います。その際は下記コマンドも適宜変更する必要があります。

cd iv-19
sh ./build.sh
./configure --prefix=$IDIR/iv
make
make install

nrnをインストール

 pipを利用していると、このインストールでエラーが出るので対処しておきます。pipのprefixのデフォルト値が悪さするようです。
 参考 : python - DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both - Stack Overflow

 ホームディレクトリ直下に.pydistutils.cfgを作成(~/.pydistutils.cfg)し、次のように編集します。

[install]
prefix=

 では、コンパイル&インストールです。--with-nrnpythonの後に自分の利用したいpythonを書きます。--with-paranrnがないと、後々エラーが出ます。

cd ../nrn-7.4
sh ./build.sh
./configure --prefix=$IDIR/nrn --with-iv=$IDIR/iv --with-nrnpython=python3 --with-paranrn
make
make install
make after_install

pythonで使えるようにする

 まず、出来上がった実行ファイルにパスを通します。
 ホームディレクトリ直下に.bash_profile~/.bash_profile)を作成し、以下を追加します。

export $IDIR=/Applications/NEURON-7.4
export IV=$IDIR/iv
export N=$IDIR/nrn
export CPU=x86_64
export PATH=$IV/$CPU/bin:$N/$CPU/bin:$PATH

 最後に、できたneuronモジュールをPATHの通っている適当な場所に配置します。

cd /usr/local/lib/python3.4/site-packages
ln -s /Applications/NEURON-7.4/nrn/lib/python/neuron

 これでnrngui -pythonで起動したり、python3ipython3で起動後にimport neuronできるようになるかと思います。