Skip to content

Support 2D COSY TWIX reader #151

@darrencl

Description

@darrencl

Hi, I would like to move our work which parsing 2D COSY Siemens into suspect. What we need is another metadata to record dwell time on T1 axis. Also 2D needs to be able to infer the frequency along both axes. That said, we could make a class for 2D COSY to accommodate those (and other stuff we might find along the way).

After adding that, my plan is to retain the sequence name information in TwixBuilder.

mrs_data = MRSData(data,
self.header_params["dt"],
self.header_params["f0"],
te=self.header_params["te"],
tr=self.header_params["tr"],
metadata=metadata,
transform=self.header_params["transform"])
return mrs_data

Then in TwixBuilder.build_mrsdata() above, I am going to put something like:

if self.sequence_name in [".....SVS_SE"]:
    return MRSData(....)
elif self.sequence_name in ["....COSY", ...]:
    return COSYMRSData(...)

This approach allows us to know exactly the sequence, hence, we can be confident if it is a 1-dimensional or not. That said, upon the returning MRSData above, we can correct/remove the unused extra dimension as written in Gannet (also found this issue when loaded on suspect).

See this comment (the dimension I am talking about is referred to the fourth dimension in that comment): https://github.com/richardedden/Gannet3.0/blob/534ce01c824359f84ca48fd17c1562fb2a8f7fd1/SiemensTwixRead.m#L305

With the presence of this COSY class, we might also include DICOM COSY reader, although it might be very dumb compared to this TWIX COSY reader. Since the DICOM saves COSY in individual file per increment, we might need different function that accepts directory (e.g. suspect.io.load_siemens_dicom_2d(dicom_volume)). But of course, let's leave this for later. :-)

Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions