xenonmri

Code to Analyze Xenon MRI Data

https://github.com/thepirl/xenonmri

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: wiley.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Code to Analyze Xenon MRI Data

Basic Info
  • Host: GitHub
  • Owner: thePIRL
  • Language: Python
  • Default Branch: main
  • Size: 32.5 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 8 months ago
Metadata Files
Readme Citation

README.md

XenonMRI

This is code used by the University of Missouri PIRL (Pulmonary Imaging Research Lab) to analyze 129Xenon MRI data from MRI pulse sequences described in Peter Niedbalski's paper. We have 2 major scipts here: FlipCal.py and Ventanalysis.py (dissolved xenon script coming soon!). Each script essentially contains a single class structure which can perform all analysis operations with just a few methods. The class structures can be called directly (e.g., CalibrationInstance = FlipCal(ismrmrdpath='path/to/my/data')) or you can run the script by itself in which case a GUI will run from the main() function call. This is currently a research only tool - not approved for clinical use.

Authors:

  • Robby Thomen [thomenr@health.missouri.edu]
  • Gabriela Garcia Delgado
  • Mia Ruppel
  • Isabella Parks
  • Afia Shammi

Overview of FlipCal

This class will analyze data acquired from the spectroscopic calibration sequence (yes, I still call it a FlipCal, short for Flip Angle Calibration, even though it does more than just calculate flip angles). It can input Twix files (Siemens raw data), MatLab files (MatLab workspace after processing data by Scott Robertson's code from the Duke pipeline), ISMRMRD files, or a previously processed FlipCal saved as a `pickle' in python. We're in the process of publishing its routine, but you can probably figure out what it's doing pretty easliy by, you know, reading the code. alt text

Overview of Vent_analysis

There's 2 important pieces to this code. First, this contains the Vent_Analysis class which contains the processing pipeline for analyzing xenon ventilation data given the xenon image set (a DICOM file) and corresponding segmentation (a folder containing mask DICOMs). Second, the main script employs the PySimpleGUI module to create a graphical user interface [GUI] so the data can be processed easily. Here's what the GUI looks like: alt text The powerpoint gives an overview of how it all works. Essentially, you just plug in paths to your data and click the buttons for methods you want to run. Once they've run, the image windows will update with your data and you can export the analyses. Easy peasy!

Setup

Using your favorite git bash clone this github:
git clone https://github.com/thomenr/Vent_Analysis
Next you'll need to install the python modules listed in the requirements.txt file:
pip install -r requirements.txt
Now, using your favorite IDE, run the code (see the powerpoint for a few ways to do this - slide 3). Follow the GUI instructions and you'll be calculating VDPs in no time!

If you want, you can also create your own .exe to run the GUI without a python instance or anything...BUT, you'll need to compile the exe yourself in python. I didn't do that here, because the resultant exe is 183 Mb which is too big for github. If you want to create an exe it's super easy. Just install the PyInstaller module:
pip install pyinstaller
Then, in powershell navigate to the repository directory and run the command in the EXEbuildcommand.txt file. It will build the exe for you in a 'dist' folder. Done!

Commercial Use Notice:

This software is released under the MIT License for academic and research use. If you intend to incorporate it into a commercial product or service, we kindly request that you contact the author(s) to discuss licensing and potential collaboration.

Things to do in future versions

  • edit mask
  • automatic segmentation using proton (maybe DL this?)
  • Denoise Option

Owner

  • Name: thePIRL
  • Login: thePIRL
  • Kind: user

Citation (citation.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Thomen
  given-names: Robert
- family-names: Shammi
  given-names: U Afia
- family-names: Garcia Delgado
  given-names: Gabriela
- family-names: Ruppel
  given-names: Mia
- family-names: Parks
  given-names: Isabella
title: "MU PIRL Xenon MRI Analysis Pipeline"
version: "250421"
identifiers:
  - type: doi
    value: 10.5281/zenodo.1234
date-released: 2024-10-30
repository-code: "https://github.com/thePIRL/XenonMRI"

GitHub Events

Total
  • Member event: 1
  • Push event: 112
  • Pull request review event: 1
  • Pull request event: 4
  • Fork event: 1
  • Create event: 2
Last Year
  • Member event: 1
  • Push event: 112
  • Pull request review event: 1
  • Pull request event: 4
  • Fork event: 1
  • Create event: 2

Dependencies

requirements.txt pypi
  • Pillow ==10.0.0
  • PySimpleGUI ==4.60.5
  • SimpleITK ==2.3.1
  • et-xmlfile ==1.1.0
  • ismrmrd ==1.12.5
  • nibabel ==5.1.0
  • numba ==0.58.1
  • numpy ==1.23.2
  • pandas ==2.0.3
  • pyMapVBVD ==0.5.4
  • pydicom ==2.3.0
  • pyinstaller ==6.3.0
  • python-dateutil ==2.8.2
  • python-git ==2018.2.1
  • scikit-image ==0.21.0
  • scipy ==1.10.1
  • tqdm ==4.66.1