def test_gradient_table_from_qvals_bvecs(): qvals = 30. * np.ones(7) big_delta = .03 # pulse separation of 30ms small_delta = 0.01 # pulse duration of 10ms qvals[0] = 0 sq2 = np.sqrt(2) / 2 bvecs = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1], [sq2, sq2, 0], [sq2, 0, sq2], [0, sq2, sq2]]) gt = gradient_table_from_qvals_bvecs(qvals, bvecs, big_delta, small_delta) bvals_expected = (qvals * 2 * np.pi)**2 * (big_delta - small_delta / 3.) gradient_strength_expected = qvals * 2 * np.pi /\ (small_delta * WATER_GYROMAGNETIC_RATIO) npt.assert_almost_equal(gt.gradient_strength, gradient_strength_expected) npt.assert_almost_equal(gt.bvals, bvals_expected)
def generate_gtab4D(number_of_tau_shells=4, delta=0.01): """Generates testing gradient table for 4D qt-dMRI scheme""" gtab = get_gtab_taiwan_dsi() qvals = np.tile(gtab.bvals / 100., number_of_tau_shells) bvecs = np.tile(gtab.bvecs, (number_of_tau_shells, 1)) pulse_separation = [] for ps in np.linspace(0.02, 0.05, number_of_tau_shells): pulse_separation = np.append(pulse_separation, np.tile(ps, gtab.bvals.shape[0])) pulse_duration = np.tile(delta, qvals.shape[0]) gtab_4d = gradient_table_from_qvals_bvecs(qvals=qvals, bvecs=bvecs, big_delta=pulse_separation, small_delta=pulse_duration, b0_threshold=0) return gtab_4d
def generate_gtab4D(number_of_tau_shells=4, delta=0.01): """Generates testing gradient table for 4D qt-dMRI scheme""" gtab = get_gtab_taiwan_dsi() qvals = np.tile(gtab.bvals / 100., number_of_tau_shells) bvecs = np.tile(gtab.bvecs, (number_of_tau_shells, 1)) pulse_separation = [] for ps in np.linspace(0.02, 0.05, number_of_tau_shells): pulse_separation = np.append(pulse_separation, np.tile(ps, gtab.bvals.shape[0])) pulse_duration = np.tile(delta, qvals.shape[0]) gtab_4d = gradient_table_from_qvals_bvecs(qvals=qvals, bvecs=bvecs, big_delta=pulse_separation, small_delta=pulse_duration, b0_threshold=0) return gtab_4d
def test_gradient_table_from_qvals_bvecs(): qvals = 30. * np.ones(7) big_delta = .03 # pulse separation of 30ms small_delta = 0.01 # pulse duration of 10ms qvals[0] = 0 sq2 = np.sqrt(2) / 2 bvecs = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1], [sq2, sq2, 0], [sq2, 0, sq2], [0, sq2, sq2]]) gt = gradient_table_from_qvals_bvecs(qvals, bvecs, big_delta, small_delta) bvals_expected = (qvals * 2 * np.pi) ** 2 * (big_delta - small_delta / 3.) gradient_strength_expected = qvals * 2 * np.pi /\ (small_delta * WATER_GYROMAGNETIC_RATIO) npt.assert_almost_equal(gt.gradient_strength, gradient_strength_expected) npt.assert_almost_equal(gt.bvals, bvals_expected)