Open-source project
ruoyuw22-byte/NeuroMorph-Assessment avatar
ruoyuw22-byte/NeuroMorph-Assessment

NeuroMorph Assessment puts MATLAB, SPM12 and CAT12 in front of a Python app

An automated structural MRI morphometry system integrating CAT12 processing, brain tissue quantification, visualization, and automated report generation.

367 stars5 forksPythonMIT

At a glance

What is it?
An automated structural MRI morphometry workflow that wraps CAT12 tissue segmentation, four volume measures, three-plane visualisation and a PDF report. The real dependency is a MATLAB toolbox stack, and the licence and citation text are still placeholders.
Who is it for?
This fits a research imaging group that already has MATLAB, SPM12 and CAT12 installed on macOS and wants the same steps run the same way each time, rather than one person remembering them. It does not fit a Linux or Windows lab without porting the launcher, since macOS is listed as a requirement rather than a suggestion.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 39 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 2, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The pipeline is fixed, and T1 detection comes first

The workflow is presented as a straight line with no branches, which is the clearest statement of what the software does and does not attempt.

text
MRI Data
   |
   v
Data Import
   |
   v
T1 Image Detection
   |
   v
CAT12 Processing
   |
   v
Tissue Segmentation
   |
   v
Volume Quantification
   |
   v
Visualization and Report

T1-weighted image identification sits before CAT12 processing rather than inside it, so a dataset that is not in the right sequence is caught before the expensive stage runs.

The feature list breaks the same line into its components: import and organisation of MRI data, T1-weighted identification, CAT12 integration, tissue segmentation, quantitative volume extraction, visualisation and report generation. The usage section restates it as five manual steps, import the data, configure the analysis environment, run the workflow, review the quantitative results, generate the reports.

What the line does not show is batching or a queue. Each run appears to be one analysis you drive from the interface.

Four volumes, extracted with a consistency check

The quantitative output is four numbers: total intracranial volume, gray matter volume, white matter volume and cerebrospinal fluid volume. Each of the three tissue classes is estimated by CAT12, and total intracranial volume is extracted separately rather than derived from the sum of the others.

The line in the feature list worth noticing is the one about quantitative consistency validation during result extraction. It sits between the measurement and the display, which means the numbers are checked as they are pulled out rather than only when a report is opened.

That matters because the four quantities are not independent. A segmentation that loses grey matter at the boundary shows up in more than one of them, so a check at extraction time is cheaper than discovering it in a finished PDF.

The rest of the reporting surface is four items: three-plane MRI visualisation, a preview of the quantitative results, monitoring of processing progress, and automated PDF report generation. Progress monitoring is listed as a feature in its own right, which suggests long-running processing is expected rather than exceptional.

The heavy dependency is MATLAB, not Python

The Python dependency list is unremarkable. Seven packages with lower bounds are declared: numpy, nibabel, matplotlib, Pillow, h5py, pandas and openpyxl.

The real requirements are elsewhere. Structural MRI processing needs MATLAB together with SPM12 and CAT12, and the environment the software was developed and tested under is stated as a table: MATLAB R2022b, SPM12, and CAT12.8.

MATLAB is required for running the SPM12 and CAT12 neuroimaging pipelines, with R2022b given as the recommended version. SPM12 is a MATLAB-based neuroimaging analysis toolbox that this project depends on for the MRI preprocessing framework, the statistical parametric mapping functions and the integration with the CAT12 toolbox.

So the architecture is a Python application driving, or calling into, a MATLAB toolbox pipeline. The consequence for an evaluator is that Python 3.x alone does not make this runnable: the MATLAB licence and both toolboxes are prerequisites, and the Python package list only covers what happens around them.

CAT12 has to sit inside the SPM12 toolbox directory

The install instructions are specific about directory shape, which is the kind of detail that decides whether the first run works.

The recommended structure places CAT12 inside the SPM12 toolbox directory rather than beside it, with cat12 nested under toolbox inside spm12.

Both directories are then added to the MATLAB path. For SPM12 alone that is an addpath call followed by the defaults selection and a job manager initialisation:

matlab
addpath('/path/to/spm12')

spm('Defaults','fMRI')
spm_jobman('initcfg')

For CAT12 the second addpath points at the toolbox subdirectory:

matlab
addpath('/path/to/spm12')
addpath('/path/to/spm12/toolbox/cat12')

The pre-run checklist repeats the same four conditions: MATLAB correctly installed, SPM12 available on the MATLAB path, CAT12 installed under the SPM12 toolbox directory, and the required paths configured inside the application. The fourth item is separate because the application holds its own path settings, so a correct MATLAB setup is not sufficient on its own.

The frontend is a macOS wrapper around the Python app

The project structure shows a desktop application rather than a library or a notebook.

text
NeuroMorph-Assessment/

├── src/
│   ├── app.py
│   ├── ui.html
│   ├── NMAWebView.m
│   ├── launcher.sh
│   └── Info.plist
│
├── resources/
├── scripts/
├── examples/
├── docs/
├── requirements.txt
└── README.md

The five files under src describe the shape. app.py is the Python entry point and ui.html is the interface it serves. The other three are macOS application shell pieces: an Objective-C web view class, a launcher script and an Info.plist, which together wrap the page in a native window rather than opening a browser tab.

That is consistent with the requirements list, which names macOS first, then Python 3.x, MATLAB with SPM12, the CAT12 toolbox and dcm2niix. The converter is a hard requirement rather than an optional convenience, since DICOM input has to become something NIfTI-based tooling can read before any of the morphometry runs.

The example configuration lives in examples/ as a JSON file, and further documentation sits in docs/.

Citation and licence text are still placeholders

Two sections that usually carry hard information do not yet.

The citation section says citation information will be updated with the final publication or software registration information. There is no paper to cite and no registry identifier given, which means the version has to be referenced by its release tag instead.

The licence section says licence information will be added after dependency review. That statement sits oddly against a repository root that does contain a LICENSE file, so the prose appears to lag the repository contents rather than describe the current state.

A third file supports the same caution without contradicting it. THIRD_PARTY.md sits alongside a PUBLISH_CHECKLIST.md, and the acknowledgements state that the project uses open-source neuroimaging tools including SPM12 and CAT12. Given that CAT12 carries its own licence terms, a dependency review that has not finished is a reasonable reason for the licence line to be unfinished.

For anyone evaluating reuse, that makes the dependency licensing the thing to check first, rather than the version number.

Editorial conclusion

This fits a research imaging group that already has MATLAB, SPM12 and CAT12 installed on macOS and wants the same steps run the same way each time, rather than one person remembering them. It does not fit a Linux or Windows lab without porting the launcher, since macOS is listed as a requirement rather than a suggestion. Two things to settle before use: check that the four reported volumes pass the consistency validation on a known subject, and treat the PDF as a record of computed quantities rather than a clinical conclusion, since the tool describes no diagnostic validation. And note that citation and licence information are still described as pending in the documentation.

Frequently asked questions

What quantities does NeuroMorph Assessment measure?

Total intracranial volume, gray matter volume, white matter volume and cerebrospinal fluid volume, extracted through CAT12 tissue segmentation with quantitative consistency validation applied during result extraction.

What does NeuroMorph Assessment need before it can run?

macOS, Python 3.x, MATLAB with SPM12, the CAT12 toolbox and dcm2niix. The environment it was developed and tested under is MATLAB R2022b with SPM12 and CAT12.8.

Where must the CAT12 toolbox be installed?

Inside the SPM12 toolbox directory, as cat12 under toolbox under spm12, with both the SPM12 directory and the toolbox subdirectory added to the MATLAB path.

What does the NeuroMorph Assessment workflow do in order?

MRI data import, T1 image detection, CAT12 processing, tissue segmentation, volume quantification, then visualisation and report generation, with the stages presented as a fixed sequence.

What output does NeuroMorph Assessment produce?

Three-plane MRI visualisation, a preview of the quantitative results, processing progress monitoring, and an automatically generated PDF report.

Can NeuroMorph Assessment be cited or reused yet?

Citation information is stated to be pending until the final publication or software registration, and licence information is stated to be added after a dependency review. A LICENSE file exists at the repository root regardless.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. ruoyuw22-byte/NeuroMorph-Assessment on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ruoyuw22-byte-neuromorph-assessment.svg)](https://hysenlabs.com/projects/ruoyuw22-byte-neuromorph-assessment)