How to connect FBA data calculated from two different templates

Hello, MRTrix community. I have a piece of analysis I want to perform, but doing so seems a bit complicated.

We have two subject groups, Control and Patient. We’ve found a significant positive correlation between FD and a test variable in one specific region of the brain in the Controls, and a significant negative correlation between FD and the same test variable in a similar but not identical region of the brain in Patients.

What we’re looking to do now is compare apples to apples: get the mean Patient FD from the significant region from the Control brains, and the mean Control FD in the significant region from the Patient brains. In looking around, this seems like it’s going to require more than just tossing everything into mrregister and calling it a day. So my questions are:

  1. Is there any way to map or register one set of pixels directly to the other with their respective index.mif and/or template files? Or with voxel masks?
  2. Is there any way to map both directly onto a template made from combined data (which we also have), to again get us something that’s apples to apples?
  3. Is there some other method that I’m not thinking of offhand that would get me the information I need in an efficient and valid manner?

Thanks for your time and attention. I hope it’s clear what I’m looking to do; if not, I’m happy to try to clarify.

So I never heard back on this question, but was able to solve it myself with the help of my predecessor, who initiated a lot of our FBA work. For future reference of those who wind up searching this, my procedure:

  1. Convert the fixel mask to voxel space if it hasn’t been done already.
fixel2voxel sig_fixels_control.mif sum sig_voxels_control.mif
  1. Generate warps from one template to the other
mrregister wmfod_template_control.mif wmfod_template_patient.mif -nl_warp control_to_patient.mif patient_to_control.mif
  1. Apply warp to voxel mask
mrtransform sig_voxels_control.mif -warp control_to_patient.mif sig_voxels_control_patient_space.mif
  1. Convert voxel mask to fixels
voxel2fixel sig_voxels_control_patient_space.mif fd_0.75 fd_0.75_control sig_fixels_control.mif
  1. Threshold the fixels so they return to mask form.
mrthreshold -abs 0.50 sig_fixels_control.mif sig_fixels_control_mask.mif
  1. Extract data.
for subject in $subject_list
	mrstats -output mean -mask sig_fixels_control_mask.mif fd_0.75/$subject -ignorezero >> sig_fd.txt

Hope this helps!

Hi Jason,

Sorry for the delay; got a lot of obligations to juggle :sleepy:

There’s a range of different options available to you, selection from which may depend on the potential scope of future analyses of the data.

  • If you are content with simply getting a voxel mask from one template to another, knowing that this will result in a loss of orientation information, then what you’ve provided is pretty close. I would be changing step 1 to a maximum rather than sum operation, so that even if a voxel contains multiple significant fixels, the resulting image is still a binary mask, and the post-interpolation 0.5 thresholding operation in step 5 is not biased by the presence of values greater than one in the input image.

  • If there’s the prospect of wanting to test higher-order hypotheses upon data from both groups, then you eventually need quantitative fixel data from both groups represented within a common fixel template. This applies to your current use case also, as if the data were centralised already, you could simply take the fixel mask from testing a hypothesis on data from one group only, and use it to sample values from other data stored in the same template, but is a more general solution. There’s a couple of ways to do this:

    • Simply redo registration of subject images to a template, but using the same template for data across both groups, and redoing everything requisite in the pipeline from that point.

    • Following performing registration between the two templates, you can compose the non-linear warp from subject to template A and from template A to template B in order to transform subject data to template B using a single interpolation step. Note however that this should not be done if utilising FC in any way, as this would result in a massive correlation between group assignment and FC.

    But in both cases this applies to the transformation of FOD data. Dealing with establishment of spatial correspondence of fixel data is not something for which to my knowledge there are existing tools. It of course could be done, but any solution would need to deal with the facts that 1) one can’t spatially interpolate fixel data, and 2) fixels possess an orientation attribute.


1 Like