Conversation
|
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 |
|
I reviewed the TRX code again and noticed that it depends on about five
external libraries, which is quite a lot.
At the moment, DSI Studio only depends on zlib and OpenGL, and even then,
either of those can occasionally break the build pipeline on certain
OS/toolchain combinations and give me a headache (BTW, MacOS is phasing out
OpenGL, and this is my big trouble ahead and I needs to replace it in the
near future)
Adding TRX as-is would introduce five additional dependencies, which
essentially means five more potential failure points, taking turns to break
builds across different platforms.
I do think TRX support is valuable, but from a maintenance standpoint this
is a real concern. One option might be to keep TRX support as a separate
branch for users who need it regularly. Another possibility is to provide
"trx2tt" and "tt2trx" as standalone tools, so we can avoid pulling these
dependencies into the main DSI Studio build altogether.
This would keep the core build much more stable and avoid ongoing
dependency-related issues.
Thanks again for your work on this, and wish there are more people helping
to look into whether some of the dependencies can be trimmed down.
… Message ID: ***@***.***>
|
|
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/? |
|
I removed boost years ago and that did reduce some build issues.
TRX would become much more integrable if the dependencies are reduced to
only libzip.
Are you familiar with https://conan.io/?
I checked it a long time ago but did not proceed. I will check again and
see how to it may help.
Thanks for all the help!
—
… Reply to this email directly, view it on GitHub
<#114 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACDI4OYADMCQ32BSPYTJWL4I3FKVAVCNFSM6AAAAACS6VWO7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTQMBSG42DQNRWGM>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
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? |
|
The eigen functions could be replaced by TIPL. Do you know which eigen
function was used here?
…On Tue, Jan 27, 2026 at 7:57 PM Matt Cieslak ***@***.***> wrote:
*mattcieslak* left a comment (frankyeh/DSI-Studio#114)
<#114 (comment)>
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?
—
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACDI4NYKHAVC6FAUTT5RPL4JACQRAVCNFSM6AAAAACS6VWO7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTQMBYGM3DCOBYGM>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
BTW, Qt has it own QZipWriter / QZipReader, and likely we may also remove
the dependency on libzip.
Likely we may be able to include a naked TRX.
…On Tue, Jan 27, 2026 at 8:16 PM Frank Yeh ***@***.***> wrote:
The eigen functions could be replaced by TIPL. Do you know which eigen
function was used here?
On Tue, Jan 27, 2026 at 7:57 PM Matt Cieslak ***@***.***>
wrote:
> *mattcieslak* left a comment (frankyeh/DSI-Studio#114)
> <#114 (comment)>
>
> 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?
>
> —
> Reply to this email directly, view it on GitHub
> <#114 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AACDI4NYKHAVC6FAUTT5RPL4JACQRAVCNFSM6AAAAACS6VWO7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTQMBYGM3DCOBYGM>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>
|
|
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 |
|
Qt's QFile seems to have mem mapping function.
…On Tue, Jan 27, 2026 at 8:44 PM Matt Cieslak ***@***.***> wrote:
*mattcieslak* left a comment (frankyeh/DSI-Studio#114)
<#114 (comment)>
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
—
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACDI4LXEA4NCAUX4LCAJGD4JAH6DAVCNFSM6AAAAACS6VWO7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTQMBYGQ4DKMRVGQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
Ah, I just tried out using Qt6's zip read/write and it doesn't support the zip method used by TRX :/ |
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.