Skip to content

Add TRX IO#114

Open
mattcieslak wants to merge 1 commit intofrankyeh:masterfrom
PennLINC:add-trx
Open

Add TRX IO#114
mattcieslak wants to merge 1 commit intofrankyeh:masterfrom
PennLINC:add-trx

Conversation

@mattcieslak
Copy link
Contributor

Hi Frank! We've been working on the C++ library for the TRX format and it's in good enough shape that it can be added to DSI Studio. We've recently also opened a PR to add TRX to MRtrix3 (MRtrix3/mrtrix3#3262).

The TRX format has a lot of the same features as tt, so things like cluster assignment, data per streamline, etc are fully supported. My only lingering fear is if I missed a half-voxel shift somewhere...

Unfortunately it does add some new dependencies, but they are all small and open-licensed.

@frankyeh
Copy link
Owner

frankyeh commented Jan 26, 2026 via email

@mattcieslak
Copy link
Contributor Author

Thanks Frank! Your c++ is much better than mine - if you're able to figure out how to trim down some of these dependencies I'd be very interested in incorporating those changes into https://github.com/tee-ar-ex/trx-cpp.

In the meantime I will see if I can get builds running on windows and macos

@frankyeh
Copy link
Owner

frankyeh commented Jan 27, 2026 via email

@mattcieslak
Copy link
Contributor Author

Oh wow, I didn't realize that you stopped using boost. I managed to get trx-cpp building on windows in tee-ar-ex/trx-cpp#16 and would be happy to help with the cross platform dsi studio builds.

It might be possible to get down to just libzip.

Are you familiar with https://conan.io/?

@frankyeh
Copy link
Owner

frankyeh commented Jan 27, 2026 via email

@mattcieslak
Copy link
Contributor Author

I got it down to libzip and Eigen, which is a header-only library. I've also got tests succeeding on macos and windows. What do you think?

@frankyeh
Copy link
Owner

frankyeh commented Jan 28, 2026 via email

@frankyeh
Copy link
Owner

frankyeh commented Jan 28, 2026 via email

@mattcieslak
Copy link
Contributor Author

It looks like it would be an easy shim to support Qt if it's available instead of libzip. I will check this out.

Does tipl support mem mapping? That is the only thing I can think of that might be tricky

@frankyeh
Copy link
Owner

frankyeh commented Jan 28, 2026 via email

@mattcieslak
Copy link
Contributor Author

Ah, I just tried out using Qt6's zip read/write and it doesn't support the zip method used by TRX :/

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.

2 participants