Motion correction parameter definitions

64 views
Skip to first unread message

Paul Wright

unread,
Mar 3, 2021, 6:56:34 AM3/3/21
to ExploreDTI
Hi
I am using the motion parameters estimated by ExploreDTI and would like to know exactly what the numbers represent. I am interested in translation and rotation, but it would be good to know all four in case others need it.

1) What are the axes and directions?
I think:
x: posterior to anterior / roll
y: right to left / pitch
z: inferior to superior / yaw
I am not sure what direction the rotations are in, e.g. does positive y mean pitch back or forward?

2) What are the units?
Is translation in voxels or mm?
Is rotation in degrees or radians?

Many thanks
Paul

Jill Miller

unread,
Mar 3, 2021, 12:06:19 PM3/3/21
to ExploreDTI
Following. Also, would you mind sharing how you got these parameters? 
Thanks!
Jill VM 

Paul Wright

unread,
Mar 4, 2021, 5:16:14 AM3/4/21
to ExploreDTI
@Jill short answer: load the .mat file and look in the DM_info field.

Here's a script I wrote to get the translation and rotation (can easily add the other two, which I think are squeeze and shear). You can batch it with a wrapper script.

function mpout = E_DTI_MP(filename)
% Save motion parameters from a corrected ExploreDTI data set
% FORMAT: mpout = E_DTI_MDC_graph(filename)
% INPUT:
%   filename    -   ExploreDTI file with motion corrected
% OUTPUT:
%   mpout       -   Movement parameters, images in rows, translation and 
%                   rotation in columns (xt, yt, zt, xr, yr, zr)

if ~exist(filename,'file')
    error('File not found: %s\n\n',filename)
end

fprintf('Loading %s ...', filename)
try
    input = load(filename,'DM_info');
catch
    error('\nCannot find motion correction information. Are you sure this file has been corrected?\n\n')
end
if ~isfield(input,'DM_info')
    error('\nCannot find motion correction information. Are you sure this file has been corrected?\n\n')
end
fprintf('\n')

nimg = length(input.DM_info);
mp = nan(4,3,nimg);
fprintf('Reading data 000 / %03d',nimg)
for img = 1:nimg
    fprintf('\b\b\b\b\b\b\b\b\b%03d / %03d',img,nimg)
    mp(:,:,img) = input.DM_info{img}{1};
end %img
fprintf('\nDone\n\n')

rot = squeeze(mp(1,:,:))';
trans = squeeze(mp(2,:,:))';
mpout = [trans,rot];



Jill Miller

unread,
Mar 5, 2021, 10:52:34 AM3/5/21
to ExploreDTI
Thanks Paul! I don't know the answer to your other questions, but, I'm happy to know where to find the motion parameters using ExploreDTI now. 

samane pirmoradian

unread,
Apr 14, 2022, 2:06:49 AM4/14/22
to ExploreDTI
hi
I want use harvard atlas in explore dti .i dont find this atlas.
please help me.

samane pirmoradian

unread,
Apr 14, 2022, 2:30:30 AM4/14/22
to ExploreDTI
hi
I want use harvard atlas in explore dti .i dont find this atlas.
please help me.

On Friday, March 5, 2021 at 7:22:34 PM UTC+3:30 Jill Miller wrote:
Reply all
Reply to author
Forward
0 new messages