タグ: 神経科学

  • 物体認識を使った新しい行動解析ツール”YORU”とは一体なんなのか

    物体認識を使った新しい行動解析ツール”YORU”とは一体なんなのか

    2024年11月にbioRxivにこれまでの行動解析ツールとは異なる手法を使ったYORUという行動解析ツールについて発表されました。
    今回はそのツールについてどのようなツールなのかを解説していきたいと思います。

    YORUのプレプリント

    YORUのドキュメント

    YORUとは

    YORUとは深層学習を使った動物の行動解析ツールです。

    YORUのサイトより引用


    これまでもDeepLabCutSLEAPといった深層学習を使ったツールは多く公開されています。
    これらのツールは深層学習と用いて動物の体の部位をトラッキング、そして姿勢推定を行うツールです。(ここではトラッキングツールと呼びます。)

    姿勢を推定することによって、動物がどのような姿勢をしているのかを明らかにし、行動解析を行います。

    これに対して、YORUは物体認識というアルゴリズムを用いて行動を認識します。
    簡潔には、身体部位のトラッキング等は行わず、動物の行動している様子から行動を直接定義します。

    人がりんごやみかんを見分けるときに、形や色といったことを情報に見分けていると思います。
    物体認識では物体を分類することに長けているため、こういった見た目によるものの見分けを行います。

    これを動物の行動解析に用いることで、動物の行動をその見た目から分類します。
    YORUのツール内では、これを行動オブジェクト(Behavior object)と呼んでいます。

    トラッキングツールでは行動は点と線で認識され、YORUでは行動をボックスで囲われるように解析されます。

    物体認識による行動定義のメリット

    物体認識による行動のメリットとしては

    ・個体数が増えてもエラーが出にくい

    ・動物の向きに影響されにくい

    ・解析速度が速い

    ・トラッキングでは捉えにくい行動(マウスがうずくまるといったような行動)を捉えられる

    といったことが考えられます。

    トラッキングツールの弱点である、複数個体の行動解析を簡単に、かつ解析コストをかなり抑えて解析することが可能です。
    さらに、身体部位の位置情報による行動定義が困難な行動も簡単に解析可能です。

    例えば、手をあける、閉じるという行動を考えてみましょう。
    トラッキングツールであればカメラで指先をトラッキングして閉じている、開いているを定義すると思いますが、手を閉じたときに指先が見えなくなると、トラッキングできず、位置情報を正確に計算できなくなります。

    しかし、物体認識であれば手がひらいた状態と閉じた状態の手の形を見ているので、一部が見えなくなっても正確に捉えることが可能です。

    個体数増加に強いという理由に関しても、トラッキングツールであれば個体数が増えると、身体部位がどの個体なのかを割り振って、正確に各個体の行動をとらえなければなりませんが、YORUであれば各個体の形状のみで解析するため、個体の識別や各個体への割り振りを行う必要がありません。

    解析速度も速いため、リアルタイム解析が可能であり、ある行動をしたときに装置制御を行うといったことも可能であり、行動実験の自動化を行うことができます。

    物体認識による行動定義のデメリット

    もちろんデメリットもあり、

    ・一連の行動は捉えることができない

    ・個体識別は行えない

    ・未知の行動を捉えることはできない

    ・見た目でわかりにくい行動は捉えられない

    ・定義した行動の詳細がわからない

    といったことがあります。
    これらのデメリットは逆にトラッキングツールの強みとしても挙げられるところであり、どちらが優れているというよりは、メリット・デメリットをお互いに補完し合っているような感じです。

    そのため、実験者は状況に応じた適切な手法を選ぶ必要があります。

    YORUは何がすごいのか

    さて、YORUの根本に使われている物体認識による行動解析のメリット・デメリットを述べましたが、YORUは一体何がすごいのでしょうか。

    全てGUI化されている

    YORUではプログラミングを行うことなく、行動解析を行うことが可能です。

    これはDeepLabCutやSLEAPなどのツールも同様であり、生物学者にとってこれらの解析を使うための一助となります。

    デザイン


    YORUのデザインはこれまでのツールと違い、かなり研究ツールっぽくはない感じがします。

    リアルタイム解析を導入している

    YORUではこれまでのツールでは珍しく、リアルタイム解析のGUIが完備されています。

    リアルタイム解析のシステムを作るのはプログラミングがある程度できればそこまで問題ではありませんが、そうでないとかなりハードルが高いです。

    ただ、YORUでは全てプログラミングなしで、リアルタイム解析、さらには外部トリガーまでを行うことが可能になっています。

    多様な実験装置に適応可能である点

    リアルタイム解析の最も高いハードルとして、自身の実験系の装置を動かすコードとこれらの解析をどのように組み合わせるのかというのがあります。

    YORUではプラグインシステムを導入しており、外部装置を制御するプログラムを選ぶことができます。

    つまり、自身のシステムにあったプラグインを選択すれば良いのです。

    また、プラグインは自作することも可能であり、自身の装置の制御プログラムをプラグインにすることで簡単にYORUのリアルタイム解析と合致させることができます。

    これは他のツールにはない、かなり使いやすいシステムとなっています。

    最後に

    YORUは発表されたてで、まだまだ使いにくい点・ドキュメントの不足が目立ちます。

    しかし、これからこれらが整備されていくことによって、どのように使われていくのか非常に楽しみです。

  • GitHubの基礎から論文にコードを公開するまでの方法

    GitとGitHubの使い方に関する発表を行った時の資料を公開します。

    実際にGitHubを使ってどのように操作するのかから、プログラムコードを論文に載せるためにはどのような操作するのかを説明しています。

    論文データや解析プログラムの公開が現在よく求められています。
    それ以外にもGitHubを使ったプログラム管理は共同研究を行う上で重要な要素となってきています。

    [2024年1月15日更新] https://www.slideshare.net/slideshow/embed_code/key/vzfmHD9i6I15wI

    GitHubの基礎からプログラム管理、そしてプログラムコードを論文に公開するまでの手順 from Hayato Yamanouchi

    自身のサイトにも同様のものを載せています。

    山ノ内勇斗の個人サイト

  • SLEAPのインストール方法[2024年2月更新]

    SLEAPのインストール方法[2024年2月更新]

    SLEAPという機械学習を用いた動物の身体部位のトラッキングツールのインストール方法について書いていきたいと思います。

    DeepLabCutがトラッキングツールとして最もメジャーであり僕自身も過去にインストール方法について書いたり、他の人が多くの記事を残してくれています。

    しかし、SLEAPについては日本語での記事は少ないのが現状です。
    SLEAPはDeepLabCutよりも優れている点はたくさんあり、選択肢の一つとしてできるようにするために今回インストール方法を書こうと決意しました。

    SLEAPはインストール方法から使い方まで動画付きで非常にわかりやすくまとまっているので、英語がわかる方なら簡単に使うことができると思います。

    SLEAPの論文についてはこちら

    SLEAPの公式サイトはこちら

    SLEAPのGitHubはこちら

    はじめに

    まず初めに、SLEAP(公式)のインストール方法に書いてある、

    mamba create -y -n sleap -c conda-forge -c nvidia -c sleap -c anaconda sleap=1.3.3

    で一発で環境構築からパッケージのインストール、その他の諸々を行うという方法は、筆者はいくつかのパソコンで試したが、どれも環境構築の段階でずっと処理中になってしまい、うまくいかなかった。

    よって、今回は公式が提案する別の方法でインストールする方法を紹介する。

    インストール方法

    基本的にはSLEAP公式のサイトのインストール方法にのっとって行なっていきます。

    動作環境

    ・Windows 11 pro
    ・NVIDIA 3080で動作確認
    ・SLEAP 1.3.3
    ・Python 3.7.12

    ファイルのダウンロード

    まず初めに、SLEAPのGitHubからファイルを自分のパソコンにダウンロードします。

    Gitで行う場合には以下のコードを行います。

    git clone https://github.com/talmolab/sleap

    gitコマンドが使えない場合には、gitをインストールする、もしくはGitHubから直接ファイルをダウンロードします。

    GPUのドライバーのインストール

    NVIDIAのドライバーをインストールします。
    (もともとインストールされている場合はスキップします。)

    Anacondaのインストール

    次に、AnacondaのサイトからWindows 10 64bit版をダウンロード、インストールします。
    AnacondaのサイトのFree Downloadを押し、サイトの下の方に行くと下のような画面になるので、
    一番左のWindowsのインストーラーを入れましょう。

    Anacondaがインストールできると、windowsのアプリ一覧の中に、”Anaconda Prompt”が入っていると思います。
    それを使って、以下のコードを実行し、仮想環境の構築やインストール、さらにはSLEAPの起動を行ってきます。

    仮想環境の構築とインストール

    その後、以下のコードを実行し、仮想環境の構築、そしてSLEAPのインストールします。
    仮想環境名は”sleap”になります。

    cd sleap
    conda env create -f environment.yml -n sleap

    ちなみに、GPUの入っているパソコンでは上記のコードで行うことができますが、
    もし入っていないパソコンでは、以下のコードで行うことができます。

    cd sleap
    conda env create -f environment_no_cuda.yml -n sleap

    これでインストールは完了です。

    インストールできたかの確認

    仮想環境のアクティベーションを行い、sleap-labelでSLEAPを起動します。

    conda activate sleap
    sleap-label

    仮想環境のアクティベーション(codna activate sleapのコマンド部分です。)はAnaconda Promptを閉じた際には毎度行う必要があります。

    仮想環境のアクティベーションで(base)から、(sleap)になると思います。

    起動できたら問題なくインストールができました。

    論文に載せる際のバージョンなどの確認

    バージョンの確認はsleapの仮想環境をアクティベートした後で、以下のコマンドを実行します。

    python -c "import sleap; sleap.versions()"

    すると、

    SLEAP: 1.3.3
    TensorFlow: 2.7.0
    Numpy: 1.21.5
    Python: 3.7.12
    OS: Windows-10-10.0.22621-SP0

    と、SLEAPのバージョン情報などが出力されます。

    また、SLEAPがGPUを利用できているかについては、

    python -c "import sleap; sleap.system_summary()"

    で確認できます。
    利用できているときは以下のような出力になります。

    GPUs: 1/1 available
      Device: /physical_device:GPU:0
             Available: True
           Initialized: False
         Memory growth: None

    次回以降はSLEAPの具体的な使い方について紹介できたらなと思います。

    おまけ

    パソコンどれを使えばいいのかわからない方へ、パソコン購入相談をココナラでやることにしました!

    あなたの要望に合わせてパソコンを選び、提案します パソコン選びに困っている方々へ!様々な目的に対応できます!

    パソコンを選んだり、アドバイスすることが多く多くの友人からパソコンの相談やったら儲かるのにと言われました。
    それに感化されて一旦やってみようと思いました!

    パソコンの利用目的に合わせて、そしてパソコンの予算に合わせて購入をご提案します。
    特に機械学習に用いるパソコンを多く選び、使ってきています。

    そして、希望があればパソコンを今後買う時にどこに注目すると良いかもアドバイスしていきたいと思います。

    今まで選んだことあるパソコンとして、研究室の解析用パソコン、実用パソコン、ゲーム配信用パソコン、大学の新入生用のパソコン、建築学科用のCADが使えるパソコン、とりあえずのパソコンなど。

    MacとWindowsの両方使っているので、どちらのお話、ご提案もできます!

    ぜひ利用してみてください

  • ショウジョウバエの研究ツール・データベースまとめ

    ショウジョウバエ(Drosophila)の研究をするにあたっての、研究ツールのまとめを備忘録的に残しておきます。
    書き漏れ、追加して欲しいツールなどありましたら、サイトのコメントかこちら(haya.m.yamano.neuro@gmail.com)までご連絡お願いいたします。

    現在制作段階なので、徐々に情報が増えていくと思います。

    更新日: 2023/12/1

    データベース

    FlyBase

    URL: https://flybase.org

    ショウジョウバエの総合的なデータベース。遺伝子の配列、発現情報をはじめ、ショウジョウバエの研究論文や研究コミュニティなどの情報を入手することができる。

    FlyWire

    URL: https://flywire.ai

    NeuronBridge

    URL: https://neuronbridge.janelia.org

    FlyLight

    URL: https://www.janelia.org/project-team/flylight

    FlyCircuit

    URL: https://www.flycircuit.tw

    neuPrint

    URL: https://neuprint.janelia.org

    SCope

    URL: https://scope.aertslab.org

    Fly Cell Atlas

    URL: https://flycellatlas.org

    Paper:

    ストックセンター (Stock Center)

    Bloomington Drosophila Stock Center

    URL: https://bdsc.indiana.edu

     アメリカのBloomingtonにあるIndiana Universityのショウジョウバエストックセンターです。
    遺伝型による検索だけでなく、Stock No.(BLから始まる番号)などでも検索することができます。

    GAL4系統やUAS系統、RNAi系統など多種多様な系統がストックされています。

    Vienna Drosophila Resource Center

    URL: https://shop.vbc.ac.at/vdrc_store/

     オーストリアの Institute of Molecular Biotechnology (IMBA) にあるショウジョウバエストックセンターです。RNAi系統が特に多くストックされています。

    KYOTO Drosophila Stock Center

    URL: https://kyotofly.kit.jp/cgi-bin/stocks/index.cgi

     日本の京都の京都工芸繊維大学にあるストックセンターです。日本にある中で一番大きいショウジョウバエのストックセンターであり、サイトからStockリストがダウンロードできたり、Lineごとにまとまって検索したりすることができる。

    KYORIN-Fly : Drosophila species stock center

    URL: https://shigen.nig.ac.jp/fly/kyorin/

     日本の杏林大学にあるショウジョウバエのストックセンターである。多様な種のショウジョウバエがおり、キイロショウジョウバエの近縁種の変異体などもこのストックセンターから入手することができる。

    行動解析ツール

    DeepLabCut

    URL: http://www.mackenziemathislab.org/deeplabcut

    Paper: Mathis A, Mamidanna P, Cury KM, et al. DeepLabCut: markerless pose estimation of user-defined body parts with deep learning. Nat Neurosci. 2018;21(9):1281-1289. DOI:10.1038/s41593-018-0209-y

     

    SLEAP

    URL: https://sleap.ai

    Paper: Pereira TD, Tabris N, Matsliah A, et al. SLEAP: A deep learning system for multi-animal pose tracking. Nat Methods. 2022;19(4):486-495.
    DOI:10.1038/s41592-022-01426-1

    UMATracker

    URL: https://ymnk13.github.io/UMATracker/

    Paper: Yamanaka O, Takeuchi R. UMATracker: An intuitive image-based tracking platform. J Exp Biol. 2018;221(16):1-5.
    DOI:10.1242/jeb.182469

    Ctrax

    URL: https://ctrax.sourceforge.net

    Paper: https://www.nature.com/articles/nmeth.1328

    FlyTracker

    URL:

    Paper:

    ID Tracker

    URL:

    Paper:

    TRex

    URL:

    Paper: https://elifesciences.org/articles/64000

    JAABA

    URL:

    Paper:

    その他

    Brain and VNC template (JRC 2018 Brain templates)

    URL: https://www.janelia.org/open-science/jrc-2018-brain-templates

    Color-Depth MIP

    URL: https://www.janelia.org/open-science/color-depth-mip

    解剖と抗体染色のプロトコル

    URL: https://www.janelia.org/project-team/flylight/protocols

    ショウジョウバエの成虫や幼虫の解剖方法の動画、抗体染色のプロトコルが手に入ります。

  • Python Video Annotatorインストール方法

    Python Video Annotatorインストール方法

    Python Video Annotatorとは

    Python Video Annotatorとは、撮影した動画を解析、動画内のイベントを時系列的にノートすることができるアプリケーションです。

    神経科学や行動学の研究者が、動物の動画を撮影し、その動物たちの行動を解析、定量するためなどに利用することができます。
    例として、マウスの行動を記録する際に、舌を出す、尻尾を振る、耳を動かすなど、記録したい行動があったとします。
    それが、動画のいつ起こっていて、どれぐらいの時間継続しているのか。
    毎度動画を見て、エクセルに記録するのだと、定義した行動が多いとあまりに大変です。
    こういったツールを用いることで、動画にノートとして記録し、時間情報やイベント情報を取り出すことができます。

    元々、動物の行動を記録するアプリケーションとして、VCodeと呼ばれるオープンソースのソフトがありました。
    しかし、現在のパソコンのOSに対応していないという問題がありました。

    Python Video Annotatorでは、最新のPCに対応し、必要な機能は残しつつ、さらに外部のセンサー情報(圧力計など)やDeepLabCutなどの行動定量ツールと組み合わせることができ、非常に研究を行う人にとって有用なツールとなっています。

    インストール方法

    ホームページにインストール方法は詳しく書かれていますが、僕のパソコンではうまく入れることができませんでした。(多分そのままインストールしたら、元々インストールされているパッケージとの相性が悪かったのかもしれません。)
    そこで、GitHubのサイトに記載されている、Anacondaを使って仮想環境を構築、インストールするという方法を行いました。

    言葉で言うと難しそうですが、やることは非常に簡単です。
    現在(2021年10月20日地点)では最新のmacOS(Big Sur 11.6)には対応していないらしく、近日中に改善されると思われます。
    なので、今回はWindowsを例にとって説明します。

    ただ、macOSでもAnacondaを入れて、condaコマンドを使えるようにしてからは基本的には操作は一緒なので、使えるようになったら参考にしてください。(詳しくは前回の記事より)

    Anacondaをインストールし、Anaconda promptを開きます。
    そして、仮想環境を作成し、仮想環境をアクティベートしましょう。

    conda create -n videoannotator python=3.6
    conda activate videoannotator

    その後、必要なパッケージをインストールします。

    pip install opencv-python-headless pyqt5==5.14.1 pyqtwebengine==5.14.0

    その後、python Video Annotatorをインストールします。

    pip install python-video-annotator

    色々処理が終わったらインストール完了です。

    起動するときは、仮想環境をアクティベートしてから、実行します。

    conda activate videoannotator
    start-video-annotator

    これでソフトが起動したら完了です。

  • Bonsaiによる四則演算の方法

    Bonsaiによる四則演算の方法

    神経科学及び、その他の実験デザインとしてよく使われるBonsai。
    Bonsaiはプログラムをしなくとも、高度なプログラムを作ることができ、そして同期性を持ってプログラムを実行することができます。

    しかし、シンプルが故に、四則演算などの普通のプログラミングでは単純なプログラムだと少しわかりにくい方法で行うこととなります。
    そこで、その四則演算の方法をMouseMoveを例にとって説明します。

    下が実際に四則演算を行なった様子であり、上から順に足し算、引き算、掛け算、割り算です。

    今回はわかりやすいため、MouseMoveのXとYの値を例に取りました。
    しかし、実際には別のセンサーなどから得られたそれぞれの値を計算したりすることができます。

    ここでBonsaiにおいて重要なのは演算をする前に”Zip”によって、二つの値を統合する必要があります。

    “Zip”の中身は(値1, 値2)のようになっており、その時の二つの値を一つにまとめる役割を担います。
    そして、各演算では値1と値2をそれぞれ計算します。

    言葉での説明は難しいですが、なんとなくのイメージで掴みましょう。
    もし”Zip”がなかった際には、プログラムにおいて、どの値とどの値を掛け算するかがわからなくなるため、計算ができないので、一度XとYの値を対応を持って統合する必要があります。

    それぞれ四則演算を行うときの処理の名前のリストを下記に記します。

    • 足し算 => Add
    • 引き算 => Subtract
    • 掛け算 => Multiply
    • 割り算 => Divide

    下記に実際の様子を載せておきますので参考にしてみてください。

    <例の実行の様子>

  • Visual programing languageとしてのBonsai

    Visual programing languageとしてのBonsai

    Bonsaiは2015年に論文で発表されたVisual programming languageです。
    Bonsaiを使うことでセンサーからの情報を取得し、処理を同時に行うことを可能としたものです。

    Bonsaiの特徴として、複雑な処理をパズルを組み立てるような形で簡単に作ることができ、そして、その処理の結果をリアルタイムで確認することができるという点にあります。

    また、Bonsaiは他の解析ソフト(DeepLabCut. open ephys, bon visionなど)、ハードウェア(カメラ、コントローラー、マイコンなど)などと組み合わせることができ、拡張性が非常に高いことがあります。

    難しそうに見えるプログラミング言語を学習しなくても、直感的に複雑な解析や処理を行うことができるため、誰でも簡単に使うことができ、実験の幅がよりひろがります。

    Bonsaiに関する論文はこちらから。
    また、Bonsaiのインストールはこちらから。

    論文の画像より引用。
    この丸がノードと呼ばれる各処理を示すものです。

    これが実際にBonsaiを使っているときの画面です。(論文から引用)
    左側ではノードの検索をし、目的のノードを追加することができ、中央の画面ではノードを並べることでどのような処理を可視化しながら組み立てることができ、右側は各ノードの詳細設定です。

    メイン画面でポップアップしているのは各ノードの実行状況であり、カメラのキャプチャーであれば、実際のカメラの画像を出力することができます。

    一見難しそうに見えるが、こうやってみてみると意外と簡単なように見えます。

    では実際にインストールしていきます。
    といっても、こちらのサイトより、ダウンロードするだけです。
    ダウンロードした “Bonsai-*.*.*.exe” ファイルを開き、ダウンロードするだけです。
    ウイルスバスターなどのセキュリティソフトなどによってインストールできないことがあることに注意が必要です。

    Bonsaiをダウンロードするとソフト一覧にBonsaiとBonsai (X86)が追加されます。
    通常使用する際はどちらでも大丈夫であるが、ときどきどちらかが動かないなどがあり、動かないときは、もう一方のほうで動かしてみるとうまくいくことがあります。

    問題点として、Bonsaiは今現在はWindowsでのみ対応しており、LinuxやMac OSでは対応していません。
    今後は利用できるかもしれないが、ここも注意が必要です。

    次回から実際にBonsaiを使ってみようと思います。