Help us understand the problem. What is going on with this article?

「MountainSort」でスパイクソーティングをする

スパイクソーティング(spike sorting)は電気生理学の細胞外電位計測で行われるもので、電極から得られた電気信号から、神経細胞ごとの活動を取り出すものです。
1つの電極には、たいていは近くに複数の神経細胞が存在し、複数の神経細胞からの電気活動(スパイク)が取れます。そのため、細胞ごとに分離すればより詳細な解析が行えます。

400px-QQ_Fig1.jpg
(Rodrigo Quian Quiroga (2007), Scholarpedia, 2(12):3583.より画像を引用
http://www.scholarpedia.org/article/Spike_sorting)

手動で行うのはとても労力がかかるため、自動化が望まれます。
基本的な方法論としては、まず信号からスパイクを取り出し、その波形の特徴を元にしてクラスタリングを行います。同じようなスパイクの波形なら、同じ細胞の活動とみなすということです。
波形自体はとても情報量が多いため、そこから特徴量を取り出して教師なしクラスタリングを行う、などが主な方法です。

このspike sortingの技術はまだベストな方法が分かっておらず、調べてみると新しいソフトが毎年発表されているようです。
日本人の方が開発したものではEToSがあります。私も以前に使用したことがあります。
(https://www.frontiersin.org/articles/10.3389/fninf.2012.00005/full)
また最近だとVISSORというソフトもあるようです。
(https://omictools.com/vissor-tool)

そんな中でNeuronで発表された「MountainSort」というソフトを見つけました。
(https://www.sciencedirect.com/science/article/pii/S0896627317307456)
特徴はスパイクの重なりや低周波のノイズ(ドリフト)に強く、そしてパラメータ無しで完全自動であることのようです。
現在は「MountainLab」というソフトの一部になったようです。
実際にインストールして使用してみました。

GitHubページ:https://github.com/flatironinstitute/mountainsort_examples
マニュアル:https://mountainsort.readthedocs.io/en/latest/mountainlab/mountainlab.html

インストール

使用できるOSはMacかLinuxです。
私はUbuntu 16を使用しました。
Anacondaからcondaコマンドでインストール出来るようです。
ターミナルから以下のコマンドを打ちます。

conda create -n mountainlab
conda activate mountainlab
conda install -c flatiron -c conda-forge \
            mountainlab \
            mountainlab_pytools \
            ml_ephys \
            ml_ms3 \
            ml_ms4alg \
            ml_pyms

インストールしたら動作を確認しましょう。

ml-config
ml-list-processors

他にも可視化用のパッケージをインストールします。

conda install -c flatiron -c conda-forge ephys-viz
conda install -c flatiron -c conda-forge qt-mountainview

これでインストール出来ました。
もしJupyterを使用したい場合は、jupyterlabもインストールしましょう。

デモを動かす

GitHubページの中に、いくつかのデモコードが入っているので、ダウンロードします。

git clone https://github.com/flatironinstitute/mountainsort_examples.git

この中のbash exampleにはランダムでデータを生成してデモをしてくれるコードがあるのでそれを使いましょう。

cd mountainsort_examples/bash_examples/001_ms4_bash_example
./synthesize_dataset.sh

データを生成されました。
次にデータを可視化します。

ev-dataset dataset

ephys-vizのエラーになりました。

スパイクソーティングを行います。

./ms4_sort_bash.sh

結果は以下のコマンドで可視化できます。

ev-templates output/templates.mda.prv
ev-timeseries dataset/raw.mda.prv --firings output/firings.mda.prv --samplerate=30000
qt-mountainview --raw dataset/raw.mda.prv --filt output/filt.mda.prv --pre output/pre.mda.prv --samplerate 30000 --firings output/firings.mda

evのコマンドはephys-vizのエラーになりましたが、
最後のコマンドのqt-mountainviewは正常に動いて、GUIツールが表示されました。
image.jpg

色んなコマンドで可視化が出来て便利そうです。

ephys-vizの方はエラーが解決したら、更新する予定です。

感想など

電気活動のデータは実験環境によって様々あり、それがspike sortingの難しさの要因としてあるようです。
最近だとDeep Learningを使用したアルゴリズムもあるようです。
また、spikeforestというベンチマークソフトも出てくるようです。
いつか完全なspike sortingソフトが出てくるのを期待したいです。

MountainLabはspike sorting以外のデータにも使えるようなので、他の時系列データにも活用していきたいです。

また電気生理学実験を包括的に行うオープソースとしてOpen Ephysというソフトもあるようです。
これも非常に興味深いですね。
https://iopscience.iop.org/article/10.1088/1741-2552/aa5eea

takeajioka
DeepLearning E検定2020#1取得。 医学・生命科学に関するのツールやPC設定のTipsを紹介。 開発したツールはgithubで公開している。
https://github.com/atakehiro
japan-research-activity-support
株式会社日本学術サポートは、大学・研究機関・医療機関における研究・調査に必要な業務を強力にバックアップします。
https://www.jras.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした