def test_reorient_vectors(): with clear_and_catch_warnings(): bvec = np.arange(12).reshape((3, 4)) assert_array_equal(reorient_vectors(bvec, 'ras', 'ras'), bvec) assert_array_equal(reorient_vectors(bvec, 'ras', 'lpi'), -bvec) result = bvec[[1, 2, 0]] assert_array_equal(reorient_vectors(bvec, 'ras', 'asr'), result) bvec = result result = bvec[[1, 0, 2]] * [[-1], [1], [-1]] assert_array_equal(reorient_vectors(bvec, 'asr', 'ial'), result) result = bvec[[1, 0, 2]] * [[-1], [1], [1]] assert_array_equal(reorient_vectors(bvec, 'asr', 'iar'), result) assert_raises(ValueError, reorient_vectors, bvec, 'ras', 'ra') bvec = np.arange(12).reshape((3, 4)) bvec = bvec.T assert_array_equal(reorient_vectors(bvec, 'ras', 'ras', axis=1), bvec) assert_array_equal(reorient_vectors(bvec, 'ras', 'lpi', axis=1), -bvec) result = bvec[:, [1, 2, 0]] assert_array_equal(reorient_vectors(bvec, 'ras', 'asr', axis=1), result) bvec = result result = bvec[:, [1, 0, 2]] * [-1, 1, -1] assert_array_equal(reorient_vectors(bvec, 'asr', 'ial', axis=1), result) result = bvec[:, [1, 0, 2]] * [-1, 1, 1] assert_array_equal(reorient_vectors(bvec, 'asr', 'iar', axis=1), result)
def test_reorient_vectors(): bvec = np.arange(12).reshape((3, 4)) assert_array_equal(reorient_vectors(bvec, 'ras', 'ras'), bvec) assert_array_equal(reorient_vectors(bvec, 'ras', 'lpi'), -bvec) result = bvec[[1, 2, 0]] assert_array_equal(reorient_vectors(bvec, 'ras', 'asr'), result) bvec = result result = bvec[[1, 0, 2]] * [[-1], [1], [-1]] assert_array_equal(reorient_vectors(bvec, 'asr', 'ial'), result) result = bvec[[1, 0, 2]] * [[-1], [1], [1]] assert_array_equal(reorient_vectors(bvec, 'asr', 'iar'), result) assert_raises(ValueError, reorient_vectors, bvec, 'ras', 'ra')
def test_reorient_vectors(): bvec = np.arange(12).reshape((3,4)) assert_array_equal(reorient_vectors(bvec, 'ras', 'ras'), bvec) assert_array_equal(reorient_vectors(bvec, 'ras', 'lpi'), -bvec) result = bvec[[1,2,0]] assert_array_equal(reorient_vectors(bvec, 'ras', 'asr'), result) bvec = result result = bvec[[1,0,2]]*[[-1],[1],[-1]] assert_array_equal(reorient_vectors(bvec, 'asr', 'ial'), result) result = bvec[[1,0,2]]*[[-1],[1],[1]] assert_array_equal(reorient_vectors(bvec, 'asr', 'iar'), result) assert_raises(ValueError, reorient_vectors, bvec, 'ras', 'ra')
def reorient_dwi_imgs(input_dwi, input_bval, input_bvec, output_dwi, output_bval, output_bvec, new_x, new_y, new_z, new_r, new_a, new_s): os.system('fslswapdim ' + input_dwi + ' ' + new_x + ' ' + new_y + ' ' + new_z + ' ' + output_dwi) #Now reorient the bvecs bvals, bvecs = read_bvals_bvecs(input_bval, input_bvec) new_orient = new_r+new_a+new_s r_bvecs = reorient_vectors(bvecs, 'ras', new_orient, axis=1) N = len(bvals) fmt = ' %e' * N + '\n' open(output_bval, 'wt').write(fmt % tuple(bvals)) bvf = open(output_bvec, 'wt') for dim_vals in r_bvecs.T: bvf.write(fmt % tuple(dim_vals)) bvf.close()