StimulatedEchoSimulator#
- class torchsim.simulators.StimulatedEchoSimulator(*args, **kwargs)[source]#
Bases:
SimulatorThree pulses, sampled at the spin echo of the first two and at the stimulated echo.
The second pulse,
TE / 2after the first, refocuses part of the transverse magnetization into a spin echo atTEand stores part of it along z, where it relaxes with T1 alone; the third pulse,TMafter the second, returns that part to the transverse plane, where it rephases into the stimulated echoTE / 2later [1]. With instantaneous pulses about x, the two samples arei M0 sin(a1) sin^2(a2 / 2) exp(-TE / T2)andi M0 sin(a1) sin(a2) sin(a3) exp(-TE / T2) exp(-TM / T1) / 2, whatever the off-resonance. The transverse magnetization is spoiled after the spin echo, so the second sample is the stimulated echo alone. With one flip angle, andTEtwice andTMthree times its own echo time, this is the sequence BART’sepgplays as Spinecho.References
Examples
from torchsim.simulators import StimulatedEchoSimulator sequence = StimulatedEchoSimulator(flip=90.0, TE=20.0, TM=100.0) spin_echo, stimulated_echo = sequence.simulate(T1=1000.0, T2=80.0)
Methods
bindThis simulator with more fixed on it, values or settings alike.
describeReturn the description this protocol plays.
evaluateRun one simulation of the described protocol.
from_descriptionReturn a simulator over a stream someone else assembled.
from_pulseqReturn a simulator over one repetition of a Pulseq sequence.
jacobianReturn the signal and its derivative with respect to
diff.Return the three pulses and the two samples.
playedReturn the protocol as it will be laid out.
repetition_sReturn how long one repetition lasts, given what the layout played.
simulateReturn the recorded signal.
- layout(*, flip, TE, TM)[source]#
Return the three pulses and the two samples.
- Parameters:
- Raises:
ValueError – If the third pulse would play before the spin echo, or if
flipis neither scalar nor one per pulse.