Software

The Psychiatry Neuroimaging Laboratory performs extensive research in several brain disorders such as schizophrenia, TBI, ADHD, OCD, Alzheimer’s, Parkinsons, Depression, Eating Disorder, Substance Abuse, Autism etc. We use several MRI methods such as: diffusion MRI, functional MRI, free-water imaging, data harmonization, MRI sequence development, data reconstruction, machine learning and artificial intelligence.

Filter by Category

Several open-source software tools have been developed by researchers from the PNL in collaboration with their colleagues at several different institutions as listed below:

Multi-site diffusion MRI data harmonization

Purpose: Diffusion Harmonization

Integrated study of multi-site diffusion MRI (dMRI) data can enable diagnosis, monitoring, and treatment of several brain diseases. However, data acquired on a variety of scanners cannot be integrated due to differences in acquisition parameters and scanner artifacts. Therefore, dMRI data has to be harmonized for joint analysis by removing scanner-specific differences.

dMRIharmonization is a Python command line module that implements a method capable of removing scanner-specific effects. The proposed method eliminates inter-site variability in acquisition parameters, while preserving inter-subject anatomical variability.

GitHub

Microstructure-driven Unscented Kalman Filter Tractography (UKFTractography)

Purpose: Diffusion Tractography

Tracing white matter fiber bundles through crossing-fiber regions requires consistent estimation of the fiber orientation as well as microstructural measures (e.g. FA, MD, kurtosis, axon diameter, etc.). The UKF-based method performs simultaneous fiber model estimation and tractography by accounting for the correlation in diffusion along the fiber bundles. This ensures proper estimation of the model parameters (e.g. eigenvalues, eigenvectors, free-water fraction etc.) along the fiber bundles. Currently, the tractography method supports single tensor, 2-tensor, 2-tensor with free-water (recommended), and NODDI fiber models. It also supports an arbitrary number of gradient directions and b-values, although more data always ensures better model fitting and tractography. The algorithm can be used using standalone scripts as well as part of the 3D Slicer platform. It was also one of the winners of the Fiber Cup Tractography Challenge held as part of the MICCAI international conference.

GitHub

Vendor-agnostic MRI sequence development platform and data reconstruction (Pulseq)

Purpose: MR Sequence Development

This project is an open source framework for the development and execution of magnetic resonance (MR) pulse sequences for imaging and spectroscopy.The MRI sequences can be programmed directly in MATLAB and executed on MR scanners from any vendor (currently supported, Siemens, GE. In-development: Philips). Harmonized sequence development and reconstruction will minimize inter-scanner differences which contributes to the significant amount of variability in the data acquired across sites. Further, our framework significantly improves reproducibility and reliability of neuroimaging studies.

GitHub

CNN-Diffusion-MRIBrain-Segmentation

Purpose: Diffusion Segmentation

A challenging problem in neuroscience is to create brain mask of an MRI. The problem becomes more challenging when the MRI is a diffusion MRI (dMRI) since it has less contrast between brain and non-brain regions. Researchers all over the world have to spent many hours drawing dMRI brain masks manually. In order to automate that process, we come up with a convolutional neural network (CNN) based approach for creating dMRI brain mask automatically. The CNN architecture is obtained from Raunak Dey’s work. On top of that, we applied a multi-view aggregation step to obtain final brain mask.

The software is capable of both training and predicton. We also provide trained models so it can be used off the shelf. Psychiatry NeuroImaging Laboratory has a large number of dMRI brain masks drawn by research assistants. The models were trained on 1,500 such brain masks. We acchieved an accuracy of 97% in properly segmenting the brain from a dMRI b0 volume.

GitHub

White Matter Analysis (WMA)

Purpose: Diffusion Analysis

WhiteMatterAnalysis (WMA) provides fiber clustering and tractography analysis tools.

GitHub

3D Slicer

Purpose: Visualization, processing, segmentation, registration, and analysis of medical, biomedical, and other 3D images and meshes.

3D Slicer is a free, open source and multi-platform software package widely used for medical, biomedical and related imaging research. It was developed by the Surgical Planning Laboratory with contributions, support and feedback from the PNL.

GitHub

Spherical Ridgelets for sparse representation of dMRI data

Purpose: Diffusion Analysis

This software implements a non-parametric representation termed Spherical Ridgelets to sparsely represent dMRI data on the sphere. It also allows to reduce the number of gradient directions required to represent the signal thereby reducing the scan time significantly. It also estimates the orientation distribution function (ODF) and the number of fibers at each voxel. This method was the winner of the SPARC dMRI Challenge.

GitHub

Robust estimation of Mean Kurtosis from dMRI (MK-Curve)

Purpose: Diffusion Analysis

The MK-Curve method aims at detecting and correcting voxels with implausible values to enable improved diffusion kurtosis imaging (DKI) parameter estimation.

GitHub

Deep learning based segmentation of dMRI (DDSeg)

Purpose: Segmentation

DDSeg is a deep learning tissue segmentation method to segment WM, GM and CSF directly using diffusion MRI data. The code allows tissue segmentation using DTI parameters (single shell dMRI data) and DKI parameters computed using MKCurve (multi shell dMRI data with MKCurve corrected data).

GitHub

RElaxation-DIffusion Moment imaging (REDIM)

Purpose: Diffusion Analysis

REDIM is a Matlab toolbox for modeling and analyzing diffusion MRI data with multiple echo times, i.e., joint relaxation-diffusion imaging. It provides the joint moments of the T2 relaxation rates and the diffusivity and can apply filters to emphasize signals with fast or slow diffusion/relaxation coefficients.

GitHub

HD-BET

Purpose: MRI Segmentation

Automated brain extraction of multisequence MRI using artificial neural networks.

GitHub

PICASO

Purpose: Diffusion Analysis

PICASO is a Matlab toolbox for precise inference and characterization of structural organization (PICASO) of tissue from molecular diffusion. It uses multi-shell diffusion MRI data to estimate the diffusivity and the microstructural disturbance function.

GitHub

ME-GCM

Purpose: fMRI Analysis

ME-GCM is a Matlab toolbox to compute minimum-entropy based Granger causality measures for brain network analysis using functional MRI. It uses state-space representations to compute the frequency-domain causality measures.

GitHub

SlicerTMS

Purpose: Visualization

SlicerTMS is a Visualization Tool for the neuronavigation software using 3DSlicer for real-time Transcranial Magnetic Stimulation (TMS).

GitHub

luigi-pnlpipe

Purpose: MRI Processing

Luigi is a Python module for building complex pipeline of jobs. Psychiatry Neuroimaging Laboratory (PNL) has developed and tested many software modules for MRI processing over years. The individual modules are gracefully joined together using Luigi. With the release of luigi-pnlpipe, researchers should be able to perform MRI processing more elegantly.

GitHub

pnlNipype

Purpose: MRI Processing

pnlNipype is a Python-based framework for processing anatomical (T1, T2) and diffusion weighted images. It comprises some of the PNL‘s neuroimaging pipelines

GitHub

Pulseq-diffusion

Purpose: MR Reconstruction

MatLab code to create diffusion EPI sequences to be run using the Pulseq sequence programming environment (https://pulseq.github.io/).

GitHub

ROVER MRI

Purpose: MR Reconstruction

This repository contains the implementation of Rotating-view super-resolution (ROVER)-MRI reconstruction, developed based on two ISMRM abstracts:

  • Rapid Whole Brain 180µm Mesoscale In-vivo T2w Imaging, ISMRM 2025 (oral)
  • Rotating-view super-resolution (ROVER)-MRI reconstruction using tailored Implicit Neural Network, ISMRM 2024 (oral power pitch)

✨ Highlights

  • Achieves 180 µm isotropic resolution T2w MRI in ~17 minutes
  • Leverages 8 rotated views and 5× super-resolution
  • Uses multi-resolution hash encoding and implicit neural fields
  • Validated on ex-vivo and in-vivo datasets

GitHub

Tract-Based Spatial Statistics (TBSS)

Purpose: Diffusion Analysis

TBSS is a suite of tools for analyzing diffusion data. This software uses a tensor-fitting method to generate different measures of diffusion, such as fractional anisotropy (FA) and mean diffusivity (MD). Once these measurements are created, you can then extract them using ROI tools like you would for fMRI data.

The package also includes tools for correcting distortions in the diffusion data; in particular, the commands topup and eddy will remove distortions caused by eddy currents and magnetic field inhomogeneities.

GitHub

Nifti-snapshot

Purpose: Quality Control (QC)

Nifti-snapshot is a python toolbox to quickly create png or jpeg screenshots of 3D nifti files.

GitHub

Eddy-squeeze

Purpose: Quality Control (QC)

Eddy-squeeze is a python toolbox used to visualize how FSL Eddy’s outlier replacement function changes the outlier slices. It also extracts information from an Eddy session, such as number of shells detected in the data, number of outlier slices and standard deviation of each outlier slice, and motion etc. into a user-friendly html file.

GitHub

PNL-Randomise

Purpose: Diffusion Statistical Analysis

PNL-Randomise is a python toolbox for running FSL Randomise on the TBSS output. It splits and parallelizes the randomise using the Bsub job system. It also creates a summary of Randomise outputs in a html file, so the user can easily check and share the result.

GitHub

AMP-SCZ Lochness

Purpose: Data Collection

AMP-SCZ Lochness is a new version of Lochness, which is used for the AMP-SCZ project related data aggregation. AMP-SCZ Lochness interacts with the REDCap database to download and arrange corresponding data from Box, Mediaflux, Mindlamp, and XNAT. It can also transfer the collected data to Amazon S3 buckets or other servers.

GitHub

Anonymize-dicom

Purpose: Anonymize Data

Anonymize-dicom is a simple GUI tool used for de-identifying information in the dicom headers.

GitHub

SlicerDiffusionQC

Purpose: Quality Control (QC)

This is a complete slicer module for quality checking of diffusion weighted MRI. It identifies bad gradients by comparing distance of each gradient to a median line. The median line is obtained from KL divergences between consecutive slices. After above processing, it allows user to manually review each gradient: keep or discard them.

GitHub

StructuralQC

Purpose: Quality Control (QC)

structuralQC is a machine learning algorithm that predicts a structural mri (T1 or T2) as a good or bad image. During acquisition of mri, it might be affected with motion, ghosting, or ringing aritficats. Further processing down any pipeline may be affected by the bad quality of the input image which is why quality assessment is important at the beginning.

GitHub

Quick-QC (QQC)

Purpose: Quality Control (QC)

Quick-QC is a python toolbox for checking for deviations in a newly scanned MRI data compared to a previous scan for a long term cohort studies. Information from the DICOM and nifti headers are compared to that of the previous scan and the unexpected deviations are reported. In addition to the comparison, it also runs multi-modal preprocessing tools to extract measures that represent quality of the data included in the scan.

GitHub

Tract Querier

Purpose: Diffusion Analysis

Tract Querier is an implementation of the White Matter Query Language and associated tools for dMRI white matter tract extraction and analyis.

GitHub