Skip to main content

anatomical segmentation algorithm

Project description

Cellpose cellpose

A generalist algorithm for cell and nucleus segmentation.

This code was written by Carsen Stringer and Marius Pachitariu. For support, please open an issue.

If you want to quickly try out Cellpose first, check out the website.

Installation

I recommend installing an Anaconda distribution of Python -- Choose Python 3.7 and your operating system. Note you might need to use an anaconda prompt if you did not add anaconda to the path. From your base environment (or you can make a new environment) in an anaconda prompt/command prompt, run

pip install cellpose

Alternatively you can use the included environment file (if you'd like a cellpose-specific environment). This is recommended - if you have problems with the pip please follow these instructions:

  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. To activate this new environment, run conda activate cellpose
  5. You should see (cellpose) on the left side of the terminal line. Now run python -m cellpose and you're all set.

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

Note you will always have to run conda activate cellpose before you run cellpose. If you want to run jupyter notebooks in this environment, then also conda install jupyter.

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

pip install cellpose --upgrade

Common issues

If you receive the error: No module named PyQt5.sip, then try uninstalling and reinstalling pyqt5

pip uninstall pyqt5 pyqt5-tools
pip install pyqt5 pyqt5-tools pyqt5.sip

If you receive an error associated with matplotlib, try upgrading it:

pip install matplotlib --upgrade

If you are on Yosemite Mac OS, PyQt doesn't work and you won't be able to use the graphical interface for cellpose. 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.

CUDA version

If you plan on running many images, you may want to install a GPU version of mxnet. Follow the instructions here.

Installation of github version

Follow steps from above to install the dependencies. In the github repository, run pip install -e . and the github version will be installed. If you want to go back to the pip version of cellpose, then say pip install cellpose.

Running cellpose

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:

python -m cellpose

You can now drag and drop any images (*.tif, *.png, *.jpg, *.gif) into the GUI and run Cellpose, and/or manually segment them. When the GUI is processing, you will see the progress bar fill up and during this time you cannot click on anything in the GUI. For more information about what the GUI is doing you can look at the terminal/prompt you opened the GUI with. For example data, See website.

For multi-channel, multi-Z tiff's, the expected format is Z x channels x Ly x Lx.

In the GUI

The GUI serves two main functions:

  1. Running the segmentation algorithm.
  2. Manually labelling data.

Main GUI mouse controls (works in all views):

  • Pan = left-click + drag
  • Zoom = scroll wheel
  • Full view = double left-click
  • Select mask = left-click on mask
  • Delete mask = Ctrl + left-click
  • Start draw mask = right-click
  • End draw mask = right-click, or return to circle at beginning

Overlaps in masks are NOT allowed. If you draw a mask on top of another mask, it is cropped so that it doesn't overlap with the old mask. Masks in 2D should be single strokes (if single stroke is checked).

!NOTE!: The GUI automatically saves after you draw a mask but NOT after segmentation. Save in the file menu or with Ctrl+S. The output file is in the same folder as the loaded image with _seg.npy appended.

Keyboard shortcuts Description
CTRL+H help
CTRL+Z undo previously drawn mask/stroke
CTRL+0 clear all masks
CTRL+L load image (can alternatively drag and drop image)
CTRL+S SAVE MASKS IN IMAGE to _seg.npy file
CTRL+P load _seg.npy file (note: it will load automatically with image if it exists)
CTRL+M load masks file (must be same size as image with 0 for NO mask, and 1,2,3... for masks)
CTRL+N load numpy stack (NOT WORKING ATM)
A/D or LEFT/RIGHT cycle through images in current directory
W/S or UP/DOWN change color (RGB/gray/red/green/blue)
PAGE-UP / PAGE-DOWN change to flows and cell prob views (if segmentation computed)
, / . increase / decrease brush size for drawing masks
X turn masks ON or OFF
Z toggle outlines ON or OFF
C cycle through labels for image type (saved to _seg.npy)

Segmentation options

SIZE: you can manually enter the approximate diameter for your cells, or press "calibrate" to let the model estimate it. The size is represented by a disk at the bottom of the view window (can turn this disk off by unchecking "scale disk on").

use GPU: if you have installed the cuda version of mxnet, then you can activate this, but it won't give huge speedups when running single images in the GUI.

MODEL: there is a cytoplasm model and a nuclei model, choose what you want to segment

CHAN TO SEG: this is the channel in which the cytoplasm or nuclei exist

CHAN2 (OPT): if cytoplasm model is chosen, then choose the nuclear channel for this option

In a notebook

TODO

Outputs

*_seg.npy files have the following fields:

  • filename : filename of image
  • img : image with chosen channels (Z x nchan x Ly x Lx)
  • masks : masks (-1 = NO masks, 0,1,2,... = mask labels)
  • colors : colors for masks
  • outlines : outlines of masks (-1 = NO outline, 0,1,2,... = outline labels)
  • chan_choose : channels that you chose in GUI (0=gray/none, 1=red, 2=green, 3=blue)
  • cell_type : string with cell_type that you chose
  • cells : int of cell_type that you chose
import numpy as np
from cellpose import plot

dat = np.load('_seg.npy', allow_pickle=True).item()

# plot image with masks overlaid
RGB = plot.mask_overlay(dat['img'][0], dat['masks'][0]+1,
                        colors=np.array(dat['colors']))

# plot image with outlines overlaid in red (can change color of outline)
RGB = plot.outline_overlay(dat['img'][0], dat['outlines'][0]+1,
                           channels=dat['chan_choose'], color=[255,0,0])

Dependencies

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cellpose-0.0.1.13.tar.gz (144.6 kB view details)

Uploaded Source

Built Distribution

cellpose-0.0.1.13-py3-none-any.whl (144.8 kB view details)

Uploaded Python 3

File details

Details for the file cellpose-0.0.1.13.tar.gz.

File metadata

  • Download URL: cellpose-0.0.1.13.tar.gz
  • Upload date:
  • Size: 144.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0.post20200106 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.6.10

File hashes

Hashes for cellpose-0.0.1.13.tar.gz
Algorithm Hash digest
SHA256 10cef3e9380865c9320e0fa3534fbcd35d9df09b18e146fed4243936a56e0669
MD5 84d1d8b7369eb49465f86c4f9b257b7a
BLAKE2b-256 566911e1804eb6f0dd67363d6b7b3144a031e94a265f2de9db8a59fc6520e8d5

See more details on using hashes here.

File details

Details for the file cellpose-0.0.1.13-py3-none-any.whl.

File metadata

  • Download URL: cellpose-0.0.1.13-py3-none-any.whl
  • Upload date:
  • Size: 144.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0.post20200106 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.6.10

File hashes

Hashes for cellpose-0.0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 0129b2948aa1a6c8c6c2e0da54b7cb3abd258bc5a32a467552775b7ee817e5b9
MD5 c9266c7f72760bd1c712b51622b1a477
BLAKE2b-256 06626887802025441bac210acd547462eab650a95c7d0d81f3f6a360ac2831cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page