This repository houses the sequence and analysis scripts for the paper Combining the benefits of 3D acquisitions and spiral readouts for VASO fMRI at UHF [https://doi.org/10.1162/imag_a_00308]
-
Clone this repository
git clone https://github.com/monreal93/3D_SOSP_fMRI.git
-
clone pulseq toolbox into ./tools/pulseq/
git clone https://github.com/pulseq/pulseq.git
-
clone PNS prediction into ./tools/pns_prediction/
git clone https://github.com/filip-szczepankiewicz/safe_pns_prediction.git
-
The main file to generate pulseq sequences is ./pulseq/create_pulseq.m
-
Check system limits, if yours is not included, add an extra option for the params.gen.field_strength field and include the system limits in function ./pulseq/functions/prepare_system_limits.m current systems limits:
- SIEMENS 7T Magnetom Plus with SC72 gradients
- SIEMENS 9.4T with AC84-II gradients
- SIEMENS NextGen 7T with impulse gradient
-
If you want to check for PNS, inlcude your gradient .asc files in the folder ./tools/pns_prediction/gradient_files and use the flag params.gen.pns_check=1
-
To generate a sequence run the file ./pulseq/create_pulseq.m , different parameters are to be set in the section "Define parameters":
- folder_name = "folder_name" -> Folder where the pulseq and trajectory files will be saved
- seq_name = "seq_name" -> Sequence name (any name you want to use)
- params.gen.seq = "sequence_type" At the moment the well tested sequences are 1-VASO and 4-BOLD
-
After the script runs a folder ./data/"folder_name" will be created, with the following subfolders:
- acq ->
- analysis ->
- ismrmd ->
- raw ->
- recon ->
- sim ->
- tmp ->
-
Several files will be written into the folder ./data/"folder_name"/acq , this files will be used to run the sequence at the scanner and to reconstruct the data:
- "seq_name".seq -> pulseq sequence file
- "seq_name"_params.mat -> directory with sequence parameters
- "seq_name"_ks_traj.mat -> nominal trajectory
-
Once you acquire the data, save it in ./data/"folder_name"/raw/twix/
- ISMRMD
- Vendor raw data format to ISMRMRD converter
- VSCode with remote explorer and julia extensions
- Get Julia docker image docker pull julia:1.8.5 and create a container
docker run -t -d -P -v "path_to_folder":/usr/share/sosp_vaso/ --name julia_mri_recon julia:1.8.5 docker start julia_mri_recon
- I advise using VS code, follow the instructions to attach to a running docker container from VSCode
- Install julia extension in container
- Once attached to contaier, add folder /usr/share/sosp_vaso to workspace and open file ./recon/reconstructions_julia_mrd.jl
- Open the julia REPL (CTRL+SHIFT+P)
Start julia REPL
- Activate julia enviroment in recon folder:
using Pkg Pkg.activate("./recon/")
- Add modified version of MRIReco.jl
] dev https://github.com/monreal93/MRIReco_amm.git dev MRIOperators
- Instantiate (download and install packages):
Pkg.instantiate()
- Download sample raw data from LINK and save it into ./data/
- Convert vendor spiral and GRE-ME (for sensitivity and off-resonance maps) raw data to ISMRMRD format and save it into ./data/sample/ismrmd/3d/
siemens_to_ismrmrd -f ./data/sample/raw/twix/sample.dat -o ./data/sample/ismrmd/3d/sample.h5 siemens_to_ismrmrd -f ./data/sample/raw/twix/b0_sample_fieldmap.dat -o ./data/sample/ismrmd/3d/b0_sample_fieldmap.h5
- Open VScode and add folder
/usr/share/sosp_fmri/
to workspace. - Open the julia REPL (CTRL+SHIFT+P)
Start julia REPL
and typecd("/usr/share/sosp_fmri") include("./recon/reconstructions_julia_mrd.jl")