Score cells for centrioles in IF data
Project description
CenFind
A command line interface to score cells for centrioles.
Introduction
cenfind
is a command line interface to detect and assign centrioles in immunofluorescence images of human cells. Specifically, it orchestrates:
- the z-max projection of the raw files;
- the detection of centrioles;
- the detection of the nuclei;
- the assignment of the centrioles to the nearest nucleus.
Installation
- Install python via pyenv
- Download and set up 3.9.5 as local version
- Set up Python interpreter
pyenv local 3.9.5
pyenv global 3.9.5
- Create a virtual environment for CenFind
python -m venv venv-cenfind
source venv-cenfind/bin/activate
- Check that
cenfind
's programs are correctly installed by running:
cenfind squash --help
Basic usage
Before scoring the cells, you need to prepare the dataset folder.
cenfind
assumes a fixed folder structure.
In the following we will assume that the .ome.tif files are all immediately in raw/.
Each file is a z-stack field of view (referred to as field, in the following) containing 4 channels (0, 1, 2, 3). The channel 0 contains the nuclei and the channels 1-3 contains centriolar markers.
<project_name>/
└── raw/
- Run
prepare
to initialise the folder with a list of channels and output folders:
cenfind prepare /path/to/dataset <list channels of centrioles, like 1 2 3, (if 0 is the nucleus channel)>
- Run
squash
with the path to the project folder and the suffix of the raw files.projections/
is populated with the max-projections*_max.tif
files.
cenfind squash path/to/dataset
- Run
score
with the arguments source, the index of the nuclei channel (usually 0 or 3), the channel to score and the path to the model. You need to download it from https://figshare.com/articles/software/Cenfind_model_weights/21724421
cenfind score /path/to/dataset /path/to/model/ 0 1 2 3 --projection_suffix '_max'
- Check that the predictions are satisfactory by looking at the folders
visualisation/
andstatistics/
Internal API
cenfind
consists of two core classes: Dataset
and Field
.
A Dataset
represents a collection of related fields, i.e., same pixel size, same channels, same cell type.
It should:
- return the name
- iterate over the fields,
- construct the file name for the projections and the z-stacks
- read the fields.txt
- write the fields.txt file
- set up the folders projections, predictions, visualisations and statistics
- set and get the splits
A Field
represents a field of view and should:
- construct file names for projections, annotation
- get Dataset
- load the projection as np.ndarray
- load the channel as np.ndarray
- load annotation as np.ndarray
- load mask as np.ndarray
Using those two objects, cenfind
should
- detect centrioles (data, model) => points,
- extract nuclei (data, model) => contours,
- assign centrioles to nuclei (contours, points) => pairs
- outline centrioles and nuclei (data, points) => image
- create composite vignettes (data) => composite_image
- flag partial nuclei (contours, tolerance) => contours
- compare predictions with annotation (points, points) => metrics_namespace
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.