pub struct QsmPipelineConfig {
pub masking: MaskingConfig,
pub field_mapping: FieldMappingConfig,
pub bg_removal: BgRemovalConfig,
pub inversion: InversionConfig,
pub reference: QsmReference,
pub qsm_per_echo: bool,
pub tukey_window: f64,
}Expand description
Complete QSM pipeline configuration.
Contains all per-stage configs. Consumers call individual stage functions
(e.g. run_field_mapping, run_bg_removal) passing the relevant section.
Masking config is used when the consumer needs to generate a mask.
Fields§
§masking: MaskingConfig§field_mapping: FieldMappingConfig§bg_removal: BgRemovalConfig§inversion: InversionConfig§reference: QsmReference§qsm_per_echo: boolReconstruct a QSM for each echo instead of one from the echo-combined field (see
super::per_echo): each echo’s phase is unwrapped and divided by its own echo time
(super::per_echo::run_field_mapping_per_echo), and background removal, inversion and
referencing run on that echo’s field with its own echo time (ScanMetadata::echo). The
echo combination (FieldMappingConfig::b0_estimation), phase-offset removal and bipolar
correction then do not run. Default false: one QSM from the combined field.
tukey_window: f64Taper ratio of the SNU χ-separation toolbox’s k-space Tukey window
([crate::utils::tukey_window]), which the host applies to every echo’s magnitude and
phase on the acquired grid before anything else reads them
(tukey_window_mag_phase). The
toolbox uses 0.4 for Siemens and GE and 0 for Philips, before all three of its χ-separation
methods (the authors’ setting: rules chi-sep.tukey-* and chi-sepnet.tukey-*). Default
0: no windowing.
Trait Implementations§
Source§impl Clone for QsmPipelineConfig
impl Clone for QsmPipelineConfig
Source§fn clone(&self) -> QsmPipelineConfig
fn clone(&self) -> QsmPipelineConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for QsmPipelineConfig
impl Debug for QsmPipelineConfig
Auto Trait Implementations§
impl Freeze for QsmPipelineConfig
impl RefUnwindSafe for QsmPipelineConfig
impl Send for QsmPipelineConfig
impl Sync for QsmPipelineConfig
impl Unpin for QsmPipelineConfig
impl UnsafeUnpin for QsmPipelineConfig
impl UnwindSafe for QsmPipelineConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more