Git Product home page Git Product logo

Comments (4)

sravan953 avatar sravan953 commented on August 10, 2024

@jweine Issue #72 was related to this, fixed in PR #84. Please try it out and let me know!

from pypulseq.

btasdelen avatar btasdelen commented on August 10, 2024

@sravan953 Negative, unit test still fails:

======================================================================
FAIL: test_correct_start_trap (GradWaveformUT.TestGradientWaveform)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/bilal/Insync/[email protected]/GoogleDrive/codebase/pulseq_sequences/bilal_seqs/GradWaveformUT.py", line 16, in test_correct_start_trap
    self.assertTrue(np.allclose(wf[:, 0], 0, rtol=1e-10),
AssertionError: False is not true : First gridded sample is not zero

----------------------------------------------------------------------

I feel like the issue arises from the use of interpolation in the points_to_waveform(), as @jweine pointed out. I will take a look at the issue and see if I can come up with a better solution.

from pypulseq.

btasdelen avatar btasdelen commented on August 10, 2024

Update: Behavior is the same between 'Pulseq' and 'PyPulseq'. 'The issue' comes from the convention Siemens uses, shifting gradient sampling by half raster time, or equivalently, sampling the gradients at the center, not the edges. I believe confusion comes from the fact that, we use shifted gradients for visualization, when in fact, it makes more sense to display non shifted ones.

If we also plot the time-axis, as the first sample will not be at time=0, but time=GRT/2, it all makes sense. So I believe there is no bug here, just a confusing feature.

from pypulseq.

jweine avatar jweine commented on August 10, 2024

@bilal-tasdelen Thanks for following up on this. The existence of this shift is mentioned in the pulseq file format definition when using arbitrary gradients and rf-waveforms but not Trapezoidals. But I couldn't find the actual reason for using the shift / center-sampling. I feel it should be documented that this is a Siemens specific feature, as i don't think it is intuitive without more context (especially for non-siemens sites :)). Personally I think, this behaviour should not be presented to user but handled in the Siemens sequence export. But this is more of a design decision to be discussed also with the Pulseq project. Anyway, thanks for the clarification!

from pypulseq.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.