All Projects → MouseLand → Suite2p

MouseLand / Suite2p

Licence: gpl-3.0
cell detection in calcium imaging recordings

Projects that are alternatives of or similar to Suite2p

Analyzing neural time series
python implementations of Analyzing Neural Time Series Textbook
Stars: ✭ 117 (-23.53%)
Mutual labels:  jupyter-notebook, neuroscience
Deeptime
Deep learning meets molecular dynamics.
Stars: ✭ 123 (-19.61%)
Mutual labels:  jupyter-notebook, data-analysis
Pandas Videos
Jupyter notebook and datasets from the pandas Q&A video series
Stars: ✭ 1,716 (+1021.57%)
Mutual labels:  jupyter-notebook, data-analysis
Course Content
NMA Computational Neuroscience course
Stars: ✭ 2,082 (+1260.78%)
Mutual labels:  jupyter-notebook, neuroscience
Data Analysis
主要是爬虫与数据分析项目总结,外加建模与机器学习,模型的评估。
Stars: ✭ 142 (-7.19%)
Mutual labels:  jupyter-notebook, data-analysis
Seaborn Tutorial
This repository is my attempt to help Data Science aspirants gain necessary Data Visualization skills required to progress in their career. It includes all the types of plot offered by Seaborn, applied on random datasets.
Stars: ✭ 114 (-25.49%)
Mutual labels:  jupyter-notebook, data-analysis
Datasist
A Python library for easy data analysis, visualization, exploration and modeling
Stars: ✭ 123 (-19.61%)
Mutual labels:  jupyter-notebook, data-analysis
Ml Da Coursera Yandex Mipt
Machine Learning and Data Analysis Coursera Specialization from Yandex and MIPT
Stars: ✭ 108 (-29.41%)
Mutual labels:  jupyter-notebook, data-analysis
Youtube Like Predictor
YouTube Like Count Predictions using Machine Learning
Stars: ✭ 137 (-10.46%)
Mutual labels:  jupyter-notebook, data-analysis
Bcs workshop apr 20
Workshop on basic machine learning, computational modeling, psychophysics, basic data analysis and experiment design
Stars: ✭ 134 (-12.42%)
Mutual labels:  jupyter-notebook, data-analysis
Pythondata
repo for code published on pythondata.com
Stars: ✭ 113 (-26.14%)
Mutual labels:  jupyter-notebook, data-analysis
Data Science Portfolio
A Portfolio of my Data Science Projects
Stars: ✭ 149 (-2.61%)
Mutual labels:  jupyter-notebook, data-analysis
Loandefault Prediction
Lending Club Loan data analysis
Stars: ✭ 113 (-26.14%)
Mutual labels:  jupyter-notebook, data-analysis
Dat8
General Assembly's 2015 Data Science course in Washington, DC
Stars: ✭ 1,516 (+890.85%)
Mutual labels:  jupyter-notebook, data-analysis
Spark R Notebooks
R on Apache Spark (SparkR) tutorials for Big Data analysis and Machine Learning as IPython / Jupyter notebooks
Stars: ✭ 109 (-28.76%)
Mutual labels:  jupyter-notebook, data-analysis
Pbpython
Code, Notebooks and Examples from Practical Business Python
Stars: ✭ 1,724 (+1026.8%)
Mutual labels:  jupyter-notebook, data-analysis
Deepeeg
Deep Learning with Tensor Flow for EEG MNE Epoch Objects
Stars: ✭ 100 (-34.64%)
Mutual labels:  jupyter-notebook, neuroscience
100 Pandas Puzzles
100 data puzzles for pandas, ranging from short and simple to super tricky (60% complete)
Stars: ✭ 1,382 (+803.27%)
Mutual labels:  jupyter-notebook, data-analysis
Real Time Sentiment Tracking On Twitter For Brand Improvement And Trend Recognition
A real-time interactive web app based on data pipelines using streaming Twitter data, automated sentiment analysis, and MySQL&PostgreSQL database (Deployed on Heroku)
Stars: ✭ 127 (-16.99%)
Mutual labels:  jupyter-notebook, data-analysis
Machine learning for good
Machine learning fundamentals lesson in interactive notebooks
Stars: ✭ 142 (-7.19%)
Mutual labels:  jupyter-notebook, data-analysis

suite2p sweet two pea

Documentation Status Build Status Coverage Status PyPI version PyPI - Downloads Python version Licence: GPL v3 Contributors website repo size GitHub stars GitHub forks

Pipeline for processing two-photon calcium imaging data.
Copyright (C) 2018 Howard Hughes Medical Institute Janelia Research Campus

suite2p includes the following modules:

  • Registration
  • Cell detection
  • Spike detection
  • Visualization GUI

This code was written by Carsen Stringer and Marius Pachitariu.
For support, please open an issue. The reference paper is here.
The deconvolution algorithm is based on this paper, with settings based on this paper.

See this twitter thread for GUI demonstrations.

The matlab version is available here. Note that the algorithm is older and will not work as well on non-circular ROIs.

Lectures on how suite2p works are available here.

Read the Documentation at https://suite2p.readthedocs.io/

Installation

Install an Anaconda distribution of Python -- Choose Python 3.x and your operating system. Note you might need to use an anaconda prompt if you did not add anaconda to the path.

  1. Download the environment.yml file from the repository. You can do this by cloning the repository, or copy-pasting the text from the file into a text document on your local computer.
  2. Open an anaconda prompt / command prompt with conda for python 3 in the path
  3. Change directories to where the environment.yml is and run conda env create -f environment.yml
  4. Activate the environment with conda activate suite2p
  5. Now run python -m suite2p and you're all set.
  6. Running the command suite2p --version in the terminal will print the install version of suite2p.

If you have an older suite2p environment you can remove it with conda env remove -n suite2p before creating a new one.

Note you will always have to run conda activate suite2p before you run suite2p. Conda ensures mkl_fft and numba run correctly and quickly on your machine. If you want to run jupyter notebooks in this environment, then also conda install jupyter.

To upgrade the suite2p (package here), run the following in the environment:

pip install --upgrade suite2p

Common issues

If you are on Yosemite Mac OS, PyQt doesn't work, and you won't be able to install suite2p. More recent versions of Mac OS are fine.

The software has been heavily tested on Windows 10 and Ubuntu 18.04, and less well tested on Mac OS. Please post an issue if you have installation problems. The registration step runs faster on Ubuntu than Windows, so if you have a choice we recommend using the Ubuntu OS.

Installation of github version for developers

  1. Clone the repository and cd suite2p in an anaconda prompt / command prompt with conda for python 3 in the path
  2. Run conda env create -f environment.yml
  3. To activate this new environment, run conda activate suite2p (you will have to activate every time you want to run suite2p)
  4. Install the local version of suite2p into this environment in develop mode, with everything to get test data: pip install -e .[data]
  5. Download the data with dvc pull -r gdrive-travis (read-only access). If you need to have read/write access to the files, run dvc pull and follow the authentication instructions in the output. Note: do not commit the json credentials file that comes out afterwards, git should ignore it.
  6. Run tests: python setup.py test

Examples

An example dataset is provided here. It's a single-plane, single-channel recording.

Getting started

The quickest way to start is to open the GUI from a command line terminal. You might need to open an anaconda prompt if you did not add anaconda to the path. Make sure to run this from a directory in which you have WRITE access (suite2p saves a couple temporary files in your current directory):

suite2p

Then:

  1. File -> Run suite2p (or ctrl+r)
  2. Setup a configuration
    • -> Add directory which contains tiffs to data_path (can be multiple folders, but add them one at a time)
    • -> OR choose an h5 file which has a key with the data, data shape should be time x pixels x pixels (you can type in the key name for the data after you choose the file)
    • -> Add save_path ((otherwise the data directory is used as save path))
    • -> Add fast_disk (this is where the binary file of registered data will be created, choose an SSD for this path) ((otherwise the save path is used as the fast disk path))
    • Set some parameters (see full list below). At the minimum:
       nplanes, nchannels, tau, fs
      
  3. Press run and wait. Messages should start appearing in the embedded command line.
  4. When the run is finished, the results will open in the GUI window and there you can visualize and refine the results (see below).

Using the GUI

multiselect

suite2p output goes to a folder called "suite2p" inside your save_path, which by default is the same as the data_path. If you ran suite2p in the GUI, it loads the results automatically. Otherwise, load the results with File -> Load results.

The GUI serves two main functions:

  1. Checking the quality of the data and results.
    • there are currently several views such as the enhanced mean image, the ROI masks, the correlation map, the correlation among cells, and the ROI+neuropil traces
    • by selecting multiple cells (with "Draw selection" or ctrl+left-click), you can view the activity of multiple ROIs simultaneously in the lower plot
    • there are also population-level visualizations, such as rastermap
  2. Classify ROIs into cell / not cell (left and right views respectively)
    • the default classifier included should work well in a variety of scenarios.
    • a user-classifier can be learnt from manual curation, thus adapting to the statistics of your own data.
    • the GUI automatically saves which ROIs are good in "iscell.npy". The second column contains the probability that the ROI is a cell based on the currently loaded classifier.

Main GUI controls (works in all views):

  1. Pan = Left-Click + drag
  2. Zoom = (Scroll wheel) OR (Right-Click + drag)
  3. Full view = Double left-click OR escape key
  4. Swap cell = Right-click on the cell
  5. Select multiple cells = (Ctrl + left-click) OR (SHIFT + left-click) AND/OR ("Draw selection" button)

You can add your manual curation to a pre-built classifier by clicking "Add current data to classifier". Or you can make a brand-new classifier from a list of "iscell.npy" files that you've manually curated. The default classifier in the GUI is initialized as the suite2p classifier, but you can overwrite it by adding to it, or loading a different classifier and saving it as the default. The default classifier is used in the pipeline to produce the initial "iscell.npy" file.

Other ways to call Suite2p

  1. From the command line:
suite2p --ops <path to ops.npy> --db <path to db.npy>
  1. From Python/Jupyter
from suite2p.run_s2p import run_s2p
ops1 = run_s2p(ops, db)

See our example jupyter notebook here. It also explains how to batch-run suite2p.

Outputs

F.npy: array of fluorescence traces (ROIs by timepoints)  
Fneu.npy: array of neuropil fluorescence traces (ROIs by timepoints)  
spks.npy: array of deconvolved traces (ROIs by timepoints)  
stat.npy: array of statistics computed for each cell (ROIs by 1)  
ops.npy: options and intermediate outputs
iscell.npy: specifies whether an ROI is a cell, first column is 0/1, and second column is probability that the ROI is a cell based on the default classifier

Dependencies

suite2p relies on the following excellent packages (which are automatically installed with conda/pip if missing):

Logo

Logo was designed by Shelby Stringer and Chris Czaja.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].