Describes how a specific spin/isochromat might experience the sequence.
...
...
@@ -28,6 +28,7 @@ The RF pulses cause mappings between these different states as described below.
- `:excite`/90: Takes spin state one step along the following sequence +longitudinal -> +transverse -> -longitudinal -> -transverse -> +longitudinal
- `:neg_excite`/270/-90: Inverse step compared with `:excite`.
- `readout_index`: After encountering the number of pulses as defined in `pulse_effects`, continue the `PathWay` until the readout given by `index` is reached. If set to 0 the `PathWay` is terminated immediately after the last RF pulse.
- `group`: which gradient grouping to consider for the `qvec` and `bmat`.
## Attributes
Over the pathway the following values are computed. Each can be accessed by calling the appropriate function:
...
...
@@ -39,7 +40,6 @@ Over the pathway the following values are computed. Each can be accessed by call
### Effect of gradients
The area under curve, q-values, and b-values are computed separately for each group of gradients (depending on the `group` keyword set during construction).
You can select which gradients to consider when accessing these values.
- [`qvec`](@ref): Net displacement vector in k-space/q-space.
- [`qval`](@ref)/[`area_under_curve`](@ref): size of the displacement in k-space/q-space. For a spoiled pathway, this should be large compared with 1/voxel size; for unspoiled pathways it should be (close to) zero.
- [`bmat`](@ref): Net diffusion weighting due to gradients along the [`Pathway`](@ref) in matrix form.
...
...
@@ -53,20 +53,21 @@ struct Pathway
# computed
duration_states::SVector{4,<:VariableType}
qvec::Dict{Any,SVector{3,<:VariableType}}
bmat::Dict{Any,SMatrix{3,3,<:VariableType,9}}
qvec::SVector{3,<:VariableType}
bmat::SMatrix{3,3,<:VariableType,9}
end
function Pathway(sequence::Sequence,pulse_effects::AbstractVector,readout_index::Integer=1)
function Pathway(sequence::Sequence,pulse_effects::AbstractVector,readout_index::Integer=1;group=nothing)