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.
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.
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.
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.
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.
White Matter Analysis (WMA)
Purpose: Diffusion Analysis
WhiteMatterAnalysis (WMA) provides fiber clustering and tractography analysis tools.
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.
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.
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.
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).
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.
HD-BET
Purpose: MRI Segmentation
Automated brain extraction of multisequence MRI using artificial neural networks.
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.
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.
SlicerTMS
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.
pnlNipype
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/).
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)
- 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
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.
Nifti-snapshot
Purpose: Quality Control (QC)
Nifti-snapshot is a python toolbox to quickly create png or jpeg screenshots of 3D nifti files.
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.
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.
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.
Anonymize-dicom
Purpose: Anonymize Data
Anonymize-dicom is a simple GUI tool used for de-identifying information in the dicom headers.
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.
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.
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.
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.


