-
Notifications
You must be signed in to change notification settings - Fork 30
Read Pulseq 1.5.0 #614
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Read Pulseq 1.5.0 #614
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use three correct logic so pulseq 1.4 still works. No need to pass the version into the get_X functions, you can just check the input length of the library.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #614 +/- ##
==========================================
+ Coverage 90.14% 91.05% +0.90%
==========================================
Files 57 57
Lines 3228 3387 +159
==========================================
+ Hits 2910 3084 +174
+ Misses 318 303 -15
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
(1) Update get_events to add (2) Test with reader with (take inspiration from https://juliahealth.org/KomaMRI.jl/dev/explanation/5-seq-events/):
@Stockless can you give use the MATLAB files you were using for the tests? (3) Modify to consider new RF uses, to calculate k-space correctly (not guess RF use by > 90.0):
If use is Undefined(), keep using the current method; otherwise, use the provided value. If center is not defined (i.e., == 0.0), keep the current method; otherwise, use the provided value. |
|
@pvillacorta , @cncastillo mentioned you are interested in working this PR out. I want to get it done too. Let's meet to sort out the efforts? |
Yes! Let's join forces :) |
|
@pvillacorta @gsahonero do you guys want to plan a meeting to push this? |
|
@gsahonero and I are meeting this thursday at 4pm (spanish time). I hope we can plan how to finish this PR and the one for writing Pulseq. |
- Improve Grad and RF constructors for improved readability and error handling. - Fix documentation typo about `A` and `T` vectors - Add SHA and MD5 packages for hash generation/verification - Improve signature generation/verification
- Add missing signature-related functions - Simplify `read_RF` and `read_ADC` in the same way as `read_Grad`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
KomaMRI Benchmarks
Details
| Benchmark suite | Current: e37125f | Previous: 11d3180 | Ratio |
|---|---|---|---|
MRI Lab/Bloch/CPU/2 thread(s) |
336940162.5 ns |
337633469 ns |
1.00 |
MRI Lab/Bloch/CPU/4 thread(s) |
275131359.5 ns |
276282606 ns |
1.00 |
MRI Lab/Bloch/CPU/8 thread(s) |
238117403 ns |
209852165 ns |
1.13 |
MRI Lab/Bloch/CPU/1 thread(s) |
564731030 ns |
555065232 ns |
1.02 |
MRI Lab/Bloch/GPU/CUDA |
21277447.5 ns |
21231134 ns |
1.00 |
MRI Lab/Bloch/GPU/oneAPI |
82937542 ns |
77053690 ns |
1.08 |
MRI Lab/Bloch/GPU/Metal |
93370833 ns |
95540333 ns |
0.98 |
MRI Lab/Bloch/GPU/AMDGPU |
18731441.5 ns |
24763685 ns |
0.76 |
Slice Selection 3D/Bloch/CPU/2 thread(s) |
1565922227 ns |
1592087059 ns |
0.98 |
Slice Selection 3D/Bloch/CPU/4 thread(s) |
877740301 ns |
889539516 ns |
0.99 |
Slice Selection 3D/Bloch/CPU/8 thread(s) |
558875084 ns |
565401528.5 ns |
0.99 |
Slice Selection 3D/Bloch/CPU/1 thread(s) |
3058039968 ns |
3029269071 ns |
1.01 |
Slice Selection 3D/Bloch/GPU/CUDA |
31889354 ns |
32639703 ns |
0.98 |
Slice Selection 3D/Bloch/GPU/oneAPI |
124090097 ns |
121489006.5 ns |
1.02 |
Slice Selection 3D/Bloch/GPU/Metal |
108830396 ns |
111152750 ns |
0.98 |
Slice Selection 3D/Bloch/GPU/AMDGPU |
25108034.5 ns |
32636098 ns |
0.77 |
This comment was automatically generated by workflow using github-action-benchmark.
- Fix contructors, auxiliary functions and tests - Restore previous `read_Grads`, `read_RF`, and `read_ADC` implementations - Improve signature handling
|
Pulseq files from |
- Do not use recursive constructors
- Come back to `get_RF_use_from_char(::Val{Char})`
- Remove `get_RF_use_from_char`from RF constructor
- Export RFUses
… into pulseq1.5.0
|
I will start with tests tomorrow, with this in mind:
I will also try to test the reader with .seq files made with |
|
For tests, I think we need three complementary testing strategies, and all of them are important for proper validation: 1. Round-trip test inside KomaMRI (for both
|
|
I have merged #658 into this PR, and made the |
This PR addresses issue #555 by adding support for reading Pulseq files in version 1.5.0.