I am currently trying to do tractography on DWI data and am specifically interested in the Fornix. Sadly, most of the pyAFQ default bundle ROIs offered (using the python API) do not include any Waypoint ROIs or probabilistic maps for the Fornix. I wanted to ask around if there are any (experimental) Waypoint ROIs anyone used for this tract that they might be able to share? Additional settings used in the bundle_dict would be appreciated in case someone already tried.
And I just wanted to confirm, but if I were to make the waypoints myself in MRTrix for example, they need to be created in the MNI-space, correct?
Not a direct answer to your question, but other tractography pipelines, such as DSI Studio Autotrack and TractSeg, can segment the fornix. TractSeg can even get you beginning and end points, as well as bundle masks, for the fornix, which you might find helpful to input to pyafq.
@Christent : we (the pyAFQ team) have not created fornix waypoints (but curious if others in community have successfully done that). To your question, yes: if you want to draw waypoint ROIs, you would do that in MNI space, and use it along the lines of this example.
In addition to the options that Steven mentioned in this post, you can also use the RecoBundles algorithm. In fact, if you are already using pyAFQ, you can call Recobundles directly from pyAFQ. The following code (based on this example) gives you both left and right fornix in the same tract, so you’d need to do some extra work to separate them:
import os.path as op
import AFQ.data.fetch as afd
from AFQ.api.group import GroupAFQ
import AFQ.api.bundle_dict as abd
afd.organize_stanford_data(clear_previous_afq="track")
tracking_params = dict(n_seeds=25000,
random_seeds=True,
rng_seed=42)
myafq = GroupAFQ(
output_dir=op.join(afd.afq_home, 'stanford_hardi', 'derivatives',
'recobundles'),
bids_path=op.join(afd.afq_home, 'stanford_hardi'),
# Set the algorithm to use RecoBundles for bundle recognition:
bundle_info=abd.BundleDict({"F_L_R": abd.reco_bd(80)["F_L_R"]}),
preproc_pipeline='vistasoft',
tracking_params=tracking_params,
viz_backend_spec='plotly_no_gif')
fig_files = myafq.export("bundles")
But I have not worked much with the RecoBundles tracts, so I am not exactly sure what pitfalls you might run into (e.g., when extracting tract profiles). At the minimum, you could use these results as a guide for defining your own waypoint ROIs. I’d be curious to hear how you get on with that!
First of all, thanks for both of your answers. I’m am currently looking into TractSeg and see if I can extract Waypoints that way to use in pyAFQ, as that pipeline is already set up.
I have also tried running reco bundles, but have not yet manage to visualize the results, as that part of the code is still causing me problems.
Regarding hand drawing some ROIs, I will probably fall back to that option as a last resort, as I don’t expect it to yield similar quality results as other already established pipelines have produced. If I do it, I will likely share them on a github when the results are published.