Skip to content

dwipreproc: Compatibility with FSL6.0.0#1509

Merged
Lestropie merged 2 commits intomasterfrom
dwipreproc_fsl6_volcombine_fix
Dec 12, 2018
Merged

dwipreproc: Compatibility with FSL6.0.0#1509
Lestropie merged 2 commits intomasterfrom
dwipreproc_fsl6_volcombine_fix

Conversation

@Lestropie
Copy link
Copy Markdown
Member

My guess is that somewhere in the topup code, when provided with the --fout option to output the estimated field, it generates a deep copy of the input b=0 series, and then overwrites the contents of the first volume with the estimated field. However because they erroneously don't reduce the template image to 3 axes when generating said copy, the output "field map" image contains copies of all but the first input b=0 volume.

Would expect to be fixed reasonably quickly at their end, but need to catch and handle here nonetheless.

Closes #1493.

In this particular version of FSL, the image output by the --fout option of the topup command generates a 4D image, where the first volume is the expected field map image, but the other volumes are intensity-scaled versions of the uncorrected input images. While this is certainly an FSL bug, the dwipreproc script nevertheless needs to be compatible with such data. Currently it causes an issue only when explicit DWI volume recombination is to be performed. This change detects the erroneous topup output, and extracts just the first volume.
Closes #1493.
@Lestropie
Copy link
Copy Markdown
Member Author

TravisCI tests currently failing due to BitBucket having disabled TLS1.0 for security reasons, and we're using it to pull Eigen. However the versions of Python installed on TravisCI should be new enough to have the newer versions of TLS available. So not sure if something remains internally misconfigured at TravisCI's end, or what's going on.

@jdtournier
Copy link
Copy Markdown
Member

Ok, might be time to use Eigen's new official git repo and ditch mercurial...?

Copy link
Copy Markdown
Member

@jdtournier jdtournier left a comment

Choose a reason for hiding this comment

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

Seems good to me. Note the fix for TravisCI, now using their official git repo rather than Mercurial. Seems to work - feel free to merge if happy with that.

@Lestropie Lestropie merged commit e890d83 into master Dec 12, 2018
@Lestropie Lestropie deleted the dwipreproc_fsl6_volcombine_fix branch December 12, 2018 03:19
@Lestropie Lestropie mentioned this pull request Dec 12, 2018
Lestropie added a commit that referenced this pull request Jul 21, 2023
In #1509, a CI failure was encountered where on Mac ARM64 the shared library would not link, complaining about the absence of __set_fetch_function() for unsigned long datatype. It is believed that this is being caused by the presence of MR::Math::load_matrix() with size_t template type being used for loading pre-defined permutation matrices. To address this, the new typedef MR::Math::Stats::index_type is being introduced to refer to any item being indexed into an array or matrix. A 32-bit unsigned integer should be sufficient for all cases of such (the only possible exception is the calculation of the maximal number of shuffles, for which 64-bit unsigned integers are used, just for the sake of potentially calculating and reporting that number, even if it turns out to be much larger than the number of shuffles actually utilised).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dwipreproc explicit volume recombination

2 participants