Skip to content

Actual step size used in iFOD2 and Calibrate List. #3227

@yourtheron

Description

@yourtheron

Hi there,

I am new to study MRtrix. I ran tckgen using a single-voxel seed image

tckgen -algorithm iFOD2 -mask  MaskImage.nii.gz -seed_image OneVoxelSeedImage.nii.gz -nthread 16 -step 0.5 -minlength 30 -maxlength 2000 -cutoff 0.1 -select 100 -stop FODImage0T.nii.gz -force  FODmOutT.tck -downsample 1 -output_seeds seesInd.txt
tckconvert FODmOutT.tck -force FODmOutiFOD2T_forDebug.vtk
tckstats FODmOutT.tck -dump lengths.txt -force

Then I used VTK to read all streamlines from FODmOutiFOD2T_forDebug.vtk, found out the longest one, and dumped all points inside. I then found that the step size between each successive point ( I keep -sample 4 as default) became around 0.66, not 0.5 (spacings of my image is 1mm along all axes). Looking at MRtrix's code, void SharedBase::set_step_and_angle() and float vox () const, the step size should be 0.5mm. I cannot find out where MRtrix changed the value internally as I have examined all init(), next(), and other functions in exec.h and iFOD2.h etc. Could you please explain what MRtrix does internally, and show me the location of the code? Many thanks.

The second issue is that from MRtrix's code, it seems that is pre-computed a set of calibrate list of directions that are independent of FOD images. Given all parameters being default and lmax=2, I found that it always produces 7 directions. Is it correct?

Best Wishes,
Yours faithfully,
Theron

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions