Radial Interstices Enable Speedy Low-volume Imaging

Radial Interstices Enable Speedy Low-volume Imaging - Published in JOSS (2021)

https://github.com/spinicist/riesling

Science Score: 95.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    3 of 10 committers (30.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation

Repository

Radial Interstices Enable Speedy Low-Volume Imaging

Basic Info
  • Host: GitHub
  • Owner: spinicist
  • License: mit
  • Language: C++
  • Default Branch: main
  • Size: 4.22 MB
Statistics
  • Stars: 26
  • Watchers: 5
  • Forks: 10
  • Open Issues: 5
  • Releases: 15
Created about 5 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License

README.md

Logo

Build DOI DOI

Radial Interstices Enable Speedy Low-Volume imagING

This is a reconstruction toolbox optimised for 3D non-cartesian MR images. There are many high quality MR recon toolboxes available, e.g. BART, but these are mostly optimised for 2D sequences. 3D non-cartesian sequences present unique challenges for efficient reconstruction, so we wrote our own.

This toolbox was presented at ISMRM 2020.

Authors

Tobias C Wood, Emil Ljungberg, Florian Wiesinger.

Installation

Pre-compiled executables are provided for Linux and Mac OS X in a .tar.gz archive from http://github.com/spinicist/riesling/releases. Download the archive and extract it with tar -xzf riesling-platform.tar.gz. Then, move the resulting riesling executable to somewhere on your $PATH, for instance /usr/local/bin. That's it.

  • MacOS Catalina or higher users should use curl to download the binary, i.e. curl -L https://github.com/spinicist/riesling/releases/download/v1.0/riesling-macos.tar.gz. This is because Safari now sets the quarantine attribute of all downloads, which prevents them being run as the binary is unsigned. It is possible to remove the quarantine flag with xattr, but downloading with curl is more straightforward.
  • The Linux executable is compiled on Ubuntu 20.04 and a statically linked libstdc++. This means it will hopefully run on most modern Linux distributions. Let us know if it doesn't.
  • The Mac executable is compiled with MacOS 14.

Usage

RIESLING comes as a single executable file with multiple commands, similar to git or bart. Type riesling to see a list of all the available commands. If you run a RIESLING command without any additional parameter RIESLING will output all available options for the given command.

RIESLING uses HDF5 (.h5) files for input and output. Your input file will need to contain the non-cartesian data, the non-cartesian trajectory, and the image geometry/orientation information. Some helper functions are provided for creating a suitable .h5 file from Python or Matlab. These are in the repository but not included as part of the installation - you will need to download and install these yourself.

Once you have assembled the input dataset, the first command you should start with is riesling recon-lsq. This will perform a least-squares reconstruction of the data using a pre-conditioned iterative algorithm. If the resulting image looks good, then the recon-rlsq command contains options for a regularized least-squares reconstruction (e.g. Total Variation or Total Generalized Variation).

To view the output images in .h5 format requires an HDF5 viewer, for instace the H5Web plugin for VSCode. If you compile riesling yourself the montage command can show images in your terminal. Otherwise the nii command will convert from riesling format to Nifti.

A separate examples repository https://github.com/spinicist/riesling-examples contains Jupyter notebooks demonstrating most functionality.

Documentation & Help

Further documentation is available at https://riesling.readthedocs.io.

If you can't find an answer there or in the help strings, you can open an issue, or e-mail tobias.wood@kcl.ac.uk.

Compilation

If you wish to compile RIESLING yourself, compilation should hopefully be straightforward as long as you have access to a C++20 compiler (GCC 10 or higher, Clang 7 or higher). RIESLING relies on vcpkg for dependency management. To download and compile RIESLING, follow these steps:

0. MacOS Dependencies

Install the MacOS vcpkg dependencies.

  1. XCode from the AppStore
  2. Run $ xcode-select --install in the terminal

You may also need to install pkg-config depending on your macOS version. This is easily installed with Homebrew using $ brew install pkg-config

Apple Silicon (M1) is supported.

0. Linux Dependencies

Install the Linux vcpkg dependencies. These include cmake, tar, curl, zip, unzip, pkg-config & build-essential. You may be surprised by which distributions do not include these by default.

1. Clone repository

$ git clone https://github.com/spinicist/riesling

2. Compile

In the riesling folder execute $ ./bootstrap.sh

Owner

  • Name: Tobias Wood
  • Login: spinicist
  • Kind: user
  • Company: King's College London

JOSS Publication

Radial Interstices Enable Speedy Low-volume Imaging
Published
October 07, 2021
Volume 6, Issue 66, Page 3500
Authors
Tobias C. Wood ORCID
Department of Neuroimaging, King's College London
Emil Ljungberg ORCID
Department of Neuroimaging, King's College London
Florian Wiesinger ORCID
Department of Neuroimaging, King's College London, GE Healthcare
Editor
Elizabeth DuPre ORCID
Tags
mri reconstruction ZTE cpp

GitHub Events

Total
  • Release event: 2
  • Watch event: 4
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 153
  • Pull request event: 8
  • Fork event: 1
  • Create event: 16
Last Year
  • Release event: 2
  • Watch event: 4
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 153
  • Pull request event: 8
  • Fork event: 1
  • Create event: 16

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,681
  • Total Committers: 10
  • Avg Commits per committer: 168.1
  • Development Distribution Score (DDS): 0.084
Past Year
  • Commits: 445
  • Committers: 4
  • Avg Commits per committer: 111.25
  • Development Distribution Score (DDS): 0.011
Top Committers
Name Email Commits
Tobias Wood t****s@s****k 1,539
Tobias Wood t****s@m****m 73
Martin Krämer M****4@g****m 30
Emil Ljungberg e****g@k****k 16
Emil Ljungberg l****l@g****m 14
David Leitao d****o@k****k 3
Alexander Fyrdahl a****l@g****m 2
pfuchs p****s@u****k 2
Curt Corum 1****m 1
diana t****a 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 28
  • Total pull requests: 31
  • Average time to close issues: 3 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 5
  • Total pull request authors: 7
  • Average comments per issue: 3.89
  • Average comments per pull request: 1.29
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 7.0
  • Average comments per pull request: 0.83
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • emilljungberg (15)
  • MartinK84 (7)
  • uecker (4)
  • LiangWang-bme (1)
  • fyrdahl (1)
Pull Request Authors
  • MartinK84 (15)
  • davidleitao95 (8)
  • emilljungberg (8)
  • teodoradiana (2)
  • pfuchs (2)
  • fyrdahl (2)
  • curtcorum (1)
Top Labels
Issue Labels
enhancement (5) documentation (4) examples (2) bug (1) low priority (1)
Pull Request Labels
enhancement (2) documentation (1)

Dependencies

docs_requirements.txt pypi
  • mkdocs *
  • python-markdown-math *
.github/workflows/build.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/create-release v1.0.0 composite
  • actions/download-artifact v1 composite
  • actions/upload-artifact v1 composite
  • actions/upload-release-asset v1.0.1 composite
python/setup.py pypi
  • cmasher *
  • colorcet >=2.0.0
  • h5py >=3.2.1
  • matplotlib >=3.2.0
  • numpy >=1.14.2
vcpkg.json vcpkg
  • args *
  • catch2 *
  • eigen3 *
  • fftw3 *
  • fmt *
  • hdf5 *
  • nifticlib *
  • range-v3 *
  • scnlib *
Dockerfile docker
  • debian latest build