Giter VIP home page Giter VIP logo

acme's Introduction

ACME DOI

Description

This repository contains the code and documentation to implement ACME (Automatic Cell Migration Examination):

ACME: Automatic feature extraction for Cell Migration Examination through intravital microscopy imaging,
Miguel Molina-Moreno, Iván González-Díaz, Georgiana Crainiciuc, Miguel Palomino-Segura, Jon Sicilia, Andrés Hidalgo and Fernando Díaz-de-María
Medical Image Analysis, 77, https://doi.org/10.1016/j.media.2022.102358, 2022. 
Behavioral immune landscapes of inflammation,
Georgiana Crainiciuc, Miguel Palomino-Segura, Miguel Molina-Moreno, Jon Sicilia and others.
Nature, vol. 601, no. 7893, 415–421, https://doi.org/10.1038/s41586-021-04263-y, 2022.

This code is partly based on the implementations of U-Net 3D and PhagoSight.

License

ACME code is released under the GNU GPLv3 License (refer to the LICENSE and COPYING files for details).

Citing ACME

If you find ACME useful in your research, please consider citing:

@ARTICLE{acme,
	title = {ACME: Automatic feature extraction for cell migration examination through intravital microscopy imaging},
	journal = {Medical Image Analysis},
	volume = {77},
	pages = {102358},
	year = {2022},
	issn = {1361-8415},
	doi = {https://doi.org/10.1016/j.media.2022.102358},
	url = {https://www.sciencedirect.com/science/article/pii/S1361841522000111},
	author = {Miguel Molina-Moreno and Iván González-Díaz and Jon Sicilia and Georgiana Crainiciuc and Miguel Palomino-Segura and Andrés Hidalgo and Fernando Díaz-de-María}
}

@ARTICLE{behavioral,
	author = {Georgiana Crainiciuc and Miguel Palomino-Segura and Miguel Molina-Moreno and Jon Sicilia and others},
	title = {Behavioral immune landscapes of inflammation},
	journal = {Nature},
	year = {2021},
	volume={601},
	number={7893},
	pages={415-421},
	doi={https://doi.org/10.1038/s41586-021-04263-y},
	ISSN={1476-4687}
}

Requirements

ACME is implemented to not require any additional modules. MATLAB code has been developed with the R2017b version. The Python code has been tested with Pytorch 1.3.1, torchvision 0.4.2 and CUDA 10.1.

Before executing the Python code, it is necessary to compile the functions in custom_extensions folder, through the setup_roi_align.py script, with the CUDA_HOME environment variable pointing to your CUDA installation.

Demo

We describe the pipeline of execution of the code below.

  1. First, the matlab/config.m script contains different configurable parameters for the experiment: venule and cell channels, group denomination, voxel size, etc. and the different modules of the system.
  2. Once the parameters are set and the sequences are stored in the corresponding folder, the matlab/extract_data.m must be used to store each 3D temporal volume of the 4D sequence (in .mat format) in the directory data/annotation, to facilitate the annotation of the volumes (if you want to test how the segmentation and tracking process is working with your samples you can annotate your own volumes).
  3. Now, the matlab/generate_database.m script can be used to generate the database folder with the volumes that will be used as inputs to the 3D Joint Segmentation Module.
  4. The data are prepared for the inference process. This is done by the python/detection_inference.py function. The inference results are stored in the database folder.
  5. After this step, we return to MATLAB implementation to process the ACME segmentations with the script matlab/process_ACME_segmentations, which accumulates the cell and blood vessel segmentations per capture and performs the 3D three-pass tracking. At this point of the pipeline you can print the images (see the matlab/config.m JPEG variable) in the database/jpgs_results.
  6. The next step consists of extracting the instantaneous and dynamic features with the extract_instantaneous_features.m and the extract_dynamic_features.m scripts, respectively.
  7. The pipeline of cell detection ends with the matlab/cell_selection_module.m script. From the extracted features, it applies the trained classifier to detect those cells that are well segmented (in terms of the fixed precision level), see matlab/config.m file.
  8. Finally, the hierarchical explainability module (hierarchical_explainability.m) detects the behaviors, builds the hierarchy from them and offers the most relevant features for each partition of the hierarchy (there are configurable parameters in config.m). In addition, the python/visualization.py function is able to arrange the data in t-SNE or UMAP plots for a better understanding.

The reported performance of each module for our scenario is presented below:

Component Precision (%) Recall (%) IoU (blood vessel) (%)
3D Joint Segmentation module 67.13 78.46 88.09
3D three-pass Tracking module 66.45 75.67 88.09
Cell detection module 95.28 30.48 88.09

Installation

To start using ACME, download and unzip this repository.

git clone https://github.com/miguel55/ACME

More info

See doc\doc.tex for more details.

acme's People

Contributors

miguel55 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

acme's Issues

The setup_roi_align.py program seems to be missing the required files.

Hello, I have encountered a problem in the process of using your program.
While compiling the functions in the custom_extensions folder through the setup_roi_align.py script, The setup_roi_align.py program needs the dist folder in the custom_extensions/roi_align/2D and custom_extensions/roi_align/3D folders, And files with a.whl suffix in the dist folder.
But I haven't found any of that so far.

detection_inference.py

Hi!

Maybe you can help me again by generating the results_test.mat file in Step 4 that is needed in the further proceedings.
By executing detection_inference.py I need to import several libraries. However, importing roi_al_extension and roi_al_extension_3D fails, and I don't know where to download this extension and how I can add it to python.

Best wishes and thank you in advance :)

Problems with the execution of "generate_database.m"

I'm trying to do the demo process and have two questions:

  • in step 3 I have the following issue:

generate_database
Array indices must be positive integers or logical values.
Error in generate_database (line 15)
name=[aux{end-1},'',aux{end},'',d2(j).name];

The error refers to the method aux{end-1}.

I'm using Matlab 2022a, could this be the problem?

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.