SimulatedShell¶
from mcot.dippi.scan import SimulatedShell
-
class
mcot.dippi.scan.
SimulatedShell
(scanner: mcot.dippi.scan.Scanner = <factory>, encoding: mcot.dippi.scan.Encoding = <Encoding.linear: 1>, bval: float = 3.0, gradients: Optional[numpy.ndarray] = None, ngradients_in: dataclasses.InitVar = 30, ndim_in: dataclasses.InitVar = 3, dual_echo: bool = True, t_phase: float = 30, theta_b0: float = 0.0)[source]¶ Represents the scan settings and physical constants
Used in both the simulator and in fitting
This represents a single shell of diffusion-weighted susceptibility data
The main scanner parameters to be set are B0, max_gradient, slew_rate, and the duration of the readout (t_ro) and pulse (t_pulse)
The main acquisition parameters to be set are bval, t_phase, and gradients. The gradients can be initialised uniformly by settings ngradients_in.
The second refocus pulse can be removed by setting dual_echo to false (will raise an error if t_ro > t_phase)
Based on this input the following times are computed - TE1 = readout1: time of first spin echo/readout - TE2: time of second spin echo (only if dual_echo=True) - readout2: time of second readout (=echo time + t_phase) - time_done: time the second readout is finished (readout2 + t_ro/2)
-
__init__
(scanner: mcot.dippi.scan.Scanner = <factory>, encoding: mcot.dippi.scan.Encoding = <Encoding.linear: 1>, bval: float = 3.0, gradients: Optional[numpy.ndarray] = None, ngradients_in: dataclasses.InitVar = 30, ndim_in: dataclasses.InitVar = 3, dual_echo: bool = True, t_phase: float = 30, theta_b0: float = 0.0) → None¶ Initialize self. See help(type(self)) for accurate signature.
Inheritance diagram
Methods
from_dict
(kvs, *[, infer_missing])from_json
(s, *[, parse_float, parse_int, …])schema
(*[, infer_missing, only, exclude, …])spherical_harmonics
(lmax[, odd])to_dict
([encode_json])to_json
(*[, skipkeys, ensure_ascii, …])Attributes
TE1
Time till first readout in ms
TE2
Time till second readout
b0_dir
b0_group
bval
Gradients orientations (1D array for angles in 2D-plane or (N, 3) array for full gradient orientations)
dataclass_json_config
dual_echo
time of phase accumulation
encoding
b-value in ms/micrometer^2
gradients
Helper parameters to define a default set of bvecs (if user does not provide one)
ndim
Whether gradients are on a circle (2) or sphere (3)
ndim_in
Whether to add a second refocus pulse
ngradients
Number of gradient orientations in this shell
ngradients_in
readout1
Time till the centre of the first readout in ms
readout2
Time till the second readout in ms
refocus1
Time of the centre of the first refocus pulse
refocus2
Time of the centre of the second refocus pulse
t_diff1
Time between end of excitation and start of refocus pulse in ms
t_diff2
Total duration of pulse (with ramp-up and ramp-down) in ms
t_phase
angle of B0 with the z-direction (assumed in x-z plane)
theta_b0
time_done
Time from the excitation pulse till the end of the second readout in ms
-
from_dict¶
-
classmethod
SimulatedShell.
from_dict
(kvs: Optional[Union[dict, list, str, int, float, bool]], *, infer_missing=False) → A¶
from_json¶
-
classmethod
SimulatedShell.
from_json
(s: Union[str, bytes, bytearray], *, parse_float=None, parse_int=None, parse_constant=None, infer_missing=False, **kw) → A¶
schema¶
-
classmethod
SimulatedShell.
schema
(*, infer_missing: bool = False, only=None, exclude=(), many: bool = False, context=None, load_only=(), dump_only=(), partial: bool = False, unknown=None) → dataclasses_json.mm.SchemaF[A]¶
to_dict¶
-
SimulatedShell.
to_dict
(encode_json=False) → Dict[str, Optional[Union[dict, list, str, int, float, bool]]]¶
to_json¶
-
SimulatedShell.
to_json
(*, skipkeys: bool = False, ensure_ascii: bool = True, check_circular: bool = True, allow_nan: bool = True, indent: Optional[Union[str, int]] = None, separators: Optional[Tuple[str, str]] = None, default: Optional[Callable] = None, sort_keys: bool = False, **kw) → str¶