This piece of software is for research use only and not for diagnostic use!
ARTBOX is a fast image reconstruction and simulation toolbox for magnetic resonance imaging (MRI). The operator implemented in this work allows you to incorporate B0 inhomogeneities, non-Cartesian trajectories and even non-linear encoding fields into MR image reconstruction/simulation. It furthermore considers the reconstructed pixels to be box functions instead of Diracs. This makes it possible to model intra-voxel dephasing which may improve the conditioning of the inverse.
Several image reconstruction methods (CG, TGV-regularization) are implemented.
Note: Please be aware that parts of this software may be refactored and therefore the API may change. Furthermore the documentation and examples are work in progress. Please report any problems you encounter (Github Issues.).
Features:
- Conjugate gradients solver.
- Chambolle-Pock solver for Total Generalized Variation (TGV) regularized problems. (Based on code by Kristian Bredies.)
- Modified Chambolle-Pock solver for TGV regularized problems called TGV-CG.
- Uses the full encoding matrix as forward model. Therefore it is easy to include B0 inhomogeneities, non-Cartesian trajectories and nonlinear SEMs (spatially encoding magnetic fields, also called gradients).
- All operations heavily accelerated with GPU code using pycuda.
- Modular design. Use the accelerated operators to implement your own algorithms (and ideally issue a pull request).
For detailed information about usage and the API, please see the Documentation
Python modules:
- scipy
- numpy
- progressbar
- Pillow
- pycuda
- argparse
- Sphinx (optional, only to build docs)
To install ARTBOX, simply clone the repository and cd
into the directory.
$ git clone git@github.com:stefan-k/ARTBOX.git
$ cd ARTBOX
For detailed information take a look at the help message:
$ artbox-cli.py --help
TODO (Reconstructions using CG, TGV, TGV-CG; Simulations)
A Matlab .mat file with the following struct is expected:
S.k: [nF, nT] # k-space trajectory
S.SEM: [nF, nX1, nX2] # spatial magnetic encoding fields
S.Cmat: [nC, nX1, nX2] # RF coil sensitivity maps
S.b0: [nX1, nX2] # B0 inhomogeneity map
S.ktime: [1, nT] # "trajectory" corresponding to B0 inhomogeneity
S.Gmat: [nF, nX1, nX2, 3] # Derivative of SEMs
S.w: [3, 1] # Weighting factors for dephasing model
S.regularization_weights: [nX1, nX2] # weights for spatially dependent Tikhonov regularization
As well as one of the following two:
S.recondata: [nC, nT] # measured/simulated data
S.object: [nX1, nX2] # object to be simulated
where:
nC ... number of RF coils
nF ... number of encoding fields
nX1 ... resolution in image space of dimension 1
nX2 ... resolution in image space of dimension 2
nT ... number of k-space sampling points
recondata
needs to be provided for reconstructions and object
for simulations.
The struct must be called S
and it must be saved in the 'v7' format in Matlab:
save('data.mat', 'S', '-v7');
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.