From 94f395aaf3a4e809c1b99facf7b7376e30c0e6cc Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <MichielCottaar@protonmail.com> Date: Mon, 13 Jan 2025 15:29:51 +0000 Subject: [PATCH] Correctly normalise negative gradient pulses --- src/sequence_io/pulseq.jl | 7 ++++--- src/sequence_io/pulseq_io/parsers/shapes.jl | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sequence_io/pulseq.jl b/src/sequence_io/pulseq.jl index 5f84e23..c0f28e3 100644 --- a/src/sequence_io/pulseq.jl +++ b/src/sequence_io/pulseq.jl @@ -177,12 +177,13 @@ function PulseqBlock(block::BaseBuildingBlock; BlockDurationRaster, AdcRasterTim times = [t for (t, _) in waveform(block)] for dim in 1:3 amplitudes = [g[dim] for (_, g) in waveform(block)] - if iszero(maximum(abs.(amplitudes); init=0.)) + max_ampl = maximum(abs.(amplitudes); init=0.) + if iszero(max_ampl) push!(grads, nothing) else push!(grads, PulseqGradient( - maximum(amplitudes) * 1e3, - PulseqShape(amplitudes ./ maximum(amplitudes)), + max_ampl * 1e3, + PulseqShape(amplitudes ./ max_ampl), PulseqShape(times .* 1e-3), 0., )) diff --git a/src/sequence_io/pulseq_io/parsers/shapes.jl b/src/sequence_io/pulseq_io/parsers/shapes.jl index 1a1298b..3a062f7 100644 --- a/src/sequence_io/pulseq_io/parsers/shapes.jl +++ b/src/sequence_io/pulseq_io/parsers/shapes.jl @@ -94,6 +94,7 @@ function gen_section(comp:: PulseqComponents, ::Val{:shapes}) res = PulseqSection{:shapes}(String[]) for index in sort([keys(comp.shapes)...]) shape = compress(comp.shapes[index]) + @assert all(isfinite.(shape.samples)) append!(res.content, [ "", "shape_id $index", -- GitLab