Integrated tool to measure the shapes of adherent cells on posts.
Project description
CellML
Disclaimer: This program is undergoing active development and should not be used for production. All APIs and commands are susceptible to change without notice.
Integrated tool to segment individual cells from optical cell images and use machine learning to determine whether cells are adherent or not based on their shapes.
From a directory containing a time-series of images of cells on surfaces, the tool segments individual cells and uses a pre-trained CNN model to determine whether each cell is adherent or not.
Installation
Install with pip
CellML is on PyPI so it can be installed with pip
pip install cellml
Install from source
Clone the repository to your computer
git clone https://github.com/caromccue/CellML.git
and install with pip
cd CellML
pip install .
Usage
Quickstart
A time series of images of cells on surfaces must be stored in a directory prior to usage of CellML The application can then be used to process the images as follows:
cellml process --save-plot path/to/directory
cellml process
command
The process
command takes a directory of images, segments the cells in each image and determines how many cells are adherent or detached from the surface.
The program saves a .csv
file at the root of that directory with the name of each image, the time it was taken (from EXIF data) and the number of cells (total, adherent and detached).
Arguments
-c
,--check-segmentation
displays the result of segmenting an image (selected at approximately 80% of the time series) to verify that the segmentation algorithm works well before processing.-o
,--save-overlay
resaves all images in the directory with an overlay showing detected cells in red (adherent) or green (detached) for process control.-p
,--save-plot
generates and saves plots of cell detachment over time-v
,--verbose
increases the verbosity level
cellml segment
command
The segment
command runs the segmentation algorithm on an image or a directory of images and saves the segmented cell images to disk.
Arguments
-o
,--save-overlay
resaves all images in the directory with an overlay showing detected cells-v
,--verbose
increases the verbosity level-p
,--postsize
selects the size of microposts on the surfaces in the images to set the segmentation parameters accordingly
cellml train
command
The train
command is used to train the machine learning models used to label the segmented cells as adherent or not. A directory of training data is expected containing subdirectories named Detached
and Adherent
containing grayscale images of segmented cells (use the segment
command to generate the images).
Arguments
-m
,--model
selects the type of model to train (svm|cnn|cnn-transfer)-tb
,--tensorboard
saves logs for tensorboard visualization in<cwd>/logs
-v
,--verbose
increases the verbosity level
Repository structure
models
: pre-trained machine learning models for cell adhesion discriminationnotebooks
: jupyer notebooks evaluating different image segmentation strategiessrc
: source code for the projectcell_processing
: processing pipeline from directory to detachment ratedata
: data processing methods, including segmentation and extractionmodels
: model definition and training scripts for the cell binary labelling taskvisualization
: visualization and plotting methodscli.py
: entry point to the command line interface
tests
: unittesting
License
This project is licensed under the GPLv3 License - see the LICENSE.md file for details.
Credit
Initial models were built starting from the example at: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
Live data visualization class TrainingPlot originally from: https://github.com/kapil-varshney/utilities/blob/master/training_plot/trainingplot.py
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
File details
Details for the file cellml-0.1.1.tar.gz
.
File metadata
- Download URL: cellml-0.1.1.tar.gz
- Upload date:
- Size: 9.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.24.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.50.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c095602f99a420593d75efb0a5ec7da4988565e270efb4c7b9a732b7aa9669d4 |
|
MD5 | c96614f9f6eec9f4a6fe3b8872032e01 |
|
BLAKE2b-256 | 2c5f92271cac5406115e3a6f8fa56c33546c3164ab3e3949c2078159f4dda8f5 |