Skip to content

Commit

Permalink
build based on 0247fa5
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Sep 25, 2024
1 parent 2b267e0 commit 4004d5a
Show file tree
Hide file tree
Showing 14 changed files with 773 additions and 0 deletions.
9 changes: 9 additions & 0 deletions previews/PR54/API/index.html

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions previews/PR54/GettingStarted/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Getting Started · MRINavigator.jl</title><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.045/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">MRINavigator.jl</a></span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li class="is-active"><a class="tocitem" href>Getting Started</a><ul class="internal"><li><a class="tocitem" href="#Data-requirements"><span>Data requirements</span></a></li><li><a class="tocitem" href="#Data-reshaping"><span>Data reshaping</span></a></li><li><a class="tocitem" href="#The-parameters-dictionary"><span>The parameters dictionary</span></a></li><li><a class="tocitem" href="#User-examples"><span>User examples</span></a></li><li><a class="tocitem" href="#Disclaimer"><span>Disclaimer</span></a></li></ul></li><li><a class="tocitem" href="../Pipelines/">Pipelines</a></li><li><a class="tocitem" href="../API/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Getting Started</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Getting Started</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/NordicMRspine/MRINavigator.jl/blob/main/docs/src/GettingStarted.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Get-started"><a class="docs-heading-anchor" href="#Get-started">Get started</a><a id="Get-started-1"></a><a class="docs-heading-anchor-permalink" href="#Get-started" title="Permalink"></a></h1><p>Example data acquired on a phantom can be downloaded <a href="https://doi.org/10.5281/zenodo.10731729">here</a>. There are available <a href="https://github.com/NordicMRspine/UserExample_MRINavigator">examples scripts and expected results</a> to get started.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>MRINavigator.jl is developed for and tested on data acquired with a specific set of parameters on Siemens scanners. The requirements are specified in the following paragraphs. The navigator-based correction may fail when used outside this domain.</p></div></div><h2 id="Data-requirements"><a class="docs-heading-anchor" href="#Data-requirements">Data requirements</a><a id="Data-requirements-1"></a><a class="docs-heading-anchor-permalink" href="#Data-requirements" title="Permalink"></a></h2><p>The navigator based correction can only be applied on the raw data of a gradient echo acquisitions in <a href="https://ismrmrd.readthedocs.io/en/latest/index.html">MRD format</a>. The gradient echo acquisition can be multi-echo or single-echo. The slices should be positioned axially (can be angulated) and one average per repetition should be used. The concatenation value should be set to one, meaning that the sequence repetition time (TR) shold be long enough to acquire one line in every slice. This is necessary to correctly identify and remove the reference data from the Siemens scans. The gradient echo acquisition must include a navigator readout through the center of k-space at <strong>the end</strong> of each TR. During the acquisition, it is advisable to collect the signal from a respiratory belt as a reference. This can be used to unwrap the navigator&#39;s phase estimates if phase wrapping is present.</p><p>Other than the main acquisition, which is usually undersampled, a lower resolution, fully sampled scan is also necessary to compute the <a href="https://doi.org/10.1002/mrm.1241">coils sensitivity maps</a> and reconstruct the images. This low-resolution scan is also called a reference scan and should include only one echo. It is possible to extract a single echo from a multi echo acquisition using the <code>selectEcho!</code> function. </p><h2 id="Data-reshaping"><a class="docs-heading-anchor" href="#Data-reshaping">Data reshaping</a><a id="Data-reshaping-1"></a><a class="docs-heading-anchor-permalink" href="#Data-reshaping" title="Permalink"></a></h2><p>All the data should be exported from the scanner in raw format. Then they should be converted to <a href="https://ismrmrd.readthedocs.io/en/latest/index.html">ISMRMRD</a> format. Siemens TWIX data can be converted to ISMRMRD using <a href="https://github.com/ismrmrd/siemens_to_ismrmrd">siemens<em>to</em>ismrmrd</a>. The <a href="https://doi.org/10.5281/zenodo.10731729">example data</a> are in ISMRMRD format and do no require any conversion. Data in ISMRMRD format can be loaded into the Julia framework. Conversion of data from other vendors has not been explicitly tested by the authors. The repiratory belt recording must be synchronised with the time stamps in the image acquisition (i.e resampled). Then they must be saved in a two-column vector (1:time [ms], 2:trace) in .mat format. Each repetition should be in a different file. The time should be expressed in seconds from the beginning of the day and contain time points before and after the image acquisition (at least 4 s).</p><h2 id="The-parameters-dictionary"><a class="docs-heading-anchor" href="#The-parameters-dictionary">The parameters dictionary</a><a id="The-parameters-dictionary-1"></a><a class="docs-heading-anchor-permalink" href="#The-parameters-dictionary" title="Permalink"></a></h2><p>Before calling the package functions, the relevant correction pipeline should be chosen and the parameters dictionary should be filled. Also the data paths and results paths need to be defined. For more details regarding the correction pipelines and parameters read the <a href="../Pipelines/#Navigator-based-correction-pipelines">Navigator-based correction pipelines</a> page. All the information necessary to apply the corrections is defined in a <a href="https://docs.julialang.org/en/v1/base/collections/#Dictionaries">dictionary</a>. This includes all the file paths and analysis parameters. The user can also add items to the dictionary if needed. Here is an example of a <code>params</code> dictionary:</p><pre><code class="language-julia hljs">params = Dict{Symbol,Any}()
params[:subject] = &quot;sub_01&quot;
params[:slices] = [1,2] # type nothing for all slices
params[:echoes] = [3,4] # type nothing for all echoes
params[:rep] = 0
params[:comp_sensit] = true
params[:comp_centerline] = true
params[:trust_SCT] = false
params[:use_centerline] = true
params[:corr_type] = &quot;FFT_unwrap&quot;
params[:FFT_interval] = 35 # millimetres
params[:mask_thresh] = 0.13
params[:root_path] = &quot;/Users/me/my_data/&quot;

params[:label] = params[:corr_type] * &quot;_rep_&quot; * string(params[:rep])
params[:path_imgData] = params[:root_path] * params[:subject] * &quot;/h5/gre2D.h5&quot;
params[:path_refData] = params[:root_path] * params[:subject] * &quot;/h5/gre2D_Ref.h5&quot;
params[:path_niftiMap] = params[:root_path] * params[:subject] * &quot;/Nifti/gre2D_Ref.nii&quot;
params[:path_centerline] = params[:root_path] * params[:subject] * &quot;/Nifti/&quot;
params[:path_physio] = params[:root_path] * params[:subject] * &quot;/Physiological_trace/belt_reco_rep&quot;
params[:path_sensit] = params[:root_path] * params[:subject] * &quot;/Results/senseMap_GRE.jld2&quot;
params[:path_noise] = params[:root_path] * params[:subject] * &quot;/Results/noisemat.jld2&quot;
params[:path_results] = params[:root_path] * params[:subject] * &quot;/Results/&quot;
params[:file_name] = &quot;gre2D&quot;</code></pre><h2 id="User-examples"><a class="docs-heading-anchor" href="#User-examples">User examples</a><a id="User-examples-1"></a><a class="docs-heading-anchor-permalink" href="#User-examples" title="Permalink"></a></h2><p>Three user examples are available in the folder <a href="https://github.com/NordicMRspine/UserExample_MRINavigator">user examples</a>:</p><ul><li><strong>Compact</strong>: runs all the selected pipeline automatically but it is not customizable and not amenable to debugging.</li><li><strong>Semi-Compact</strong>: allows for some level of customization and it is easy to debug.</li><li><strong>Complete</strong>: requires more knowledge of the data structures but it is flexible and adaptable.</li></ul><h2 id="Disclaimer"><a class="docs-heading-anchor" href="#Disclaimer">Disclaimer</a><a id="Disclaimer-1"></a><a class="docs-heading-anchor-permalink" href="#Disclaimer" title="Permalink"></a></h2><p>Siemens data only were used to develop MRINavigator. All the functions to adjust the data before running the pipeline (e.g., the function to extract the navigator profiles or to remove the reference profiles) have been tested on Siemens data only. There is no guarantee that all of these functions are needed and will work on other vendors data. Other vendors users should convert the raw data in <a href="https://ismrmrd.readthedocs.io/en/latest/index.html">ISMRMRD</a> format and when loading these into the Julia framework they should make sure that all the needed information is present. Please start from the <a href="https://github.com/NordicMRspine/UserExample_MRINavigator">complete user example</a> if doing this. The functions to compute and apply the corrections should then work correctly.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../Pipelines/">Pipelines »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Wednesday 25 September 2024 13:31">Wednesday 25 September 2024</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 4004d5a

Please sign in to comment.