Skip to content

MagneticResonanceImaging/PERK.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PERK.jl

https://github.com/MagneticResonanceImaging/PERK.jl

action status codecov license docs stable docs dev

This package implements PERK, a parameter estimation technique presented in G. Nataraj, J.-F. Nielsen, C. Scott, and J. A. Fessler. Dictionary-free MRI PERK: Parameter estimation via regression with kernels. IEEE Trans. Med. Imag., 37(9):2103-14, September 2018. This code was inspired by the MATLAB code written by Gopal Nataraj, which can be found here.

Getting Started

At the Julia REPL, type ] to enter the package prompt. Then type add https://github.com/MagneticResonanceImaging/PERK.jl to add the latest version. (Append #v0.3.2 to specify a specific version.) Hit backspace to return to the normal Julia prompt, and then type using PERK to load the package.

Overview

The function perk provides the main functionality. Training is done by generating synthetic data using randomly generated parameters. Distributions for these parameters can be passed directly to perk, which will use them for training and then estimate the latent parameters from the given test data. Alternatively, one can pass the parameter distributions to PERK.train, which will create a TrainingData object that can then be passed to perk (and used multiple times, if desired). One must also pass a Kernel object to perk. Three are provided in this package: GaussianKernel, GaussianRFF, and EuclideanKernel. GaussianKernel and GaussianRFF are described in the paper. Using EuclideanKernel indicates to solve ridge regression instead of kernel ridge regression.

Because PERK utilizes kernel ridge regression at its core, one can also use this package for solving kernel ridge regression. (This can be useful if, e.g., one already has training data and therefore does not need to generate some.) Calling PERK.krr_train returns a TrainingData object that can be passed to PERK.krr. As with perk, both PERK.krr_train and PERK.krr must be passed a Kernel object.

Related packages

These are more general and not MRI specific.

Status

This repo is not yet registered in part because its name does not meet Julia naming guidelines. If you want to be registered, please post an issue and suggest a name.

On 2024-04-08, the package was relocated here from https://github.com/StevenWhitaker/PERK.jl Some links may be broken by this transition.