About Fiber Tracking Visualization

Good morning!
I juts tried the new fiber tracking visualization tool in BS, I downloaded and used the example .trk file and everything worked fine!

But I have several questions about this new option:

That computation is like a connectivity source analysis? or how is determined the fiber since connectivity matrix?

I new in the use of .trk files, so I'm wondering if there is some probabilistic .trk file or some adult average .trk file, just like the MRI MNI or talairach, in order to use it as average anatomy fiber file?

the file in the tutorial example can be used like that (average brain fiber)

what is the accuracy of tracking fiber assigning from connectivity BS matrix?

and where can I find more info and files about this new feature?

Thanks ind advance, it is a promissing new tool!


Thank you for trying out this new feature and for the kind words!

That is correct, the connectivity values are coming from the connectivity matrix computed during your source analysis with one of our available NxN connectivity measures in the Connectivity section of our processes.

There are indeed probabilistic fiber tracking algorithms that exist, for example: https://www.ncbi.nlm.nih.gov/pubmed/21319270. The average .TRK file I attached was computed using the more standard approach of deterministic fiber tracking. It was computed from a large population using the Human Connectome Project. I would say it is the most robust template fiber file out there at the moment and is used by other popular software such as DiPy. It is described in the following publication: https://www.ncbi.nlm.nih.gov/pubmed/29758339 and you can download higher resolution versions on their website: http://brain.labsolver.org/

I would say that is where you need to be most careful, especially when using a downsampled version of a track file such as the one shipped with our tutorial. A big drawback of tracking algorithms is that they often produce fibers that are smaller than the groundtruth, that is that the tracking algorithm converges too early. This means that some far away regions that are actually connected in the brain might not have an associated fiber in the file. Another drawback is the assignment of the fibers to cortex regions. Our fiber to cortex assignment implementation is quite simplistic: it assigns the endpoints of fibers to the closest centroid point of a RoI on the cortex. That means that fibers connecting to a point far from its region's centroid might not be associated to the correct region. One way to alleviate this would be to use fewer, bigger regions of interest.

I would refer you to our tutorial page and the publication related to the template we used: https://neuroimage.usc.edu/brainstorm/Tutorials/FiberConnectivity
You can also refer to basic Diffusion MRI tutorials, such as a the documentation of the DiPy software.
For more questions, feel free to ask them here!


1 Like

Thank you for the useful info! I hope to learn more about this feature!

Just a couple more question :wink:

I new in .tkr data format, I was wondering if there is a .tkr file with pediatric brain fibers, I mean a probabilistic pediatric atlas file, just like the one in the example, cause we know connectivity changes a lot with aging (specially about 6 or 7 years, and in the critical epochs).

and the second one: a .tkr file is something that you have to build rigth? I mean, you have to perform an dti analysis first an the final outcome is the .tkr?

I tried to download data from website you suggested me above, but I think it is not in .tkr format, so I guess I have tu build the file?

Thanks in advance

Hi again!

I do not know whether this exists. I recommend you contact someone in the diffusion world such as the people working on DiPy or the above publication.

That is correct, the final outcome of your diffusion analysis will typically be your extracted white matter fibers, either all in a single file or grouped by so called "fiber bundles" a.k.a. fibers connecting the same regions. The most common format in which to save these fibers, which are simply a list of 3D points, is the TRK format.

They do have it in TRK format split per fiber bundle, see under Download on the following page: http://brain.labsolver.org/diffusion-mri-templates/tractography They also have them as a voxel-based mask in Nifti format, but like they mention you lose a lot of resolution by saving them like that.


Hi Martin,

Am loving the new fiber feature, and have already been playing with it to display relevant fibers in different colors based on statistical analysis of coherence values.

I found that the intra-lobule fibers in the temporal lobe do not display, although they display in the coherence graph. Is that because a tract doesn't exist in the .trk file currently being implemented in Brainstorm?

Considering trying to download one of the .trk files from the website you indicated to see if that solves my problem. However, a comprehensive file is more useful for me. Do you have a specific recommendation for one that is a higher resolution version than the .trk file currently available on the Brainstorm website?

Thank you for your help!



Not sure but, check the options, there is one to display just the anatomically accurate fibers, if that option is active maybe that is why software do not displays the fibers you see in coherence analysis

Hi Martin,

OK. I solved my own problem.
First, I downloaded the DSI studio software.
Then I downloaded the HCP1021.1mm.fib file. (It has more than 36,000 fibers!)
Then I opened that .fib in DSI studio and exported it as a .trk
Then I imported that into Brainstorm at higher than default point levels (I'm trying 1000 points now).
Now I see some of the fibers that I was needing to visualize, but I loose the interhemispheric fibers that the original .trk file Brainstorm provided would display.
Hmmmmm. Any way to merge the two .trk files together?

Thank you.


You may want to share the trk file!!!

Hi Tourette95,

The .trk file I obtained as described above is more than 40MB. It is too big to simply try and share here.
I recommend following my steps to acquire one similarly. It took maybe 10 minutes.



Hi Martin,

New problem. After successfully getting the new fiber file loaded into Brainstorm and displaying correctly, I decided to clean up my anatomy portion of the data base. I deleted all the fiber files and then reimported them. However, now the new .trk file that I obtained is not lining up with my template brain. Why would that happen suddenly? Do you have any ideas? Thank you.


Hi Jared,

Are you using your own custom TRK file or the template included in our fiber tutorial? The one included in the tutorial is aligned to the ICBM152 template. Also, when you import a fiber file, you are required to have your MRI already imported to properly align them. You are prompted to do so if no MRI is found.

I tried on my end to:

  1. Apply the ICBM152 template files to a subject
  2. Import the fiber template to this subject -> they are properly aligned
  3. Delete the fiber file and import it again -> still aligned
  4. Delete all anatomy files and import them again (steps 1-2) -> still aligned

So I can't reproduce your issue with the ICBM + fiber templates. Please clarify so we can figure out a fix together.


Hi Martin,

Sorry for the delay in my reply. I have been traveling.
Here is content from my earlier post in this thread:

[quote="jfboasen, post:8, topic:13049"]
First, I downloaded the DSI studio software.
Then I downloaded the HCP1021.1mm.fib file. (It has more than 36,000 fibers!)
Then I opened that .fib in DSI studio and exported it as a .trk
Then I imported that into Brainstorm at higher than default point levels (I'm trying 1000 points now).
Now I see some of the fibers that I was needing to visualize, but I loose the interhemispheric fibers that the original .trk file Brainstorm provided would display.

Additionally, as mentioned after this post, this new .trk file does not line up with Brainstorms default anatomy.
To be clear, my problems with alignment are not with the .trk file that you have provided in the tutorial sections.

Ideally, I would like the fiber tract figure to display the same connections that the other fiber figures show.
Anatomically, they should exist...
As an alternative approach, I am trying to learn MRtrix3 to see if I can just make custom fiber tract figures, but it is not easy.
If you have any advice about how to make custom tract figures, I would love to hear more.
Thank you for your time and kind assistance.
You guys are awesome.



Hi Jared,

I think going with MRtrix is the way to go to create your own custom tract file. They have an extensive community that can help you with this.

For the alignment, do you have a T1 MRI file with the diffusion MRI you're using the produce your tracts? If so, you can align them together and then your TRK files should be in the same space as your anatomy.

For the missing tracts, maybe they are in the TRK files but are not displayed in Brainstorm? There should be a prompt when you try to display more than 5000 fibers in the software. Do you get it? Have you tried to select "Display all fibers anyway" and see if your missing fibers are now shown?


Hi, It's the question about your reply written long ago.
Is there any tool/codes for averaging already built '.trk' file?
For example, averaging the corpus callosum trk of 31 participants.
The ones in the labsorver site is using different segmentation schema, so I have to build my own average trk... (18 bundles, old tracula way..)

In Brainstorm, you can load the imported .trk files from a Matlab script (with the function load), average the values you find in there, save the new averaged file in the Brainstorm database (with the same tags in the file name), and then reload the database.

If you want to average the .trk and get in output a .trk file: I don't know.

Thanks @Francois ,
What I have to do is exactly the latter. I will struggle more : )

You can start from this function: along-tract-stats/trk_read.m at master · johncolby/along-tract-stats · GitHub
Ask the authors directly (as an issue on github?), they may have functions to do that, or at least closer to it than what you can find in Brainstorm.

Good luck!