Skip to main content

Pytorch toolbox for Hyperelastic Susceptibility Artifact Correction

Project description

PyHySCO

This is a package for Echo-Planar MRI susceptibility artifact correction implemented in PyTorch.

Installation

From PyPI:

pip install PyHySCO

Python package dependencies (automatically installed by pip) are listed in requirements.txt. It is suggested to run the python file tests/test_all.py to ensure all tests are passing and the code is setup properly.

Usage

Command Line Correction

The program can be run directly from a terminal or command line by using the python command to run the file pyhysco.py or if installed using pip the command pyhysco. Supplying the following required parameters:

  • file_1: file path of first image (stored as nii.gz) with phase encoding direction opposite of file_2
  • file_2: file path of second image (stored as nii.gz) with phase encoding direction opposite of file_1
  • ped: phase-encoding dimension (1, 2, or 3)

Use the help flag (--help) to see optional parameters available.

Minimal Usage:

pyhysco --file_1 <image1> --file_2 <image2> --ped <phase encoding direction>

Example:

pyhysco --file_1 image1.nii.gz --file_2 image2.nii.gz --ped 1 --output_dir results/ --max_iter 25

Write a Correction Script

A user-written script can be used to call the methods of the program.

Example:

from EPI_MRI.EPIMRIDistortionCorrection import *
from optimization.GaussNewton import *
import torch

device = 'cuda:0' if torch.cuda.is_available() else 'cpu'

# load the image and domain information
# change this function call to be the filepath for your data
data = DataObject('../data/156334_v.nii.gz', '../data/156334_-v.nii.gz', 1, device=device,dtype=torch.float32)

loss_func = EPIMRIDistortionCorrection(data, 300, 1e-4, regularizer=myLaplacian3D, PC = JacobiCG)
# initialize the field map
B0 = loss_func.initialize(blur_result=True)
# set-up the optimizer
# change path to be where you want logfile and corrected images to be stored
opt = GaussNewton(loss_func, max_iter=500, verbose=True, path='results/gnpcg-Jac/')
# optimize!
opt.run_correction(B0)
# save field map and corrected images
opt.apply_correction()
# see plot of corrected images
opt.visualize()

Examples and Further Documentation

There are a set of examples in the examples directory. Full API documentation is in the docs directory. See also Instructions.md for an overview of the correction process.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyHySCO-0.0.1.tar.gz (65.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyHySCO-0.0.1-py3-none-any.whl (62.9 kB view details)

Uploaded Python 3

File details

Details for the file PyHySCO-0.0.1.tar.gz.

File metadata

  • Download URL: PyHySCO-0.0.1.tar.gz
  • Upload date:
  • Size: 65.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.3

File hashes

Hashes for PyHySCO-0.0.1.tar.gz
Algorithm Hash digest
SHA256 e1bcfb91a1061d8553a113af294bb8b44288e21156bab77db9c455fc66143541
MD5 6bc7b3176b0b39c1450da8e3914b8075
BLAKE2b-256 e27e2747ec5f97f3ee717eca4c441ade00156de44aff8052dbe596e803c6d4a4

See more details on using hashes here.

File details

Details for the file PyHySCO-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: PyHySCO-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.3

File hashes

Hashes for PyHySCO-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7b769f84ec027c027bdbef1d951ad2c905b25cda1bfcd74f1494ccad17aa8e69
MD5 45f4835f10ddc7efe7506c53ed7012c9
BLAKE2b-256 46f0bd97685d1e4bd52f961222cabd7f25175c01e92a49d17b6b4d45d8adf99a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page