Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
CURTLab authored Mar 26, 2024
1 parent c3fd1ff commit eb7cd6d
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,33 @@ NanoMito3D-Platform contains software applications for:
## NanoMito3D Application
![Thumbnail](https://raw.githubusercontent.com/CURTLab/NanoMito3D-Platform/main/thumbnail_nanomito3D.png)

### Usage
Run `NanoMito3D.exe` (with CUDA support) or `NanoMito3D_OnlyCPU.exe` (without CUDA dependencies). Select a TSF file in the `Localizations` frame and select the correct channel (if the file contains multiple channels). Select the filtering and rendering parameters and click on the "Render" button. Select the analysis parameters and the classification model in the `Mitochondrial analyzis` frame. The classification model can be a *.json file exported by OpenCV or a training *.csv file. Click on `Analyze` and then on `Classify` for a final voxel classification. The rendered volume, the filtered volume and the skeleton volume can be exported via the `File/Export` menu. The result of the segmentation can also be exported as *.csv via the `File/Export/Segmentation ...` menu. Furthermore, a screenshot of the 3D viewer can be exported as an image via `File/Export/3D Renderer ...` and the background can be changed via `Edit/Set background color ...`.

### Voxel classification results
Exact values for the percentage classification of the voxels cannot be guaranteed, but the tendency of the classification is correct. Furthermore, in the current OpenCV implementation of Random Forest, it is not possible to set a fixed seed, and different versions produce different results. To mitigate this discrepancy, a deep neural network classifier could be trained instead of Random Forest.

### NanoMito3D is based on
* [Skeletonize3D](https://imagej.net/plugins/skeletonize3d) (ImageJ Plugin)
* [AnalyzeSkeleton](https://imagej.net/plugins/analyze-skeleton) (ImageJ Plugin)
* [cuNSearch](https://github.com/InteractiveComputerGraphics/cuNSearch) (compute neighborhood information on GPU)

### Python wrapper
A python wrapper for the CUDA accelerated mitochondria segmentation and classisifcation is available in the subfolder `python`.

### Voxel classification results
Exact values for the percentage classification of the voxels cannot be guaranteed, but the tendency of the classification is correct. Furthermore, in the current OpenCV implementation of Random Forest, it is not possible to set a fixed seed, and different versions produce different results. To mitigate this discrepancy, a deep neural network classifier could be trained instead of Random Forest.
A python wrapper for the CUDA accelerated mitochondria segmentation and classisifcation is available in the subfolder `python`. Dependencies: pandas, numpy, matplotlib, cv2

## CellCounter Application
![Thumbnail](https://raw.githubusercontent.com/CURTLab/NanoMito3D-Platform/main/thumbnail_cellcounter.png)

### Usage
Run `CellCounterApp.exe` and select an image file (*.png, *.jpg, *.tif) and the correct pixel size in the `Microscopy Image` frame and click on the 'Calculate' button. The results of the detected nuclei can be adjusted by changing the threshold (0-1, how confident the model is to detect a nucleus) and the window size. The deep neural network can be modified by replacing the `CellCounterModel.onnx` (in the same directory as `CellCounterApp.exe`) and training it with the `CellCounter/train/CellCounterTrain.ipynb` notebook (Dependencies: tensorflow, numpy, matplotlib, h5py, onnx, cv2, skimage, scipy).

## BleedThroughCorrection Application
![Thumbnail](https://raw.githubusercontent.com/CURTLab/NanoMito3D-Platform/main/thumbnail_bleedthroughcorr.PNG)

# Citation
### Usage
Run `BleedThroughCorrection.exe` and select a localization file (TSF) in the `Localizations` frame. Select the channel where the bleed-through occurred and render a preview with the "Render" button. Optinally, select a single raw image file (*.tif) with json registration (e.g. OptoSplit setup, see `examples` for a json description file) or two separate image channels (e.g. dual camera setup) and click "Load". If no raw image stack is loaded, the correction algorithm only uses `Intensity`, `Background`, `PAX`, `PAY`, `PAZ`, which results in a lower accuracy (e.g. 25% compared to 80% with loaded raw image stacks). Select the `Bleed-Through Signal` and label (draw) areas with the image where the bleed through occurred. Do the same for `Correct Signals` in areas where no bleed through has occurred. Finally, click on `Correct` and `Save` to export the correct TSF file.

# Citation
Please cite our paper [Single Molecule Studies of Dynamic Platelet Interactions with Endothelial Cells](https://www.frontiersin.org/articles/10.3389/fbioe.2024.1372807), Front. Bioeng. Biotechnol., Volume 12, (2024) (DOI: [10.3389/fbioe.2024.1372807](https://www.frontiersin.org/articles/10.3389/fbioe.2024.1372807))

# 3rd-party libaries:
Expand Down

0 comments on commit eb7cd6d

Please sign in to comment.