Skip to content

Fixel-fixel connectivity matrix format#1693

Merged
Lestropie merged 248 commits intostats_enhancementsfrom
fixel_matrix_format
Oct 8, 2019
Merged

Fixel-fixel connectivity matrix format#1693
Lestropie merged 248 commits intostats_enhancementsfrom
fixel_matrix_format

Conversation

@Lestropie
Copy link
Copy Markdown
Member

@Lestropie Lestropie commented Aug 24, 2019

I had a go at polishing off the stats code using the basic initial fixel-fixel connectivity matrix format (text file with one line per fixel, comma-separated fixel index - connectivity value pairs separated by commas per row), but was never happy with the performance of it. In particular if the data are on network storage it can stall completely. So I think that I want to finish off the .mif-based fixel-fixel connectivity matrix format before merging #1543.

From memory, what I had already working:

  • fixelconnectivity command to generate and save matrix.

  • fixelfilter smooth reading and using that data to smooth fixel data.

What needs to be done:

  • Get fixelfilter connect working using new format. EDIT: Done.

  • Strip from fixelcfestats ability to receive track file as input rather than pre-calculated connectivity matrix (code becoming too difficult to manage). EDIT: Done.

  • Get fixelcfestats working using new matrix format. In particular the CFE enhancer will need to change quite a bit. EDIT: Done.

dchristiaens and others added 30 commits October 25, 2016 14:32
Ensure that if the connectome matrix selection is updated, the limits for relevant controls are also updated.
Also functionalised some redundant code to compress things a little.
The original version was based on the duality principle for cases m<n and m>n, which in some cases led to asymmetric numerical instabilities. Here, we modify the formulas to be consistent with the m>n case at all times, which we found to be most numerically stable.
The formulas are now always made consistent with the m<n case that is discussed in tha paper, effectively taking the transpose whenever m>n.
We chose to keep the patch size identical, hence using a block 'against'
the edge of the image to estimate the noise level and then denoising the
non-centred voxels.
… for speed reasons. Files without shebang in first line or non UTF-8 encoding in first 1024 bytes get deleted on build.
Lestropie and others added 16 commits September 30, 2019 11:59
While import of Python modules has been moved to the outer scope, attempting to do so for the import of MRtrix3 Python modules within those modules themselves appears to introduce circular dependencies. This change moves these import statements between MRtrix3 modules into the functions requiring those modules. This should not raise a warning with the latest pylint updates.
Revert changes that were made in #1507 with respect to determination of the default maximum angle for the various tracking algorithms. There, this decision was changed from being based on (90deg * step_size / vox()) to being a minimum radius of curvature of one voxel. Additionally, the default step size in the presence of RK4 was changed from 0.1*vox() to 0.5*vox(). This commit reverts these changes, but retains the calculation of minimum radius of curvature necessary for streamline length calculation optimisations.
tcken: Revert default maximum angle calculation
Prevents implicit construction of Header based on input.
Conflicts:
	lib/mrtrix3/image.py
	lib/mrtrix3/path.py
Python: Use of kwargs for API functions
@Lestropie Lestropie marked this pull request as ready for review October 7, 2019 23:36
@Lestropie Lestropie merged commit 7003947 into stats_enhancements Oct 8, 2019
@Lestropie Lestropie deleted the fixel_matrix_format branch October 8, 2019 02:31
@Lestropie
Copy link
Copy Markdown
Member Author

Note to anybody out there previously accessing the "fixel_matrix_format" branch (likely mostly workshop attendees): The relevant functionalities should now be accessed via the "stats_enhancements" branch. Subsequent changes to how this code is accesssed will be announced in #1543.

Lestropie added a commit that referenced this pull request Apr 15, 2020
As part of #1693, fixelcfestats was modified to construct the subject data matrix based on all fixels, and then restrict processing to only those fixels inside the mask by filling subject data outside of the mask with NaNs and propagating the mask information to various functions. Previously, an index remapping was performed so that the subject data matrix would contain as many columns as there were fixels in the mask, and so input fixel indices would need to be projected to internal fixel indices. It appears as though during this change the allocation of the subject fixel data matrix was not properly updated to reflect its requisite larger size when the -mask option is used.
Reported in #1543.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants