Skip to content

Add Pulseq types to MRD#39

Draft
johnstairs wants to merge 9 commits intomainfrom
johnstairs/pulseq-types
Draft

Add Pulseq types to MRD#39
johnstairs wants to merge 9 commits intomainfrom
johnstairs/pulseq-types

Conversation

@johnstairs
Copy link
Contributor

As an experiment, adding Pulseq types to the MRD protocol, along with two Python tools seq_to_mrd and mrd_to_seq to convert between .seq text files and MRD.

@naegelejd
Copy link
Collaborator

Bump YARDL_VERSION here too:

YARDL_VERSION: 0.6.4

@hansenms
Copy link
Member

hansenms commented Oct 9, 2025

@kekeke21 Can you take a look at this,

@kekeke21
Copy link
Contributor

kekeke21 commented Oct 9, 2025

Thank you for all the tools in addition to the schema. Our current source of gradient data is IDEA simulator output, and we will fit it into this seq format.
As we review this PR and merge it along with #35 for optional acquisition fields, #37 for image field data and image type annotation will be the last request we can discuss in the meeting.

@johnstairs johnstairs force-pushed the johnstairs/pulseq-types branch from b93a040 to bd9dc8d Compare October 28, 2025 17:47
custom: string->string

# A sequence block that includes possible RF, gradient, and ADC events.
Block: !record
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a very generic name. The MRD model has a larger scope than just pulse sequences, so qualifying these generic names that come from Pulseq, e.g. Block -> SequenceBlock, might be better.

What do you think about making the names more descriptive here, even if that means they differ from the Pulseq nomenclature? I'm also thinking Shape -> CompressedSamples (or similar).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the naming as the nouns in protocol.yml leaves the first time users confusing. SequenceBlock or PulseqBlock sounds good, maybe SequenceShape or PulseqShape for Shape since the Shape field in pusleq can be either compressed or uncompressed format

imageArray: ImageArray
pulseqDefinitions: PulseqDefinitions
blocks: Block*
rf: RFEvent
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rename to rfEvent, matching the rest of the StreamItem names.

rf: RFEvent
arbitraryGradient: ArbitraryGradient
trapezoidalGradient: TrapezoidalGradient
adc: ADCEvent
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rename to adcEvent, matching the rest of the StreamItem names.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Comments