Morphological profiling using deep learning
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Build Status codecov Requirements Status CII Best Practices CometML


Morphological profiling using deep learning


This project provides tools and APIs to manipulate high-throughput images for deep learning. The dataset tools are the only ones currently implemented. This project only supports Python 3.


All of the following commands require the --root flag to be set to the root project directory. They also require a configuration file to be present (excluding the setup command). The commands use the following syntax:

    python deepprofiler --root=[project root] [command] [command flags]

Additionally, the --config flag can be used to manually specify a configuration file not in the config directory. See the project Wiki for documentation on configuration files.

Setting up the project directory

The project directory can be set up automatically from a specified root directory:

    python deepprofiler --root=[project root] setup

A configuration file is not necessary for this step, but you can specify one with the --config flag after deepprofiler if you want to use existing directories.

Preparing the dataset

The dataset can be optionally preprocessed with illumination correction and compression, as specified in the configuration file, with one command:

    python deepprofiler --root=[project root] prepare

Training the model

To train your model on the dataset:

    python deepprofiler --root=[project root] train

You may optionally specify the --epoch and --seed flags after train, to set the current epoch or the random seed.

Extracting features

To extract single-cell features for profiling:

    python deepprofiler --root=[project root] profile

You will need to specify the name of the model checkpoint to use in the configuration file.

Hyperparameter optimization

Optionally, you may run DeepProfiler's hyperparameter optimization feature (which uses GPyOpt) to find optimal values for your model's hyperparameters:

    python deepprofiler --root=[project root] optimize

This may take a while as it will train a model for the number of epochs specified for each step in the process. It is recommended to decrease the epochs and steps to manageable values when running this command.