Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
DKI project: PR#1 Simulations to test DKI #582
I add some functions on dipy.sims.voxel module for DKI simulations (multi_tensor_dki, compute_Wijkl, single_diffkurt_tensors, dki_design_matrix). This PR was discussed to be the first milestone of the DKI project. To see how to use the functions please give a look to the added script on doc/examples/simulations_dki.py. Basically, the objective of the new functions is to produce ground truth DT and KT tensors to test diffusion fits (you can simulate tensors for any single voxel crossing fiber configuration ;) ). DW signals are also simulated from the computed tensors using the DKI model. Future steps on the DKI project can use these simulations to check if the DKI implementation is correct. DKI simulations modules are also relevant for DKI fit comparison studies.
Implementation was done according to PEP 8 standards and the nomenclature is consistent to previous dipy functions. However, I notice that the order of DT elements is different from previous dipy modules (as dipy.reconst.dti.py), I decided to keep this order since I notice that they are consistent to the in progress DKI implementations. Perhaps is better to transform all new functions to dipy assumed format - Dxx Dxy Dyy Dxz Dyz Dzz. What do you thing? Please let me know if you need help doing this on the submitted changes after its revision.
I just add the example comparing DKI simulations with a simulation using only DTI components. I also add a small paragraph explaining the differences. Please let me know if everything is clear.
I fix the function all_tensor_evecs to return the eigenvectors in column-wise and made the necessary changes on the parts of voxel.py that were calling this function.