Category: Research Tools

  • How to Install SLEAP [Updated February 2024]

    How to Install SLEAP [Updated February 2024]

    Here I’d like to walk through how to install SLEAP, a machine learning-based tool for tracking animal body parts.

    DeepLabCut is the best-known tracking tool, and I’ve written about how to install it myself in the past, while many others have posted articles about it as well.

    SLEAP, however, has relatively few articles written about it in Japanese.
    SLEAP has many advantages over DeepLabCut, so I decided to write up the installation procedure to make it a viable option for more people.

    SLEAP’s documentation covers everything from installation to usage very clearly, complete with videos, so anyone comfortable with English should find it easy to get started.

    The SLEAP paper is available here

    The official SLEAP website is here

    The SLEAP GitHub repository is here

    Introduction

    First, a note about the approach described in the official SLEAP installation guide:

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

    the one-line command that is supposed to handle environment creation, package installation, and everything else at once. I tried it on several computers, but in every case it hung indefinitely during the environment creation step and never completed.

    So in this post I’ll introduce the alternative installation method that the developers also suggest.

    Installation

    We’ll basically follow the installation instructions on the official SLEAP site.

    Environment

    ・Windows 11 Pro
    ・Verified on an NVIDIA 3080
    ・SLEAP 1.3.3
    ・Python 3.7.12

    Downloading the files

    First, download the files from the SLEAP GitHub repository to your computer.

    If you’re using Git, run the following command.

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

    If the git command isn’t available, either install git or download the files directly from GitHub.

    Installing the GPU driver

    Install the NVIDIA driver.
    (Skip this step if it’s already installed.)

    Installing Anaconda

    Next, download and install the Windows 10 64-bit version from the Anaconda website.
    Click Free Download on the Anaconda site and scroll down; you’ll see a screen like the one below.
    Install the Windows installer on the far left.

    Once Anaconda is installed, you should find “Anaconda Prompt” in your Windows app list.
    We’ll use it to run the commands below to create the virtual environment, install the packages, and finally launch SLEAP.

    Creating the virtual environment and installing

    Next, run the following commands to create the virtual environment and install SLEAP.
    The environment will be named “sleap”.

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

    Incidentally, the commands above work on computers with a GPU;
    on machines without one, use the following instead.

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

    That completes the installation.

    Checking that the installation worked

    Activate the virtual environment and launch SLEAP with sleap-label.

    conda activate sleap
    sleap-label

    You’ll need to activate the virtual environment (the conda activate sleap command) every time you reopen Anaconda Prompt.

    After activating the environment, the prompt should change from (base) to (sleap).

    If it launches, the installation was successful.

    Checking version information for reporting in a paper

    To check the version, activate the sleap environment and then run the following command.

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

    This outputs:

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

    which shows the SLEAP version and related information.

    To check whether SLEAP can use the GPU, run:

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

    If the GPU is available, you’ll see output like the following.

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

    In future posts, I hope to walk through how to actually use SLEAP.

    Bonus

    For those who aren’t sure which computer to buy, I’ve started offering PC purchase consultations on Coconala!

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

    I often pick out computers and give advice about them, and many friends have told me I could make money doing PC consultations.
    That inspired me to give it a try!

    I’ll recommend a machine that fits both what you want to use it for and your budget.
    In particular, I’ve chosen and used many computers intended for machine learning.

    And if you’d like, I can also advise you on what to look for the next time you buy a computer.

    Computers I’ve picked out so far include lab analysis machines, everyday-use machines, game streaming machines, machines for incoming university students, machines that can run CAD for architecture students, and simple entry-level machines.

    I use both Mac and Windows, so I can discuss and recommend either one!

    Please feel free to make use of it.

  • A Roundup of Drosophila Research Tools and Databases

    Here I’ve compiled a memo-style list of research tools useful for working with the fruit fly (Drosophila).
    If anything is missing or if there is a tool you would like added, please leave a comment on the site or contact me at haya.m.yamano.neuro@gmail.com.

    This page is still under construction, so more information will be added over time.

    Last updated: December 1, 2023

    Databases

    FlyBase

    URL: https://flybase.org

    A comprehensive Drosophila database. In addition to gene sequences and expression data, it provides access to research papers and information about the Drosophila research community.

    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 Centers

    Bloomington Drosophila Stock Center

    URL: https://bdsc.indiana.edu

     The Drosophila stock center at Indiana University in Bloomington, USA.
    You can search not only by genotype but also by stock number (numbers beginning with BL).

    A wide variety of lines are stocked here, including GAL4, UAS, and RNAi lines.

    Vienna Drosophila Resource Center

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

     The Drosophila stock center at the Institute of Molecular Biotechnology (IMBA) in Austria. It holds a particularly large collection of RNAi lines.

    KYOTO Drosophila Stock Center

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

     A stock center at the Kyoto Institute of Technology in Kyoto, Japan. It is the largest Drosophila stock center in Japan; the stock list can be downloaded from the site, and lines can be searched by group.

    KYORIN-Fly : Drosophila species stock center

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

     A Drosophila stock center at Kyorin University in Japan. It maintains a wide range of Drosophila species, and mutants of species closely related to Drosophila melanogaster can also be obtained here.

    Behavior Analysis Tools

    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:

    Other Resources

    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

    Dissection and Immunostaining Protocols

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

    Videos showing how to dissect adult and larval Drosophila, along with immunostaining protocols, are available here.

  • [Updated December 2022] How to Install YOLOX

    [Updated December 2022] How to Install YOLOX

    What is YOLOX?

    Among the many entries in the YOLO series, the latest one, YOLOX, was released in July 2021.

    The YOLOX paper is available here (currently a preprint).
    The GitHub repository is here.

    YOLO is an object detection algorithm.
    It is designed to run in real time and is extremely lightweight (inference alone can even run on a smartphone). It is also highly adaptable, and is widely used in IoT devices.

    “Object detection algorithm” may sound complicated, but an easy analogy is a camera’s automatic face or eye focus.
    A marker appears indicating “this is a face”; the same idea applies to other objects, and the algorithm can also classify what each one is.

    There are many versions in the YOLO series: YOLO, YOLOv2, YOLOv3, YOLOv4, YOLOv5, and YOLOX.
    It also runs not only on Python but on MATLAB as well, so you can adapt it to whichever platform you use.

    Unlike the architecture used from YOLOv3 onward, YOLOX returns to the design of the original YOLO. It is reportedly faster and considerably more accurate.

    Other blogs cover the details as well.

    How to install YOLOX

    Installation instructions are given on the GitHub page, but they are in English and do not cover using a virtual environment, so here I explain how to do it with an Anaconda virtual environment.

    On both Windows and Mac, following the YOLOX manual exactly produced one error after another.
    Errors will likely keep changing with future versions, so look them up as they come.

    See below for how to use the conda command in the macOS Terminal.

    On Windows, I recommend using Anaconda Prompt.

    Open the Terminal (Anaconda Prompt), and you will get a black window filled with text.
    You should see (base) at the left of the last line.
    This means you are not currently inside a virtual environment.

    YOLOX will run without a virtual environment, but since environments can conflict with other packages, I recommend creating one.

    First, enter the following code to create a virtual environment.

    conda create -n YoloX python=3.8

    YoloX is the name of the virtual environment; you can use any name you like.
    You can also specify the Python version with python=3.8.

    Then activate the virtual environment with the following code.

    conda activate YoloX

    If (base) on the left has changed to (YoloX), you are all set.

    Installing CUDA

    First, if this is your first time installing machine learning libraries and you plan to train YOLO on a GPU, install CUDA.
    (Training on a CPU takes an absurdly long time, so I do not recommend it. Note that GPUs cannot currently be used on Apple Silicon machines.)
    CUDA can be downloaded from the official site.

    As for the CUDA version, I suggest checking which CUDA versions PyTorch supports and installing one of those.
    PyTorch official site

    To install an older version, click Download now and then, further down the page under Resources, use Archive of Previous CUDA Releases.

    The latest version may work too, but for now, matching the version to PyTorch should let you run everything without trouble.

    To check whether it is installed on Windows, open “Edit the system environment variables,” go to Advanced > Environment Variables, and see whether there is a path beginning with CUDA_PATH.
    The number after the V indicates the version.

    Installing PyTorch

    Before installing, update pip.
    Activate the virtual environment in Anaconda Prompt and run the following command.

    python -m pip install --upgrade pip

    Go to the PyTorch official site and choose the installation method that matches your environment.
    One catch here is the Package field: be sure to select pip.
    Installing with conda will cause errors later on.

    Copy and paste the command under “Run this Command” to install it in your virtual environment.

    Once the installation finishes, use the following command to check that PyTorch is installed.

    pip list

    As long as torch appears in the list, you’re good to go!!!
    As a quick check, start python and run the following command.

    import torch
    print(torch.cuda.is_available())

    If the output is True, the installation succeeded and torch is ready to run on the GPU.
    (On a Mac or on a computer without a GPU it will return False, but as long as the import works you’re fine.)
    If you get an error, go back and check the installation again.

    Installing the packages required for YOLOX

    Download (clone) the YOLOX files from GitHub.
    If you can use Git commands, you can clone the repository with the code below.

    git clone git@github.com:Megvii-BaseDetection/YOLOX.git

    Next, move into the cloned folder and install the required packages.

    First, edit the contents of requirements.txt in the cloned YOLOX folder as follows.

    # TODO: Update with exact module version
    numpy
    #torch>=1.7
    opencv_python
    loguru
    tqdm
    #torchvision
    thop
    ninja
    tabulate
    
    # verified versions
    # pycocotools corresponds to https://github.com/ppwwyyxx/cocoapi
    #pycocotools>=2.0.2
    #onnx==1.8.1
    onnxruntime==1.8.0
    onnx-simplifier==0.3.5

    It seems that packages such as pycocotools cannot be installed with this command.

    Once that’s done, save requirements.txt and run the command below in the terminal (Anaconda prompt).

    cd YOLOX
    pip3 install -r requirements.txt
    pip3 install cython pycocotools

    The downloaded YOLOX folder contains a file called “requirements.txt” that lists the required packages. The second command opens this file in read-only mode and installs the packages listed in it.

    pip3 install cython pycocotools

    This command installs cython and pycocotools.
    It seems these have to be installed separately.

    When you run this command, some of you may see the following error.

          building 'pycocotools._mask' extension
          error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

    Microsoft C++ Build Tools is apparently required by pycocotools. (Oddly enough, the error also appears on Mac, even though there is no Mac version.)
    Windows users should install it just to be safe.

    After installing it, try the installation again with the code below.

    pip3 install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"

    If that still doesn’t work, install it with the following command.

    conda install -c conda-forge pycocotools

    In general we’ve been installing these packages with pip, but since this one simply won’t install that way, we resort to installing it with conda.

    Next, download yolox_x.pth.
    The download starts as soon as you click the link.

    Move the downloaded file into the YOLOX folder you cloned from GitHub.
    This gives you the model used for detection in the demo, placed wherever you like.

    Add the following lines to the top of tools/demo.py so that the yolox folder can be accessed.

    #demo.pyの中身に書き込みましょう。
    import sys
    import os
    sys.path.append(os.path.join(os.path.dirname(__file__), '..'))

    Without this, you’ll get an error saying the yolox package cannot be found.

    Then run the following command in the terminal.
    This lets you check whether the demo runs correctly.

    python tools/demo.py image -n yolox-x -c yolox_x.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu 
    #gpuで動かさない場合には、gpuをcpuに書き換えてください。

    Replace –device gpu with –device cpu as appropriate for your setup.

    If the following image appears in YOLOX/YOLOX_outputs/yolox_x/vis_res/20…….., everything is working.

    Bonus

    For those who aren’t sure which computer to buy, I’ve started offering PC purchase consultations on Coconala!

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

    I often pick out computers and give advice, and many friends told me I could make money doing PC consultations.
    Inspired by that, I decided to give it a try!

    I’ll recommend a machine that fits how you plan to use it and your budget.
    In particular, I’ve chosen and used many computers for machine learning.

    And if you’d like, I can also advise you on what to look for the next time you buy a computer.

    Computers I’ve picked out so far include analysis machines for the lab, everyday-use machines, game-streaming machines, machines for incoming university students, machines that can run CAD for architecture students, and simple all-purpose machines.

    I use both Mac and Windows, so I can talk about and recommend either!

    Please feel free to make use of it.

  • [Updated December 2022] How to Install YOLOv5 [Object Detection Tool]

    [Updated December 2022] How to Install YOLOv5 [Object Detection Tool]

    What is YOLOv5?

    YOLO is an object detection algorithm. The name stands for You Only Look Once.
    It differs somewhat from object tracking: it detects objects and identifies what they are.

    YOLOのHPより引用(https://pjreddie.com/darknet/yolo/)

    In applications such as autonomous driving, objects are detected and classified the way a human would judge them—as a person, a pet, or a car, for example.

    The classification algorithm itself is complex, so I will skip the explanation here, but a quick search turns up a great many sites that describe it.

    New versions of YOLO are currently released roughly every other year. We now have YOLO v1 through YOLOv5, and in August 2021 a new version, YOLO X, was announced.
    The differences between versions involve substantial changes in the details, but generally speaking accuracy improves with each new release.

    Here I will walk through the steps for installing YOLO v5—which offers ample accuracy and, thanks to the wealth of information now available, is easy to set up—and verifying that it works.

    Installation environment

    OS: Windows 10 (this also worked on macOS Monterey)
    Python: 3.9.7 (3.6 or later)
    CUDA: 11.3

    How to install

    Creating a virtual environment

    Create a virtual environment using Anaconda.
    If you do not have Anaconda installed, install it first.

    Installing YOLOv5 pulls in quite a few packages, so I recommend installing it inside a virtual environment.
    You can name the environment anything you like; here we will call it “Yolov5_env”.
    Enter the following command in Anaconda Prompt.

    conda create -n Yolov5_env python=3.9

    This should create the virtual environment.
    Activate it with the following command.

    conda activate Yolov5_env

    Installing CUDA

    First, if this is your first time installing machine learning libraries and you plan to train YOLO on a GPU, install CUDA. (Training on a CPU takes an absurdly long time, so I do not recommend it.)
    CUDA can be downloaded from the official site.

    As for which CUDA version to use, I suggest checking which CUDA versions PyTorch supports and installing that version.
    PyTorch official site

    To install an older version, click Download now and then, on the resulting page, use Archive of Previous CUDA Releases under Resources further down the page.

    The latest version may well work too, but for now, matching the version PyTorch expects should let you run everything without trouble.

    To check whether it is installed on Windows, open “Edit the system environment variables,” go to Advanced > Environment Variables,
    and look for a path beginning with CUDA_PATH.
    The number after the V indicates the version.

    Installing PyTorch

    Before installing, update pip.
    Activate the virtual environment in Anaconda Prompt and run the following command.

    python -m pip install --upgrade pip

    Go to the PyTorch official site and choose the installation options that match your environment.
    One thing to watch out for is the Package field: be sure to select pip here.
    Installing with conda will cause errors later on.

    Copy and paste the command shown under “Run this Command” to install it into your virtual environment.

    Once the installation finishes, use the following command to confirm that PyTorch is installed.

    pip list

    If torch appears in the list, you are good to go!
    As a quick check, start Python and run the following command.

    import torch
    print(torch.cuda.is_available())

    If the output is True, the installation succeeded and torch is ready to run on the GPU.
    (On a Mac or a computer without a GPU you will see False, but as long as the import goes through, you are fine.)
    If you get an error, go back and review the installation.

    Installing YOLOv5

    Download (clone) the YOLOv5 files from GitHub.

    git clone https://github.com/ultralytics/yolov5

    If you cannot use the git command, either install git or download the files from the YOLOv5 GitHub repository.

    Next, run the following command in your virtual environment in Anaconda Prompt.

    cd yolov5
    pip install -r requirements.txt

    The first command moves you into the yolov5 folder you downloaded from GitHub. If you installed it with the git command, this is all you need; if you downloaded it directly from the website, you will have to navigate to that directory yourself.

    The downloaded yolov5 folder contains a file called “requirements.txt” that lists the required packages. The second command opens this file in read-only mode and installs the packages listed in it.

    Once the installation is finished, let’s check which packages were installed.

    pip list 

    You should see that quite a few packages were installed.
    That completes the installation of YOLOv5 for now.

    Running It

    To check that everything works, let’s try it with the data that comes with the yolov5 folder.
    Open Anaconda Prompt, activate the virtual environment, and use the cd command to move to the yolov5 folder.

    Then run the following command.

    python detect.py --source ./data/images/ --weights yolov5s.pt --conf 0.4

    detect.py is the program that performs object detection using YOLO.
    With source, you specify the path to the folder containing the material you want analyzed.
    Here I used the images included in yolov5.

    With weights, you choose which model to use.
    Here we use yolov5.pt.

    conf sets the likelihood threshold at which an object is recognized.
    This is a term you will run into often when studying machine learning.
    If you are not sure, leaving it as is should be fine.

    After running it, you should find the annotated images in runsdetectexp inside the yolov5 folder.
    This is how object detection works in YOLOv5.

    Errors I Ran Into

    ・ModuleNotFoundError: No module named ‘torch’

    You may see this error when trying to run YOLO.
    It means PyTorch is not available, i.e., the module cannot be found.

    If you get this error, first check whether torch is installed in your virtual environment.

    pip list

    If torch is not listed, install PyTorch.
    If it is there but things still do not work and you are not sure why, launch python, import PyTorch, and check whether it can actually be used.

    import torch
    torch.cuda.is_acailable()

    If it is usable, True will be returned; if not, you will likely see the error above.

    One possible cause of this error is that PyTorch was installed with the conda command.
    If PyTorch is installed via conda while the other packages are installed via pip, the error above can occur.

    In that case, uninstall torch with the conda command and reinstall it with pip.

    Module-not-found problems often come from mixing up whether you installed something with pip or with conda.
    Here we use pip throughout, but it is a good habit to always keep track of which command you used to install a package.

    Links

    Anaconda
    CUDA
    PyTorch
    YOLOv5 GitHub
    YOLO homepage

    Bonus

    For those who aren’t sure which computer to buy, I’ve started offering PC purchase consultations on Coconala!

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

    I often pick out computers and give advice, and many friends have told me I could make money doing PC consultations.
    That inspired me to give it a try!

    I’ll recommend a machine based on what you plan to use it for and your budget.
    In particular, I’ve chosen and used many computers for machine learning.

    And if you’d like, I can also advise you on what to look for the next time you buy a computer.

    Computers I’ve picked out so far include analysis machines for the lab, everyday machines, PCs for game streaming, PCs for incoming university students, CAD-capable PCs for architecture students, and simple all-purpose machines.

    I use both Mac and Windows, so I can discuss and recommend either!

    Please give it a try!

  • How to Install labelImg [Updated December 2022]

    How to Install labelImg [Updated December 2022]

    When doing object clustering, you may sometimes want to use your own trained model rather than just the models that already exist.

    YOLO is a well-known tool for object clustering, and labelImg (written LABELIMG in capitals) is extremely useful when creating the training data for it.

    Here I introduce how to install labelImg.

    Environment

    OS: Windows 10 (it also worked on macOS Monterey)
    Python: 3.9.7 (3.6 or later)

    How to install

    I recommend creating a virtual environment with Anaconda and installing it there.
    That way you can install it without affecting your other environments.

    The name of the virtual environment can be anything as long as you can recognize it, but here we will use “labelimg_env”.
    Run the following command in the Anaconda prompt.

    conda create -n labelimg_env python=3.9

    Here I am installing with Python 3.9, but any version from 3.6 onward should be fine.

    Next, update pip and setuptools.
    Doing this should prevent mysterious errors (probably).

    python -m pip install --upgrade pip setuptools

    Then install labelImg.

    pip install labelImg

    You can check whether it was installed with the following command.

    pip list

    If labelImg appears in the list, the installation was successful.

    Launching

    First, activate the virtual environment.

    conda activate labelimg_env

    Then launch labelImg.

    labelImg

    If a separate window opens, you’re all set!!

    Afterword

    LabelImg’s GUI is built with PyQt5.
    The reason Python 3.6 or later is preferable is that the current version of PyQt5 requires Python 3.6 or later.

    In general, the latest version should work fine.

  • How to Install Python Video Annotator

    How to Install Python Video Annotator

    What is Python Video Annotator?

    Python Video Annotator is an application that lets you analyze recorded videos and annotate events within them along a timeline.

    Researchers in neuroscience and ethology can use it to record videos of animals and then analyze and quantify their behavior.
    For example, suppose you are recording mouse behavior and want to score events such as tongue extension, tail flicks, or ear movements.
    When does each event occur in the video, and how long does it last?
    Watching the video and logging everything in Excel each time quickly becomes overwhelming when you have defined many behaviors.
    With a tool like this, you can annotate the video directly and export the timing and event information.

    There used to be an open-source application for scoring animal behavior called VCode.
    The problem, however, is that it no longer runs on current computer operating systems.

    Python Video Annotator runs on modern PCs, retains the features you need, and can additionally be combined with external sensor data (such as pressure gauges) and behavior quantification tools like DeepLabCut, making it a very useful tool for researchers.

    How to install

    The official site describes the installation procedure in detail, but I could not get it to install properly on my machine. (Installing it directly may have caused conflicts with packages already present on my system.)
    So instead I followed the approach described on the GitHub page: building a virtual environment with Anaconda and installing there.

    It sounds complicated when written out, but the steps are actually very simple.
    As of now (October 20, 2021) it does not appear to support the latest macOS (Big Sur 11.6), though this will likely be fixed soon.
    For that reason, I will use Windows as the example here.

    That said, once you have installed Anaconda on macOS and can use the conda command, the steps are essentially the same, so please refer to this guide once support arrives. (For details, see my previous post.)

    Install Anaconda and open the Anaconda Prompt.
    Then create a virtual environment and activate it.

    conda create -n videoannotator python=3.6
    conda activate videoannotator

    Next, install the required packages.

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

    Then install Python Video Annotator.

    pip install python-video-annotator

    Once the various processes finish, the installation is complete.

    To launch it, activate the virtual environment first, then run the command.

    conda activate videoannotator
    start-video-annotator

    If the software starts up, you are all set.

  • Arithmetic Operations in Bonsai

    Arithmetic Operations in Bonsai

    Bonsai is widely used for designing experiments in neuroscience and other fields.
    With Bonsai you can build sophisticated programs without writing code, and run them with precise synchronization.

    Because it is so simple, however, operations that would be trivial in ordinary programming—such as basic arithmetic—have to be done in a somewhat unintuitive way.
    Here I explain how to perform arithmetic in Bonsai, using MouseMove as an example.

    Below is what these arithmetic operations actually look like: from top to bottom, addition, subtraction, multiplication, and division.

    For clarity, I used the X and Y values of MouseMove as the example here.
    In practice, though, you can perform calculations on values obtained from other sensors as well.

    The key point in Bonsai is that, before performing an operation, you need to combine the two values using “Zip”.

    The contents of “Zip” take the form (value 1, value 2); its role is to bundle the two values at that moment into one.
    Each operation then computes on value 1 and value 2 accordingly.

    This is hard to explain in words, so try to get a rough intuition for it.
    Without “Zip”, the program would not know which value to multiply with which, so the calculation could not be performed. That is why the X and Y values must first be combined so that they correspond to each other.

    The names of the operators for each arithmetic operation are listed below.

    • Addition => Add
    • Subtraction => Subtract
    • Multiplication => Multiply
    • Division => Divide

    I have posted a demonstration below, so please take a look.

    <Example in action>

  • Batch Image Processing with ImageJ (Fiji)

    In biological research, samples such as antibody-stained preparations are often imaged with a confocal laser scanning microscope.

    Here I explain how to use ImageJ to turn that imaging data into a stack, and how to merge images acquired at different wavelengths.
    I’ll finish by showing how to add a scale bar.

    First, in confocal laser scanning microscopy you obtain, for each single slice, images acquired at different wavelengths (i.e., with different lasers), and these slices span the thickness of the sample along the z axis.

    Combining images of different wavelengths taken at the same z position is called merging here, while combining images along the z axis is called stacking.
    ImageJ uses these terms in the same sense, so keep in mind what you actually want to do as you work.

    I’ll be using Fiji here, but the procedure is essentially the same in ImageJ.
    I use Fiji because it can open confocal microscope image data without any format conversion.

    For this example I used a confocal image of a fly from flylight.
    The image used as an example

    As you can see from the files available on that site, confocal images are saved in manufacturer-specific formats such as *.lsm, and these files contain a variety of metadata.
    This includes scale information, so you can add an accurate scale bar without having to look up the microscope’s scale yourself.

    First, open Fiji and drag your imaging data onto the menu-bar-like window that appears.

    Once it opens, a new window will appear showing something black or green.
    This is your current working window.
    You can move along the z axis using the scroll bar at the bottom.

    Merge the images via Image<Color<Make Composite in the top menu.
    Then open the Channels Tool via Image<Color<Channels Tool.

    In the Channels Tool, you can toggle the display of each channel using its checkbox.

    To stack the images, click Image<Stacks<Z project and the images will be stacked.
    Unless you have a particular preference, set Projection Type to Sum Slices.
    A new window will then open showing the stacked image.

    The Channels Tool works here as well, so you can view the stacked image for each channel.

    You can add a scale bar via Analyze<Tools<Scale Bar.
    Change the “Width in ○○:” value to set the length you want.

    To save the processed image, use File<Save as and choose the file format.
    For some reason the image comes out washed out in Tiff, so I recommend PNG or JPEG.

    And here is the finished image.

    You can find Fiji here.

  • How to Install DeepLabCut 2.3 [Updated December 2023]

    How to Install DeepLabCut 2.3 [Updated December 2023]

    In this post, I’ll walk through how to install DeepLabCut.

    Reference sites
    ・Japanese-language sites
    https://qiita.com/auditorycortex/items/1b3a55101cddf09553b2
    ↑Very clear. Following this should get you through just fine.

    https://note.com/sakulab/n/n9caeb32d74d6
    ↑Includes screenshots

    ・DeepLabCut homepage
    ・GitHub

    Installation

    Environment
    ・Windows 10
    ・Verified on NVIDIA 2060 SUPER, NVIDIA 1080 Ti, and NVIDIA 3080
    (did not work on NVIDIA 1060 SUPER)
    ・DeepLabCut 2.1
    ・NVIDIA Driver, latest version
    ・Anaconda3
    ・Python 3.8
    ・CUDA 11.8
    ・tensorflow-gpu 2.5

    Steps
    First, download the master files from the GitHub page.

    You can download them via “Download ZIP” under Code.

    Next, download and install the Windows 10 64-bit version from the Anaconda website.

    Install the NVIDIA driver. (Skip this step if it is already installed.)

    Scroll down on the DeepLabCut website, click “DOWNLOAS CONDA FILE” on the right,
    and download DEEPLABCUT.yaml.

    Create a DeepLabCut folder somewhere on your PC (the Desktop or a directory on the C drive is recommended), and make an “environment” folder inside it.
    Then place the DEEPLABCUT.yaml file you just downloaded into that folder.
    This is just personal preference, but I like to keep environment files in one fixed location, so this is how I do it.

    Launch Anaconda Prompt as an administrator. (A terminal-like window full of white text on black, similar to Command Prompt, will appear.)
    Anaconda Prompt is installed together with Anaconda, so you should be able to find it in your list of installed programs.

    Now build a virtual environment using the DEEPLABCUT.yaml file you downloaded.
    In Anaconda Prompt, enter

    conda env create -f C:(DLC-GPU.yamlファイルの場所)DEEPLABCUT.yaml

    You can check the location of the DEEPLABCUT.yaml file from the file’s properties, so look it up there and enter it.

    When you run this command, various components will be downloaded.
    After that, activate the virtual environment you created.

    conda activate DEEPLABCUT

    The prompt should change from (base) to (DEEPLABCUT).
    If you get that far, you’re good for now.

    Next, install CUDA and cuDNN.

    conda install -c conda-forge cudnn

    This will download suitable versions of the CUDA toolkit and cuDNN for you.

    Then enter the following four commands to complete the installation.

    pip install numpy
    pip install deeplabcut
    pip install imgaug
    pip install torch

    Update DeepLabCut, and the installation is complete.

    pip install --upgrade deeplabcut

    Once you’ve made it this far, try launching it.

    conda activate DEEPLABCUT
    python -m deeplabcut

    Entering this will launch the DeepLabCut GUI.

    What to do when DeepLabCut won’t run on the GPU

    Sometimes you start training and think, “Huh? Isn’t this slow?”
    That’s because DeepLabCut is running on the CPU when you intended it to run on the GPU.

    A common cause is a version mismatch among CUDA, cuDNN, and tensorflow.

    Packages like tensorflow keep getting updated to newer versions,
    so things occasionally stop working.

    For the latest version information, please check DeepLabCut’s GitHub.

    That covers the installation process.
    In upcoming posts, I plan to explain how to use it.

    Bonus

    For those who aren’t sure which computer to buy, I’ve started offering PC purchase consultations on Coconala!

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

    I often pick out computers and give advice on them, and many friends have told me I could make money doing PC consultations.
    That inspired me to give it a try!

    I’ll recommend a purchase that fits how you plan to use the computer and your budget.
    In particular, I’ve chosen and used a lot of computers for machine learning.

    And if you’d like, I can also advise you on what to look for the next time you buy a computer.

    Computers I’ve helped select include analysis machines for research labs, everyday-use PCs, PCs for game streaming, PCs for incoming university students, CAD-capable PCs for architecture students, and simple stopgap machines.

    I use both Mac and Windows, so I can discuss and recommend either one!

    Please feel free to make use of it.

    Addendum 1

    I’ve also written an article on how to install “SLEAP,” another behavior tracking tool like DeepLabCut.

    SLEAP is every bit as capable as DeepLabCut, so please give it a try.

  • DeepLabCut: A Deep Learning-Based Behavior Analysis Tool

    DeepLabCut: A Deep Learning-Based Behavior Analysis Tool

    (The image above links to the paper.)

    Behavioral analysis is a crucial experimental approach in biology, and accurate quantification of behavior is especially indispensable for understanding the brain.

    Traditionally, high-accuracy pose estimation has been achieved by attaching markers (such as sensors) to the subject (a person or a laboratory animal).
    However, sensors are a nuisance to the subject, and they can alter behavior or place constraints on it.

    One marker-free alternative is to apply a skeleton model, but developing such a model is time-consuming and has to be done on a large scale.
    There are also systems that estimate pose directly from images, but these generate enormous amounts of data, which again makes them very difficult for a single laboratory to run given equipment requirements.

    With DeepLabCut, anyone with just a single computer can perform pose estimation, and do so very easily.
    Using image recognition based on deep learning, it works marker-free and can recognize and track whatever body parts you choose.

    Because the labeling is done by deep learning, you can analyze recorded videos without having to correct them beforehand.
    In other words, tracking works even if the lighting across the field you want to analyze is uneven, or if the image is somewhat distorted depending on the viewing angle.

    The page of the laboratory that developed DeepLabCut is here.
    The GitHub repository is here.

    From actually using DeepLabCut, I found that the computer used for analysis needs a GPU (graphics card) with at least 8 GB of memory.
    Among gaming PC GPUs, that means a mid- to high-end card, so comfortable analysis is not possible on an everyday laptop.

    That said, even without such a high-spec machine, you can use Google Colab to access a virtual GPU and run the analysis.
    I haven’t tried it myself yet, though.

    In actual analyses, I found the plotting accuracy to be very high.
    However, it often fails when the background differs from that of the training data, so I felt it is best to prepare training data that closely matches the environment you actually want to analyze.

    The paper showed that plotting accuracy improves when you label not only the few points you are interested in, but also the overall body—for example, a rough skeleton of the subject—even if those points are not used in the analysis.
    Also, if the results are unsatisfactory after training and analysis, you can remove the problematic frames or add new training datasets, allowing you to actively improve the model.

    DeepLabCut itself is very user-friendly and easy for anyone to use.
    Why not give it a try in your own analyses?

    I’d like to write about installing and using DeepLabCut in future posts.