Tckgen seeds per voxel

I am trying to follow the methods in a paper where they have performed deterministic tracking seeded on a grid with N * the number of diffusion directions per voxel. I’m having difficulty with this using tckgen, because if I use -seed_grid_per_voxel with any number higher than, say, 200, I end up with no streamlines. You may well ask whether 200 is excessive, and maybe it is for deterministic tracking, but I wonder if there is an upper limit (and/or if there is a rounding/precision issue) with gridding, and what would be a reasonable number to use for 30 directions? Thanks for your thoughts!

Welcome Syam!

I’m having difficulty with this using tckgen, because if I use -seed_grid_per_voxel with any number higher than, say, 200, I end up with no streamlines.

I don’t see why this would lead to “ending up with no streamlines”, but I can see both why it suggests the operation of the option isn’t understood and why it would potentially lead to unexpected empirical behaviour.

-seed_grid_per_voxel literally defines a 3D grid within each voxel upon which to define streamline seeds. If I asked you to define 200 points on a 3D grid within a voxel, even if you managed to come up with an answer I doubt it would be intuitive :upside_down_face: As explained in the help information for that option, the input parameter is the number of points per axis in three dimensions. So by providing a value of 200, tckgen will in fact be creating 200^3 = 8,000,000 streamline seeds per voxel :exploding_head:

If you absolutely need to have precise control over the exact number of seeds per voxel, and don’t want to resort to using a cube number, the -seed_random_per_voxel can instead be used.

… seeded on a grid with N * the number of diffusion directions per voxel

Personally I don’t see a strong justification for the number of seeds being determined by the number of unique diffusion sensitisation directions. If you want to reproduce some other experiment exactly that’s fine, but if devising your own experimental setup I don’t think this is the parameter on which such a decision should be based.

Rob

Yes, thank you! I did realize too late that I needed to use the approximate cube root of the actual desired number of seeds per voxel. Once I did that, I did get expected results. I did in fact get zero streamlines when specifying an impractically large number (200) but since that is a clear “way past the boundary” case, I guess I shouldn’t worry about that.

Thank you for the advice!

-syam