Giter VIP home page Giter VIP logo

hcs-aggrequant's Introduction

aSynAggreCount

A codebase for automated analysis of High Content Screens.

The input image-data are assumed to be generated from High Content Screen plates, with multiple fields of view acquired per well, and 3 channels recorded per field, corresponding to nuclei, cells, and aggregates. For a 384-well plate with 9 fields per well, 10'368 images are acquired in total per plate which are processed by the aSynAggreCount package to quantify aggregate-positive cells. For each image, aSynAggreCount performs image pre-processing to correct for the presence of uneven illumination and digitization noise, then performs segmentation of the structures of interest (nuclei, cells, aggregates), and finally applies co-localization analysis to characterize the presence of aggregates inside cells. An illustration of the image processing pipeline is shown below.

The segmentation of nuclei and cells is performed with pre-trained Deep Learning models (see section Modules below). Aggregates are segmented using a sequence of conventional image processing filters, calibrated for the datasets of our study. An illustration of the segmentation quality is shown in the figure below where white lines correspond to the segmentation and blue to the original image intensities for nuclei (A), cells (B) and aggregates (C).

aSynAggreCount utilizes the segmented data to perform co-localization analysis and characterize aggregate inclusions in cells by computing various quantities of interest (QoI), such as the percentage of aggregate-positive cells and the number of detected aggregates per cell. The figure below shows a visualization of these QoI.

Installation

Conda environment

Create and activate a new conda environment

conda create --name aSynAggreCount python=3.9.18
conda activate aSynAggreCount

Tensorflow

# For GPU users:
pip install --extra-index-url https://pypi.nvidia.com tensorrt-bindings==8.6.1 tensorrt-libs==8.6.1
pip install -U tensorflow[and-cuda]
# Verification of the installation:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

StarDist

pip install stardist

Cellpose 2.0 with GUI

pip install cellpose[gui]

Additional python packages

The following packages are required to run the code: scikit-image matplotlib click pytest pyyaml pandas plotly kaleido.
They can be installed as follows:

pip install -r requirements_XXX.txt

where XXX is the file suffix corresponding to your OS: requirements_Ubuntu22.04.txt or requirements_MaxOSX.txt.

Modules

Nuclei segmentation

Nuclei are segmented using the StarDist pre-trained deep neural network.
Note: Results improve if Background Equalization is done before segmentation.

Cell membrane segmentation

Two methods are implemented to segment cells:

  • The Cellpose pre-trained deep neural network.
  • The distance-intensity algorithm, inspired by CellProfiler's Propagation method.
    • Identifies cell boundary as a Secondary object.
    • Uses primary objects seeds.
    • Secondary objects are identified based on the shortest path to an adjacent primary object.
    • The distance metric is a sum of the absolute differences in a 3x3 (8-connected) kernel.
    • The dividing lines between secondary objects are determined by a combination of: the distance to the nearest primary object, and intensity gradients.

Aggregate segmentation

Aggregates are segmented through a sequence of conventional Image Processing filters, with their parameters calibrated to our data.

Usage

Parameter adjustment:
Before running the analysis on your data you need to first adjust the image segmentation parameters, inside the user configuration file: applications/setup.yml.

Run:
After adjusting the contents of applications/setup.yml to your data, run the analysis as follows:

python main.py

Authors

The code is developed by Athena Economides. The corresponding publication is in preparation.

If you are interested to use this code for your analysis, please contact via email.

Athena Economides, PhD
Lab of Prof. Adriano Aguzzi
Institute of Neuropathology
University of Zurich
Schmelzbergstrasse 12
CH-8091 Zurich
Switzerland

hcs-aggrequant's People

Contributors

aecon avatar

Stargazers

Alexandros Economides avatar  avatar

Watchers

 avatar  avatar Aristotelis Economides avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.