From e2e1a4e7495ecf52c59737f5e8569b329de35541 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk>
Date: Fri, 22 Mar 2024 13:18:29 +0000
Subject: [PATCH] Move pulseq to IO module

---
 src/MRIBuilder.jl               |  6 +++---
 src/{ => sequence_io}/pulseq.jl |  8 ++++----
 src/sequence_io/sequence_io.jl  | 16 ++++++++++++++++
 3 files changed, 23 insertions(+), 7 deletions(-)
 rename src/{ => sequence_io}/pulseq.jl (98%)
 create mode 100644 src/sequence_io/sequence_io.jl

diff --git a/src/MRIBuilder.jl b/src/MRIBuilder.jl
index 520111e..2f67ed9 100644
--- a/src/MRIBuilder.jl
+++ b/src/MRIBuilder.jl
@@ -12,7 +12,7 @@ include("pathways.jl")
 include("parts/parts.jl")
 include("sequences/sequences.jl")
 include("printing.jl")
-include("pulseq.jl")
+include("sequence_io/sequence_io.jl")
 include("plot.jl")
 
 import .BuildSequences: build_sequence, global_model, global_scanner, fixed
@@ -39,8 +39,8 @@ export dwi_gradients, readout_event, excitation_pulse, refocus_pulse, Trapezoid,
 import .Sequences: GradientEcho, SpinEcho, DiffusionSpinEcho, DW_SE, DWI
 export GradientEcho, SpinEcho, DiffusionSpinEcho, DW_SE, DWI
 
-import .Pulseq: read_pulseq
-export read_pulseq
+import .SequenceIO: read_sequence
+export read_sequence
 
 import .Plot: plot_sequence
 export plot_sequence
diff --git a/src/pulseq.jl b/src/sequence_io/pulseq.jl
similarity index 98%
rename from src/pulseq.jl
rename to src/sequence_io/pulseq.jl
index a907bce..6dc7276 100644
--- a/src/pulseq.jl
+++ b/src/sequence_io/pulseq.jl
@@ -1,8 +1,8 @@
 module Pulseq
-import ..Variables: duration
-import ..Scanners: Scanner
-import ..Components: GenericPulse, GradientWaveform, ADC
-import ..Containers: BuildingBlock, Sequence, Wait
+import ...Variables: duration
+import ...Scanners: Scanner
+import ...Components: GenericPulse, GradientWaveform, ADC
+import ...Containers: BuildingBlock, Sequence, Wait
 import DataStructures: OrderedDict
 import Interpolations: linear_interpolation, Flat
 import StaticArrays: SVector
diff --git a/src/sequence_io/sequence_io.jl b/src/sequence_io/sequence_io.jl
new file mode 100644
index 0000000..07f0cf2
--- /dev/null
+++ b/src/sequence_io/sequence_io.jl
@@ -0,0 +1,16 @@
+module SequenceIO
+
+include("pulseq.jl")
+
+import .Pulseq: read_pulseq
+
+
+function read_sequence(filename::AbstractString)
+    if endswith(filename, ".seq")
+        return read_pulseq(filename)
+    else
+        error("Cannot read file $filename. Extension is not recognised")
+    end
+end
+
+end
\ No newline at end of file
-- 
GitLab