def reconstruction(conn_model, gtab, dwi_data, B0_mask): """ Estimate a tensor model from dwi data. Parameters ---------- conn_model : str Connectivity reconstruction method (e.g. 'csa', 'tensor', 'csd', 'sfm'). gtab : Obj DiPy object storing diffusion gradient information. dwi_data : array 4D array of dwi data. B0_mask : str File path to B0 brain mask. Returns ------- mod_fit : ndarray Fitted connectivity reconstruction model. mod : obj Connectivity reconstruction model. References ---------- .. [1] Soares, J. M., Marques, P., Alves, V., & Sousa, N. (2013). A hitchhiker’s guide to diffusion tensor imaging. Frontiers in Neuroscience. https://doi.org/10.3389/fnins.2013.00031 """ from pynets.dmri.estimation import ( csa_mod_est, csd_mod_est, sfm_mod_est, tens_mod_est, ) if conn_model == "csa" or conn_model == "CSA": [mod_fit, mod] = csa_mod_est(gtab, dwi_data, B0_mask) elif conn_model == "csd" or conn_model == "CSD": [mod_fit, mod] = csd_mod_est(gtab, dwi_data, B0_mask) elif conn_model == "sfm" or conn_model == "SFM": [mod_fit, mod] = sfm_mod_est(gtab, dwi_data, B0_mask) elif conn_model == "ten" or conn_model == "tensor" or \ conn_model == "TEN": [mod_fit, mod] = tens_mod_est(gtab, dwi_data, B0_mask) else: try: raise ValueError( "Error: No valid reconstruction model specified. See the " "`-mod` flag." ) except ValueError: import sys sys.exit(0) del dwi_data return mod_fit, mod
def test_sfm_mod_est(dmri_estimation_data): """Test SFM model estimation.""" gtab = dmri_estimation_data['gtab'] dwi_file = dmri_estimation_data['dwi_file_small'] dwi_data_small = nib.load(dwi_file).get_fdata() B0_mask_file = dmri_estimation_data['B0_mask_small'] [sf_odf, model] = sfm_mod_est(gtab, dwi_data_small, B0_mask_file) assert sf_odf is not None assert model is not None
def test_sfm_mod_est(dmri_estimation_data): """Test SFM model estimation.""" gtab = dmri_estimation_data['gtab'] dwi_data = dmri_estimation_data['dwi_img'] B0_mask_img = dmri_estimation_data['B0_mask_img'] B0_mask_file = tempfile.NamedTemporaryFile(mode='w+', suffix='.nii.gz') nib.save(B0_mask_img, B0_mask_file.name) dwi_data = dwi_data.get_fdata() [sf_odf, model] = sfm_mod_est(gtab, dwi_data, B0_mask_file.name) assert sf_odf is not None assert model is not None B0_mask_file.close()