def calc_fd(mat_file, dataset="fnl"): """ Compute Framewise Displacement as in Power et al 2012 and save to file. Uses the default radius of 50mm. Args: mat_file (path object): .mat file outputted from FSL dataset (str): 'fnl' or 'sherlock' Returns: file_path """ assert isinstance(mat_file, Path), "realigned_series must be a Path object" out_file = mat_file.parent / "fd_power_2012.csv" fd = FramewiseDisplacement( in_file=mat_file, out_file=out_file, parameter_source="FSL", save_plot=False ) if dataset == "fnl": fd.inputs.series_tr = 2.0 elif dataset == "sherlock": fd.inputs.series_tr = 1.5 _ = fd.run() return out_file
def test_fd(): tempdir = mkdtemp() ground_truth = np.loadtxt(example_data('fsl_motion_outliers_fd.txt')) fd = FramewiseDisplacement(in_plots=example_data('fsl_mcflirt_movpar.txt'), out_file=tempdir + '/fd.txt') res = fd.run() yield assert_equal, np.allclose(ground_truth, np.loadtxt(res.outputs.out_file)), True yield assert_equal, np.abs(ground_truth.mean() - res.outputs.fd_average) < 1e-4, True rmtree(tempdir)
def test_fd(tmpdir): tempdir = str(tmpdir) ground_truth = np.loadtxt(example_data('fsl_motion_outliers_fd.txt')) fdisplacement = FramewiseDisplacement(in_plots=example_data('fsl_mcflirt_movpar.txt'), out_file=tempdir + '/fd.txt') res = fdisplacement.run() with open(res.outputs.out_file) as all_lines: for line in all_lines: assert 'FramewiseDisplacement' in line break assert np.allclose(ground_truth, np.loadtxt(res.outputs.out_file, skiprows=1), atol=.16) assert np.abs(ground_truth.mean() - res.outputs.fd_average) < 1e-2
def test_fd(): tempdir = mkdtemp() ground_truth = np.loadtxt(example_data('fsl_motion_outliers_fd.txt')) fdisplacement = FramewiseDisplacement( in_plots=example_data('fsl_mcflirt_movpar.txt'), out_file=tempdir + '/fd.txt') res = fdisplacement.run() yield assert_true, np.allclose(ground_truth, np.loadtxt(res.outputs.out_file), atol=.16) yield assert_true, np.abs(ground_truth.mean() - res.outputs.fd_average) < 1e-2 rmtree(tempdir)
def test_fd(): tempdir = mkdtemp() ground_truth = np.loadtxt(example_data('fsl_motion_outliers_fd.txt')) fdisplacement = FramewiseDisplacement(in_plots=example_data('fsl_mcflirt_movpar.txt'), out_file=tempdir + '/fd.txt') res = fdisplacement.run() with open(res.outputs.out_file) as all_lines: for line in all_lines: yield assert_in, 'framewise_displacement', line break yield assert_true, np.allclose(ground_truth, np.loadtxt(res.outputs.out_file), atol=.16) yield assert_true, np.abs(ground_truth.mean() - res.outputs.fd_average) < 1e-2 rmtree(tempdir)
def test_fd(tmpdir): tempdir = str(tmpdir) ground_truth = np.loadtxt(example_data('fsl_motion_outliers_fd.txt')) fdisplacement = FramewiseDisplacement( in_plots=example_data('fsl_mcflirt_movpar.txt'), out_file=tempdir + '/fd.txt') res = fdisplacement.run() with open(res.outputs.out_file) as all_lines: for line in all_lines: assert 'FramewiseDisplacement' in line break assert np.allclose(ground_truth, np.loadtxt(res.outputs.out_file, skiprows=1), atol=.16) assert np.abs(ground_truth.mean() - res.outputs.fd_average) < 1e-2
def test_fd(tmpdir): tempdir = tmpdir.strpath ground_truth = np.loadtxt(example_data("fsl_motion_outliers_fd.txt")) fdisplacement = FramewiseDisplacement( in_file=example_data("fsl_mcflirt_movpar.txt"), out_file=tempdir + "/fd.txt", parameter_source="FSL", ) res = fdisplacement.run() with open(res.outputs.out_file) as all_lines: for line in all_lines: assert "FramewiseDisplacement" in line break assert np.allclose(ground_truth, np.loadtxt(res.outputs.out_file, skiprows=1), atol=0.16) assert np.abs(ground_truth.mean() - res.outputs.fd_average) < 1e-2