Giter Site home page Giter Site logo

crmsb / paper_subspace_mese Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 5.53 MB

3D T2 mapping based on accelerated MESE with a subspace constrained reconstruction

Home Page: https://crmsb.github.io/PAPER_subspace_MESE/

License: MIT License

Julia 100.00%
mr-sequence mri mri-reconstruction t2-mapping t2map bruker siemens pv360 pv6

paper_subspace_mese's Introduction

Subspace_MESE.jl

Documentation Paper

Subspace_MESE.jl is a Julia package that implements the subspace reconstruction for an accelerated MESE sequence for Bruker scanner (PV6.0.1). The reconstruction can be performed using MRIReco.jl (or BART for comparison purpose) with 3 subspaces generated with :

  • a calibration area
  • mono-exponential dictionary
  • EPG dictionary

More information and examples are available in the article and in the

How to give credit

If you use this package please acknowledge us by citing : https://doi.org/10.1002/mrm.30146

Additionally, if you use the sequence available in the MR sequence folder, please contact us to sign the sequence transfer agreement : [email protected]

Bruker sequence and protocol

The accelerated 3D MESE MR sequence and the corresponding protocol for fully-sampled / CS6 / CS8 and CS10 acquisitions, as used in the publication, are available in the folder MR sequence/PV6.0.1 for Bruker Paravision PV6.0.1. Source code is available in this private directory. Source code is available in this private directory : https://github.com/CRMSB/SEQ_BRUKER_a_MSME_CS/tree/v0.1.1b

The sequence was also implemented for Bruker Paravision PV-360.3.5 and is available in the folder MR sequence/PV-360.3.5. Source code is available in this private directory : https://github.com/CRMSB/SEQ_BRUKER_a_MESE_CS_360

Julia Installation

To use the code, we recommend downloading Julia version 1.9.3 with juliaup.

Windows

1. Install juliaup

winget install julia -s msstore

2. Add Julia 1.9.3

juliaup add 1.9.3

3. Make 1.9.3 default

juliaup default 1.9.3
Mac

1. Install juliaup

curl -fsSL https://install.julialang.org | sh

You may need to run source ~/.bashrc or source ~/.bash_profile or source ~/.zshrc if juliaup is not found after installation.

Alternatively, if brew is available on the system you can install juliaup with

brew install juliaup

2. Add Julia 1.9.3

juliaup add 1.9.3

3. Make 1.9.3 default

juliaup default 1.9.3
Linux

1. Install juliaup

curl -fsSL https://install.julialang.org | sh

You may need to run source ~/.bashrc or source ~/.bash_profile or source ~/.zshrc if juliaup is not found after installation.

Alternatively, use the AUR if you are on Arch Linux or zypper if you are on openSUSE Tumbleweed.

2. Add Julia 1.9.3

juliaup add 1.9.3

3. Make 1.9.3 default

juliaup default 1.9.3

MESE Package Installation

You can install the package in any project with the following command :

  • launch julia with the command julia
  • enter the Julia package manager by typing ] in the REPL. (the REPL should turn in blue)
  • if you want to activate an environment, type : activate . (otherwise the package will be installed in the global environment)
  • In order to add our unregistered package, type add https://github.com/CRMSB/PAPER_subspace_MESE
  • if you want to use the package : using Subspace_MESE

Reproducing figure 8

In order to reproduce figure 8, we will run a script from the docs project environment which add the dependency to the plotting package CairoMakie. This folder contains the Project.toml and Manifest.toml that list all the dependencies and the version used to produce the figure. If you want to use newer

Steps

In order to run the example you need to :

  • compile the BART toolbox : https://mrirecon.github.io/bart/ (you can skip this step if you don't want to plot the BART reconstruction). After compilation/installation you can check the library path with which bart
  • download the dataset : https://zenodo.org/records/10610639 and extract the zip file.
  • download the current repository : git clone https://github.com/CRMSB/PAPER_subspace_MESE
  • Open a terminal and move to the docs folder in this repository and launch julia with this command in the terminal: julia --project -t auto
  • edit the script in docs/lit/example/subspace_julia_epg.jl and put the correct path in the variable
    • line 46 : path_raw should point to the bruker folder 10
    • line 49 : path_bart should point to the compiled bart library
  • run the literate example using the Manifest.toml files that stores the version of all the packages used to generate the figure
    using Pkg
    Pkg.instantiate()
    include("lit/examples/subspace_julia_epg.jl")

If you want to start from a fresh environment you need to add the correct version of this repository as well as the plotting library CairoMakie.jl (put the correct path to the script subspace_julia_epg.jl if you are not in the docs folder)

using Pkg

Pkg.add(url="https://github.com/CRMSB/PAPER_subspace_MESE",rev="1.0.1")
Pkg.add(name="CairoMakie", version="0.11.3")
Pkg.instantiate()
include("lit/examples/subspace_julia_epg.jl")

The figure will be saved as fig_bart_julia.png in the docs folder.

Note

If you obtain the error :

LoadError: ArgumentError: Package CairoMakie not found in current path

You might not have launch the script from the right environment. You should first move to the docs folder before launching julia --project -t auto in order to use the Project.toml that includes CairoMakie.jl package.

Version

  • 1.1.0
    • add sequence a_MESE_CS_360 (v0.0.1) for paravision 360

paper_subspace_mese's People

Contributors

atrotier avatar

Stargazers

 avatar

Watchers

 avatar

paper_subspace_mese's Issues

MRM Code review : Package CairoMakie not found

On running "include("lit/examples/subspace_julia_epg.jl")" I received
`EROOR: LoadError: ArgumentError: Package CairoMakie not found in current path.
Running "Pkg.add("CairoMakie")" resolved this, and was advised on the command line.

Compat error with LinearOperatorCOllection v1.2.0

The API to LinearOperatorCollection.il had changed in the most recent version (V1.2.0).
Therefore, in reconstruction multiCoilMultiEcho subspace (IterativeReconstruction.il)
the call to Weighting Op on L374 returns a "MethodError: no method matching" error. This is because a ";" is missing from the WeightingOp function definition in WeightingOp.jl (LinearOperatorCollection.jl), and so the keyword arguments are unsupported in LinearOperatorCollection.jl V1.2.0
By Downgrading to V1.1.2, I was able to run the code sucessfully

The author's own code appeared to run entirely as expected and without issues.

linked to JuliaImageRecon/LinearOperatorCollection.jl#7

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.