Command line#

Running just omnipose in the command line interface will launch the GUI. I have left training new models - done exclusively via CLI - to its own page. The rest of this page refers to evaluation on the command line.

The command line allows batch processing and easy integration into downstream analysis pipelines like SuperSegger, Morphometrics, MicrobeJ, CellTool, and many others (any program that takes images and labels in directories). See Settings for an introduction to the settings. The command line interface accepts parameters from cellpose_omni.models for evaluation and from cellpose_omni.io for finding files and saving output.

How to segment images using CLI#

Note

omnipose or python -m omnipose is equivalent to python -m cellpose --omni, as our fork of Cellpose still provides the main framework for running Omnipose.

Run omnipose [arguments] and specify the arguments as follows. For instance, to run on a folder with images where cytoplasm is green and nucleus is blue and save the output as a png (using default diameter 30):

omnipose --dir <img_dir> --pretrained_model cyto –-chan 2 --chan2 3 --save_png

To do the same segmentation as in mono_channel_bact.ipynb, and save TIF masks (this turns off cp_output PNGs) to folders along with flows and outlines, run:

omnipose --dir <img_dir> –-use_gpu --pretrained_model bact_phase_omni \
         –-save_flows  –-save_outlines --save_tif –-in_folders

Rescaling for the *bact* models is disabled by default, but setting a diameter with the --diameter flag will rescale relative to 30px (e.g. --diameter 15 would double the image in x and y before running the network).

Warning

The path given to --dir must be an absolute path.

Recommendations#

There are some optional settings you should consider:

–-dir_above –-in_folders –-save_tifs –-save_flows –-save_outlines –-save_ncolor –-no_npy

The --no_npy command just gets rid of the .npy output that many users do not need. --save_tifs, as an alternative to --save_pngs, does not save the four-panel plot output (that can take up a lot of space). Personally, I prefer to use --save_outlines when I want a whole folder of easy-to-visualize segmentation results and --save_flows when I want to debug them. These are also nice to have for making GIFs of cell growth, for example. --save_ncolor is handy for exporting N-color masks that are easier to edit by hand - but it is the 1-channel version, no RGB colormap applied (which is what you want for editing in Photoshop).

Most of all, --in_folders is something I always use so that these various outputs do not clutter up the image directory (/image01.png, /image01_masks.tif, /image01_flows.tif…) and instead dumps all the masks into a /masks folder, flows into flows, N-color masks into /ncolor, outlines into /outlines, and so on. Without the --dir_above command, these are inside the image directory. --dir_above will put those folders one directory above, parallel to the image directory, which is what I like and what SuperSegger expects.

flow_threshold 0 is a very good idea if you have a lot of large images and do not need that cleanup step. Settings like --mask_threshold 0.3 (0 is the default) can also be relevant. The GUI will automatically generate the parameters you need to recapitulate your results in CLI (just in notebook formatting for now - you will need to format those parameters according to these examples).

All options#

You can print out the full list of features with omnipose -h. There are a lot of them, but with Omnipose we organized them into categories. See CLI to browse a bit easier. As demonstrated above, input image arguments and output arguments are the most relevant. See SuperSegger-Omnipose for an example of how to use these options to integrate Omnipose as a segmentation backend.