DEMO for "Riemannian Nonlinear Mixed Effects Models: Analyzing LongitudinalDeformations in Neuroimaging"

Hyunwoo J. Kim, Nagesh Adluru, Heemanshu Suri, Baba C. Vemuri, Sterling C. Johnson, Vikas Singh, Riemannian Nonlinear Mixed Effects Models: Analyzing LongitudinalDeformations in Neuroimaging, In Computer Vision and Pattern Recognition (CVPR), July, 2017

Project page: http://pages.cs.wisc.edu/~hwkim/projects/riem-mem/

Github repository: http://github.com/MLman/riem-mem-cvpr2017/

Github page: http://mlman.github.io/riem-mem-cvpr2017/

Contents

Algorithm 1 : subject-specfic intercepts

Comparison between a MMGLM and Riemannian Mixed Effects model with subject-specific intercetps.

addpath(genpath('.'));
clear
close
%synth_exp3
load ./synthdata/synth_exp3_20161029_124937.mat

option=struct('centerX',true);
[Yhat, Bhat, P] = mmem(X,Y,Z,option);
X0 = [ones(size(X,1),1), X]';
[P0, Bhat0, E0, Yhat0] = mglm_logeuc_spd(X',Y);

% Visualization of Yhat
mytitle='Synthetic Experiments (Alg. 1)';
fname = sprintf('./figs/%s_%s_%s.png',mfilename, mytitle, datestr(now,'yyyymmdd_HHMMSS'));
synth_plot_wrapper(X,Z,Y,uV,Pstar,P,Bhat,Yhat,P0,Bhat0,Yhat0,fname,mytitle);

Algorithm 2 : subject-specfic slopes and intercepts

Comparison between a MMGLM and Riemannian Mixed Effects model with subject-specific accelerations and intercetps.

clear
close
%synth_exp4_for_DEMO_mmem2
load ./synthdata/synth_exp4_for_DEMO_mmem2_20170704_153512.mat
option=struct('centerX',true);
option.niter= 100;

stacks = size(Y,3);
Ydims = size(Y,1);

[Yhat, model] = mmem2(X, Y, Z, option);
U = main_change_direction(X,Y,Z, option);
UatB = paralleltranslateAtoB_spd(eye(Ydims),model.B, U);

[Yhat1, Bhat1, P1] = mmem(X,Y,Z,option);

X0 = [ones(size(X,1),1), X]';
[P0, Bhat0, E0, Yhat0] = mglm_logeuc_spd(X',Y);

% Visualization Alg. 1
mytitle='Synthetic Experiments (Alg. 1)';
fname = sprintf('./figs/%s_%s_%s.png',mfilename, mytitle, datestr(now,'yyyymmdd_HHMMSS'));
synth_plot_wrapper(X,Z,Y,uV,Pstar,P1,Bhat1,Yhat1,P0,Bhat0,Yhat0,fname,mytitle);

% Visualization of Alg. 2
mytitle='Synthetic Experiments (Alg. 2)';
fname = sprintf('./figs/%s_%s_%s.png',mfilename, mytitle, datestr(now,'yyyymmdd_HHMMSS'));
synth_plot_wrapper(X,Z,Y,uV,Pstar,model.B,model.V,Yhat,P0,Bhat0,Yhat0,fname,mytitle);