Skip to content

Commit

Permalink
Merge pull request #58 from CBICA/ge-dev
Browse files Browse the repository at this point in the history
Ge dev docs changes to deploy
  • Loading branch information
AlexanderGetka-cbica authored Dec 13, 2024
2 parents 031d1ca + de285c4 commit d91a11d
Show file tree
Hide file tree
Showing 13 changed files with 287 additions and 200 deletions.
78 changes: 23 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,61 +6,29 @@ reference distributions for comparison to a broader population.

![NiChart flowchart](resources/images/NiChart_Flowchart_v2.svg)

We provide both locally deployable software and a cloud application. [NiChart cloud application](https://neuroimagingchart.com/portal), hosted via Amazon Web Services (AWS), deploys
scalable infrastructure which hosts the NiChart tools as a standard web application accessible via the user’s web browser. The cloud and desktop applications are unified at the code level through the use of the Python library [Streamlit](https://streamlit.io/). Consequently, the user experience is nearly completely identical between the cloud and desktop applications.

## Components

1. **Image Processing**: Utilizes tools like [DLMUSE](https://github.com/CBICA/NiChart_DLMUSE), [fMRIPrep](https://github.com/nipreps/fmriprep) [XCEPengine](https://github.com/PennLINC/xcp_d), and [QSIPrep](https://github.com/PennLINC/qsiprep) for effective image analytics.
2. **Reference Data Curation**: Houses ISTAGING, 70000 Scans, and 14 individual studies to provide curated reference data.
3. **Data Harmonization**: Employs [neuroharmonize](https://github.com/rpomponio/neuroHarmonize) and [Combat](https://github.com/Zheng206/ComBatFam_Pipeline) for ensuring consistent data standards.
4. **Machine Learning Models**: Provides Supervised, Semi-supervised, and DL Models for advanced neuroimaging analysis including [SpareScore](https://github.com/CBICA/spare_score).
5. **Data Visualization**: Features like Centile curves, direct image linking, and reference values for comprehensive data visualization.
6. **Deployment**: Supports open-source Github components and Docker container compatibility deployed in a local environment & [AWS Cloud](https://aws.amazon.com/).


## System Requirements

For recommended system configuration, please refer to: [nnUNet hardware requirements](https://github.com/MIC-DKFZ/nnUNet/blob/master/documentation/installation_instructions.md#hardware-requirements).

## Installation Instructions

1. (Optional but recommended for environment management) Mamba installation
[Mamba Installation Guide (Official)](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html)

Example (Linux x86):
```bash
wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh

bash Mambaforge-Linux-x86_64.sh
mamba create -c conda-forge -c bioconda -n NCP_env python=3.12
mamba activate NCP_env
```
2. Install NiChart_Project into the environment
```bash
git clone https://github.com/CBICA/NiChart_Project.git
pip install -r requirements.txt
```

3. Install the proper PyTorch version for your device
Numpy and PyTorch have some compatibility issues which have changed variously on different platforms. To avoid frustration with these issues, please install PyTorch as noted below.

After installing all other requirements, uninstall Torch:
```
pip uninstall torch
```
Then install PyTorch using the following command. Make sure to use the correct index url for your CUDA version as specified on the [PyTorch getting started page](https://pytorch.org/get-started/locally/).
On Linux, use version 2.3.1. On Windows, 2.5.1 is known to work.
```
pip install torch==2.3.1 --index-url https://download.pytorch.org/whl/cu121
```
## Run NiChart Locally (GUI)
```bash
cd src/viewer/
streamlit run NiChartProject.py
```
The app will start in your localhost.
## The Basics:

The development of nichart is guided by several core principles:

1. Enabling **near real-time image processing and analysis** through advanced methods.

2. Enabling the **continuous integration of cutting-edge processing and analysis methods** to extract meaningful AI biomarkers from multi-modal neuroimaging data.

3. Ensuring robust and reliable results through **extensive data training and validation** on large and diverse training datasets.

4. Providing user-friendly tools for result **visualization and reporting**.

5. Developing a deployment strategy that enables **easy access for users with varying technical expertise and hardware resources**.

## Running NiChart:

We provide both a locally installable desktop application and a cloud-based application.

For the desktop application please see our [documentation](https://cbica.github.io/NiChart_Project/) and [our GitHub page](https://github.com/CBICA/NiChart_Project/).

[NiChart cloud application](https://neuroimagingchart.com/portal), hosted via Amazon Web Services (AWS), deploys scalable infrastructure which hosts the NiChart tools as a standard web application accessible via the user’s web browser.

The cloud and desktop applications are unified at the code level through the use of the Python library [Streamlit](https://streamlit.io/). Consequently, the user experience is nearly identical between the cloud and desktop applications.

## Quick Links

Expand Down
53 changes: 53 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
NiChart: Neuro-imaging Chart
============================

Full documentation at https://cbica.github.io/NiChart_Project

About
-----

*NiChart* is a novel AI-powered neuroimaging platform with tools for computing a dimensional chart from multi-modal MRI data. *NiChart* provides end-to-end pipelines from raw DICOM data to advanced
AI biomarkers, allowing to map a subject’s MRI images into personalized measurements, along with
reference distributions for comparison to a broader population.

.. image:: https://raw.githubusercontent.com/CBICA/NiChart_Project/refs/heads/ge-dev/resources/images/NiChart_Flowchart_v2.svg
:alt: NiChart Flowchart

The Basics
----------

The development of nichart is guided by several core principles:

1. Enabling **near real-time image processing and analysis** through advanced methods.

2. Facilitating the **continuous integration** of **cutting-edge methods** for extracting novel **AI biomarkers** from neuroimaging data.

3. Ensuring robust and reliable results through **extensive data training and validation** on large and diverse training datasets.

4. Providing user-friendly tools for **visualization and reporting**.

5. Developing a deployment strategy that enables **easy access** for users with varying technical expertise and hardware resources.

Running NiChart
---------------

We provide both a locally installable **desktop application** and a **cloud-based application**.

For the desktop application please see our documentation (https://cbica.github.io/NiChart_Project) and our GitHub page (https://github.com/CBICA/NiChart_Project/).

[NiChart cloud application](https://neuroimagingchart.com/portal), hosted via Amazon Web Services (AWS), deploys scalable infrastructure which hosts the *NiChart* tools as a standard web application accessible via the user’s web browser.

The cloud and desktop applications are unified at the code level through the use of the Python library [Streamlit](https://streamlit.io/). Consequently, the user experience is nearly identical between the cloud and desktop applications.

Quick Links
-----------

`NiChart Website & Cloud <https://neuroimagingchart.com>`

`AIBIL Research <https://aibil.med.upenn.edu/research>`

`YouTube <https://www.youtube.com/@NiChart-UPenn>`

`Twitter <https://x.com/NiChart_AIBIL>`

© 2024 CBICA. All Rights Reserved.
Binary file removed docs2/.installation.rst.kate-swp
Binary file not shown.
Binary file removed docs2/.usage.rst.kate-swp
Binary file not shown.
53 changes: 53 additions & 0 deletions docs2/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
NiChart: Neuro-imaging Chart
============================

Full documentation at https://cbica.github.io/NiChart_Project

About
-----

*NiChart* is a novel AI-powered neuroimaging platform with tools for computing a dimensional chart from multi-modal MRI data. *NiChart* provides end-to-end pipelines from raw DICOM data to advanced
AI biomarkers, allowing to map a subject’s MRI images into personalized measurements, along with
reference distributions for comparison to a broader population.

.. image:: https://raw.githubusercontent.com/CBICA/NiChart_Project/refs/heads/ge-dev/resources/images/NiChart_Flowchart_v2.svg
:alt: NiChart Flowchart

The Basics
----------

The development of nichart is guided by several core principles:

1. Enabling **near real-time image processing and analysis** through advanced methods.

2. Facilitating the **continuous integration** of **cutting-edge methods** for extracting novel **AI biomarkers** from neuroimaging data.

3. Ensuring robust and reliable results through **extensive data training and validation** on large and diverse training datasets.

4. Providing user-friendly tools for **visualization and reporting**.

5. Developing a deployment strategy that enables **easy access** for users with varying technical expertise and hardware resources.

Running NiChart
---------------

We provide both a locally installable **desktop application** and a **cloud-based application**.

For the desktop application please see [FIXME: link to readthedocs and Github].

[NiChart cloud application](https://neuroimagingchart.com/portal), hosted via Amazon Web Services (AWS), deploys scalable infrastructure which hosts the *NiChart* tools as a standard web application accessible via the user’s web browser.

The cloud and desktop applications are unified at the code level through the use of the Python library [Streamlit](https://streamlit.io/). Consequently, the user experience is nearly identical between the cloud and desktop applications.

Quick Links
-----------

`NiChart Website & Cloud <https://neuroimagingchart.com>`

`AIBIL Research <https://aibil.med.upenn.edu/research>`

`YouTube <https://www.youtube.com/@NiChart-UPenn>`

`Twitter <https://x.com/NiChart_AIBIL>`

© 2024 CBICA. All Rights Reserved.
67 changes: 1 addition & 66 deletions docs2/api.rst
Original file line number Diff line number Diff line change
@@ -1,70 +1,5 @@
NiChart\_DLMUSE source code
Developers - API
===========================

Submodules
----------

DLMUSE pipeline
--------------------------------------------

.. automodule:: NiChart_DLMUSE.dlmuse_pipeline
:members:
:undoc-members:
:show-inheritance:

Calculate ROI Volume module
-----------------------------------------

.. automodule:: NiChart_DLMUSE.CalcROIVol
:members:
:undoc-members:
:show-inheritance:


Mask Image
--------------------------------

.. automodule:: NiChart_DLMUSE.MaskImage
:members:
:undoc-members:
:show-inheritance:

Relabel ROI
--------------------------------

.. automodule:: NiChart_DLMUSE.RelabelROI
:members:
:undoc-members:
:show-inheritance:

Reorient Image
------------------------------------------

.. automodule:: NiChart_DLMUSE.ReorientImage
:members:
:undoc-members:
:show-inheritance:

Segment Image
---------------------------------------------

.. automodule:: NiChart_DLMUSE.SegmentImage
:members:
:undoc-members:
:show-inheritance:

util functions
----------------------------

.. automodule:: NiChart_DLMUSE.utils
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: NiChart_DLMUSE
:members:
:undoc-members:
:show-inheritance:
86 changes: 86 additions & 0 deletions docs2/components.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
##########
Components
##########

NiChart is designed to integrate independent image processing and analysis pipelines. The following sections detail these pipelines.

*****************
Current Pipelines
*****************

These pipelines are currently active and accessible within the NiChart Project

====================================
1. sMRI Biomarkers of Disease and Aging
====================================

Neuroimaging pipeline for computing AI biomarkers of disease and aging from T1-weighted MRI scans. The pipeline applies the following steps for processign and analysis.

------------
Segmentation
------------

`DLMUSE <https://neuroimagingchart.com/components/#Image%20Processing>`: Rapid and accurate **brain anatomy segmentation**

.. image:: https://github.com/CBICA/NiChart_Project/blob/031d1cafc5091eb514511ee25af189d5f0b5ac56/resources/images/dlicv%2Bdlmuse_segmask.png
:target https://github.com/CBICA/NiChart_DLMUSE
:alt: DLMUSE

-------------
Harmonization
-------------

`COMBAT <https://neuroimagingchart.com/components/#Harmonization>`: **Statistical data harmonization** of ROI volumes to `reference data <https://neuroimagingchart.com/components/#Reference%20Dataset>`

.. image:: https://raw.githubusercontent.com/CBICA/NiChart_Project/refs/heads/ge-dev/resources/images/combat_agetrend.png
:alt: COMBAT

------------------------
Supervised ML Biomarkers
------------------------

`SPARE-AD and SPARE-Age indices <https://neuroimagingchart.com/components/##Machine%20Learning%20Models>`: AI biomarkers of **Alzheimer's Disease and Aging** related brain atrophy patterns

.. image:: https://raw.githubusercontent.com/CBICA/NiChart_Project/refs/heads/ge-dev/resources/images/sparead%2Bage.png
:target https://github.com/CBICA/spare_scores
:alt: SPARE-AD and SPARE-Age indices

`SPARE-CVR indices <https://alz-journals.onlinelibrary.wiley.com/doi/abs/10.1002/alz.067709>`: AI biomarkers of brain atrophy patterns associated with **Cardio-Vascular Risk Factors**

.. image:: https://raw.githubusercontent.com/CBICA/NiChart_Project/refs/heads/ge-dev/resources/images/sparecvr.png
:alt: SPARE-CVR indices, Govindarajan, S.T., et. al., Nature Communications, 2024

-----------------------------
Semi-supervised ML Biomarkers
-----------------------------

- `SurrealGAN indices <https://www.nature.com/articles/d41586-024-02692-z>`: Data-driven phenotyping of brain aging, **5 Brain Aging Subtypes**

.. image:: https://raw.githubusercontent.com/CBICA/NiChart_Project/refs/heads/ge-dev/resources/images/sgan1.jpg
:alt: SurrrealGAN indices

====================================
2. WM Lesion Segmentation
====================================

Neuroimaging pipeline for segmenting white matter lesions on FLAIR MRI scans.

`DLWMLS <https://neuroimagingchart.com/components/#Image%20Processing>`: Rapid and accurate **white matter lesion segmentation**

.. image:: https://github.com/CBICA/NiChart_Project/blob/031d1cafc5091eb514511ee25af189d5f0b5ac56/resources/images/dlwmls.png
:target https://github.com/CBICA/NiChart_DLWMLS
:alt: DLWMLS

*****************
Under Development
*****************

These pipelines are planned for integration in future NiChart releases.

====================================
1. DTI Biomarkers of Disease and Aging
====================================

====================================
2. fMRI Biomarkers of Disease and Aging
====================================
2 changes: 1 addition & 1 deletion docs2/help.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Getting help
############

If you have a problem or would like to ask a question about the inner workings of **NiChart DLMUSE** you can directly
If you have a question about **NiChart Project** you can directly
message our maintaners via email.

.. note::
Expand Down
4 changes: 3 additions & 1 deletion docs2/index.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.. include:: ../README.rst
.. include:: README.rst

########
Contents
Expand All @@ -9,6 +9,8 @@ Contents

installation
usage
components
contributors
api
help
license
Loading

0 comments on commit d91a11d

Please sign in to comment.