Git Product home page Git Product logo

mrrt.nufft's Introduction

Non-uniform fast Fourier transform in Python

This library provides a higher performance CPU/GPU NUFFT for Python.

This library started as a port of the Matlab NUFFT code in the Michigan image reconstruction toolbox written by Jeff Fessler and his students, but has been substantially overhauled and GPU support has been added.

The library does not implement all NUFFT variants, but only the following two cases:

1.) transformation from a uniform spatial grid to non-uniformly sampled frequency domain.

2.) Inverse transformation from non-uniform Fourier samples to a uniformly spaced spatial grid.

Those interested in other NUFFT types may want to consider the NFFT library which has an unofficial python wrapper via pyNFFT.

The transforms are implemented in both single and double precision variants.

Both a low memory lookup table-based implementation and a fully precomputed sparse matrix-based implementations are available.

See Copying and LICENSES_bundled.txt for full license info.

Related Software

Another Python-based implementation that has both CPU and GPU support is available in the sigpy package. The sigpy implementation of the NUFFT is fairly compact as it uses Numba to provide just-in-time compilation for both the CPU and GPU variants from a common code base.

In contrast mrrt.nufft uses pre-compiled C code for the CPU variant and the GPU kernels are compiled at run time using NVIDIA's run-time compilation (NVRTC) as provided by cupy.RawKernel.

The NFFT library implements a more extensive set of non-uniform Fourier transform variants. It has an unofficial python wrapper via pyNFFT. At the time of writing it is CPU only.

A Matlab-based CPU-based implementation of the NUFFT is available in the Michigan image reconstruction toolbox

A GPU based implementation with a Matlab interface is avialable as gpuNUFFT.

The Flatiron Institute implemented FINUFFT which is a C++ library with Fortran, Matlab and Python interfaces.

Some C/C++ MRI image reconstruction toolboxes also provide NUFFT implementations: Gadgetron and the Berkley Advanced Reconstruction Toolbox (BART).

Basic Usage

For those interested in iterative MR image reconstruction it is recommended to use the simplified interface provided by:

TODO

Documentation

TODO

Installation

Binary packages have not yet been built and uploaded to PyPI or conda-forge, but the package can be built from source tarballs hosted on PyPI.

pip install mrrt.nufft

Required Dependencies

Recommended Dependencies

  • Matplotlib (for plotting)
  • pyFFTW (>=0.11) (enable faster FFTS than numpy.fft)
  • CuPy (>=6.1) (required for the GPU implementation)
  • jinja2 (required for GPU implementation)

mrrt.nufft's People

Contributors

grlee77 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.