daducci / COMMIT

Linear framework to combine tractography and tissue micro-structure estimation with diffusion MRI
Other
45 stars 33 forks source link

How to obtain a file like demo01_fibers_connection.tck when the tractogram and the number of gray-matter ROIs are huge. #97

Closed zhanghuinf1980 closed 2 years ago

zhanghuinf1980 commented 3 years ago

Dear Dr Daducci, I am applying COMMIT2 to my research. When my tractogram contains 1 million streamlines and my parcellation of the Gray Matter contains over 100 ROIs, I can't get a file like demo01_fibers_connection.tck using your method on my computer (Threadripper 2990WX and 32GB of memory). Are there too many tck files (streamlines in bundles) from the previous step, or are these tck files too large in general, or some other reason? What's the solution? If I want to organize these tck files step by step directly in MRTRIX3, how could I re-organize them as contiguous groups. Thank you very much.

daducci commented 3 years ago

Hi @zhanghuinf1980,

what do you mean you cannot get a file like _demo01_fibersconnection.tck? Do you mean the _demo01_fibersconnecting.tck file which groups streamlines into contiguous bundles? This part only uses mrtrix commands, and I've never experienced any problems with this part (we tipically use bigger files). Can you post the log with the error?

zhanghuinf1980 commented 3 years ago

Dear Dr Daducci, The node file I used earlier is from the HCP's Multi-modal Parcellation, version 1.0 (hcp_mmp1.0), which contains 379 ROIs, resulting in over 70,000 files in the "bundles" folder. When I typed "os.system( CMD + ' tractogram_connection.tck' )", the computer system has no response. Your prompt reply gave me confidence. With my tractogram unchanged, I changed the node file to aparc+aseg.nii.gz, which only contains 84 ROIs, thus generating only 3570 files in the "bundles" file. Happily, the rest of the operation is fine. Just as the value for reg_lambda and others need to be adapted according to specific research, there is still a lot of work to be done. With your help, I am full of confidence. Sincere regards, Hui Zhang

daducci commented 3 years ago

I suspect that because you have so many ROIs, when you run the command to combine the bundles using tckedit the system call fails due to a command-line string being too long. A solution is to write your own code to group the streamlines into bundles, e.g., using python or your language of choice. Please note that the approach we posted in the tutorial is just a suggestion, and you can use the approach you prefer to build the group structure for COMMIT2.

smeisler commented 2 years ago

You can also use a wildcard operator, as I describe in https://github.com/daducci/COMMIT/issues/109.