I have already completed tractography and tract segmentation using QSIRecon (specifically the mrtrix_multishell_msmt_pyafq_tractometry pipeline).
As a result, I now have all the .trk files for each tract, and the tractometry pipeline has successfully generated FA and MD profiles (node-wise values for each tract).
Now, I would like to add NODDI-derived metrics (ICVF and ODI) and FD (Fiber density) to the tract profiles — ideally computed along the same streamlines and nodes as the existing FA/MD profiles.
Here’s my current setup:
.trk files for each tract (already generated by pyAFQ-QSIrecon)
FD and NODDI results: (in DWI space)
FA and MD profiles already exist from the pyAFQ output
(DWI map aligned AC-PC space now)
My goal
Compute node-wise ICVF, ODI and FD profiles using the same streamlines and node coordinates as in the existing FA/MD tract profiles, so that I can make direct comparisons between these metrics.
Questions
Is this the recommended way to generate new tract profiles for additional metrics using existing streamlines (to ensure one-to-one correspondence across metrics)?
Is there a built-in or more integrated way to feed these NODDI/FD maps back into pyAFQ so that it can produce the same type of tract profiles as for FA/MD, but using my precomputed .trk files?
Any advice on potential pitfalls (e.g., space alignment, interpolation order, streamline filtering differences between FA/MD and NODDI/FD maps)?
Thanks a lot for your help!
If anyone has worked on combining NODDI metrics with pyAFQ/QSIRecon tractometry results, I’d love to hear your workflow or best practices.
We are planning on making it so one can port scalars from other recon specs to go in to PyAFQ for profiles, but no timeline yet on when we will do this.
As long as you use the qsirecon derived streamlines you should be okay. All the scalar maps should be aligned to one another, assuming qsirecon was used to generate them.
Thank you very much for your helpful answers in the previous thread.
I would like to confirm that my understanding is correct.
As I understand it now:
There is currently no pyAFQ function that directly applies new tissue property maps (e.g., ICVF, ODI, FD) to already estimated trk files from QSIrecon–pyAFQ to produce new tract profiles.
DIPY functions could use (dipy.stats.analysis.afq_profile).
Alternatively, one could re-run QSIrecon-pyAFQ with custom reconspec to apply custom tissue (link: How to add custom tissue).