MIDUS
Amygdala/Hippocampus Surface Data Set, SPHARM and the Random
Field Theory Based Surface Data Analysis Pipeline
(c) 2013 Moo K. Chung
mkchung@wisc.edu
Department of Biostatistics and Medical Informatics
Waisman Laboratory for Brain Imaging and Behavior
University of Wisconsin-Madison
Description
August 7, 2013
MIDUS
amygdala/hippocampus surface mesh data processing
pipeline is presented. Note that this is not a public domain data
yet. If you wish to use the data set in your research
for whatever forms and shapes, you need to contact Moo
K. Chung at mkchung@wisc.edu. The codes have been tested
under a Macbook pro with 16GB memory and MATLAB 7.5. If
you are using the Matlab codes below for your
publication or research, please reference one of [2-5], where the
detailed description of the code is given. The MATLAB
script below is given as midus-v1.m.
1) MIDUS surface mesh data
August 7,
2013
The
surface mesh data is stored in midus.mat,
which contains template surface mesh and age,
total brain volume, gender and displacement
vector fields for 69 subjects. For the
detailed explanation of the data set and
relevent neuroanatomical hypothesis of
interest, please read [1-4]. To display the
template surface (Figure 1), run the
codes below.
load
midus.mat
amygl=template{1,1}
amygr=template{1,2}
hippol=template{2,1}
hippor=template{2,2}
figure;
hold on; figure_wire(amygl,'black','red');
hold on; figure_wire(amygr,'black','blue');
hold on; figure_wire(hippol,'black','yellow');
hold on; figure_wire(hippor,'black','green');
view([-120 15])
Figure 1. Hippocampus/amygdala
surface mesh templates.
The individual surface is constructed by
adding the displacement vector field from
the template. For instance, the surfaces of
the 10-th subject (Figure 2) is
constructed and displayed as
n=10
amygl_ind.vertices = amygl.vertices + displacement{n,1,1};
amygl_ind.faces=amygl.faces;
amygr_ind.vertices = amygr.vertices + displacement{n,1,2};
amygr_ind.faces=amygr.faces;
hippol_ind.vertices = hippol.vertices + displacement{n,2,1};
hippol_ind.faces= hippol.faces;
hippor_ind.vertices = hippor.vertices + displacement{n,2,2};
hippor_ind.faces=hippor.faces;
figure;
hold on; figure_wire(amygl_ind,'black','red');
hold on; figure_wire(amygr_ind,'black','blue');
hold on; figure_wire(hippol_ind,'black','yellow');
hold on; figure_wire(hippor_ind,'black','green');
view([-120 15])
Figure
2.
Hippocampus/amygdala surface mesh for the
10-th subject. All the subject share the
identical mesh topology that correspond
across subjects.
2) MIDUS
surface mesh data in ASCII text file format
August 7, 2013
In
case you need to port the surface mesh data
into other programs, here is how to export
it to ASCII text files. Each variable were
saved into seperate text files using save
command:
temp=amygl.vertices
save('amygl.vertices','temp', '-ascii')
temp=amygl.faces
save('amygl.faces','temp', '-ascii')
amygl.vertices
is the vertex coordinates of the left amygdala surface while amygl.faces is the
vertex indices that form triangle faces. Displacement vector fields
with respect to the template is stored in the following fashion:
for i=1:69
temp=displacement{i,1,1};
strname=strcat('amygl.disp', num2str(i));
save(strname, 'temp', '-ascii')
end;
for i=1:69
temp=displacement{i,1,2};
strname=strcat('amygr.disp', num2str(i));
save(strname, 'temp', '-ascii')
end;
This generates 69 displacement vector field text files such as amygl.disp1, amygl.disp2, ... The
numbers correspond to the subject id. All variables are then stored
as midus.text.zip. If you
unzip it, it will create the directory called midus.text containing all the
variables as separate text files.
3) What can
go wrong with spherical harmonic (SPHARM) representation
August 10, 2013
In order to understand the
limitation of SPHARM (spherical harmonic)
representation, see [3]. SPHARM representation
depends on the quality of the corresponding spherical meshes. If
the mesh is not so regular, SPHARM may not correctly reconstruct
the original surfaces. Here we use area-preserving surface
flattening which iteratively regularize triangle areas according
to A-matrix in the finite element method (FEM) [6,7]. For
instance, left amygdala and hippocampus surfaces are flattened as
follows (Figure 3, 4):
figure; subplot(1,2,1);
figure_wire(amygl,'r','w');
sphal=mesh_areapreserve(amygl,10000);
subplot(1,2,2); figure_wire(sphal,'r','w');
figure; subplot(1,2,1); figure_wire(hippol,'y','w');
sphhl=mesh_areapreserve(hippol,10000);
subplot(1,2,2); figure_wire(sphhl,'y','w');
Figure
3. The left amygdala template
flattened onto a unit sphere by
area-preserving mapping. Due to simple
spherical geometry of amygdala, it can be
easily flattened.
Figure
4. The left hippocampus template
flattened onto a unit sphere by
area-preserving mapping. Due to the
elongated hippocamus shape, it is not easy
to flatten. At the south pole, we see
irregularly high mesh densities. This will
cause a serious problem in SPHARM. It is
crucial to come up with a better surface
flattening algorithm that works best for
SPHARM.
Once we have the corresponding spherical
meshes, we reconstruct the surface
coordinates with respect to the spherical
meshes. SPHARM formulation is based on the
following publications that utilizes iterative residual
fitting (IRF) algorithm
[8,9]. For amygdala surfaces, due to the
regularity of the corresponding spherical
meshes, spherical SPHARM can reconstruct
the original surfaces pretty well (Figure
5). However, there is a serious
defect on reconstructing hippocampus
surfaces (Figure 6).
figure; subplot(1,2,1);
figure_wire(amygl,'r','w');
[SPHARMal, fourier]=SPHARMsmooth2(amygl,sphal,20,0);
subplot(1,2,2);
figure_wire(SPHARMal,'r','w');
figure; subplot(1,2,1);
figure_wire(hippol,'y','w');
[SPHARMhl,
fourier]=SPHARMsmooth2(hippol,sphhl,20,0);
subplot(1,2,2);
figure_wire(SPHARMhl,'y','w');
Figure 5.
The left
amygdala surface
is reconstructed
using SPHARM of
degree 20. Due
to the spherical
geometry of the
original
amygdala
surface, the
corresponding
spherical mesh
is regular
enough to
reconstruct the
amygdala
surface.
Figure
6. The
left
hippocampus
surface is
reconstructed
using SPHARM
of degree 20.
Due to the
elongated
shape of the
hippocampus,
it won't
reconstruct
the
hippocampus
shape
properly.
4) Better
spherical harmonic (SPHARM) representation with more
uniform mesh resampling
August 15, 2013
The
left hippocampus
template
consists of 4884
triangles and
2444 vertices.
We have modified
mesh_areapreserve.m
in
such a way that
A-matrix is
computed within
each loop
whenever a mesh
is updated.
Although it
takes longer, it
performs better
as shown in Figure
6.
However, it is
still not good
enough.
figure;
subplot(1,3,1);
figure_wire(hippol,'y','w');
sphhl=mesh_areapreserve2(hippol,1000);
subplot(1,3,2);
figure_wire(sphhl,'y','w');
[SPHARMhl,
fourier]=SPHARMsmooth2(hippol,sphhl,20,0);
subplot(1,3,3);
figure_wire(SPHARMhl,'y','w');
Figure 7.
Left: left
hippocampus
template.
Middle: corresponding spherical parametrization. Right: SPHARM with
respect to the spherical parametrization. It performs better than Figure
6 although it still needs improvements.
To improve the reconstruction done in Figure 7, we resample
the spherical mesh with a fine uniform spherical mesh. Based on
triangle subdivision, sphere_tri.m generates uniform
spherical mesh with 40962 vertices and 81920 triangles. Using sphere6, we
subsequently resample nonregular spherical mesh sphhl. This results in more
regularized spherical mesh S2hlres, where SPHARM will be constructed. See Figure
8 for SPHARM on the resampled spherical mesh that shows a
better reconstruction.
sphere6= sphere_tri('ico',6,1);
figure; subplot(1,3,1); figure_wire(sphere6, 'y', 'w');
[S2hlres, ind] = sphere_resample(sphhl,
sphere6);
hippol_res.faces=S2hlres.faces;
hippol_res.vertices=hippol.vertices(ind,:);
subplot(1,3,2); figure_wire(hippol_res, 'y', 'w');
[hippolSP, fourier]=SPHARMsmooth2(hippol_res,S2hlres,40,0);
subplot(1,3,3); figure_wire(hippolSP,'y','w');
Figure
8. Left:
spherical mesh
sphere6
consisting of
81920
triangles. MNI and FreeSurfer also use the identical uniform
spherical mesh. Middle: resampled left hippocampus surface with
respect to sphere6. Right: degree 40 SPHARM of the resampled
hippocampus. Compared SPHARM in Figure 6 and 7,
uniform resampling drastically improves the reconstruction.
The estimated spherical harmonic coefficients are stored in the
variable fourier.
Using the estimated coefficients fourier,
we can resample hippocampus surface anyway we want. For instance, we
can construct a smaller uniformly sampled spherical mesh sphere4 with 5120
triangles and resample the hippocampus surface with respect to sphere4 (Figure
9). Then
the resampled
left
hippocampus
will have 5120
triangles.
Note that
originally the
left
hippocampus had
4884 triangles.
We
have easily changed the mesh topology. However, the reconstructed
hippocampus seems unnatural. This can be fixed by reconstructing
SPHARM with the initial irregular spherical mesh sphhl that did not
work previously. Figure 9 shows the reconstructed SPHARM that looks
the best among all SPHARM reconstructions.
sphere4=
sphere_tri('ico',4,1)
SPHARMsurf1=SPHARMrepresent2(sphere4,fourier,40,0)
figure; subplot(1,2,1); figure_wire(SPHARMsurf1,'y','w');
SPHARMsurf2=SPHARMrepresent2(sphhl,fourier,40,0)
subplot(1,2,2); figure_wire(SPHARMsurf2,'y','w');
Figure
9. Left:
SPHARM
reconstructed
hippocampus
with 5120
triangles. The
mesh topology
is different
from the
original
surface.
Right: SPHARM
reconstructed
hippocampus
with 4884
triangles. The
mesh topology
is identical
to the original surface.
If you want to compute the reconstruction accuracy of SPHARM in
terms of the mean squared errors (MSE), you need to compute
between the original surface (Figure 7 left) and the best
SPHARM reconstruction (Figure 9 right).
5)
Reconstruction error plots using the mean squared errors
(MSE)
September 14,
2013
The accuracy of reconstruction can be visualized using the mean
squared errors (MSE). Here we computed MSE between the original
left hippocampus and the reconstructed and resampled 40 degree
SPHARM and displayed (Figure 10). If you want to
change the color bar scale, use caxis to reduce the scale of color bar.
residual=hippol.vertices - SPHARMsurf2.vertices;
MSE=sqrt(sum(residual.^2, 2));
figure; figure_surf(hippol , MSE)
view([160 20])
colorbar; camlight; alpha(0.8)
title('Reconstruction Error')
caxis([0 2])
Figure
10. The
mean square
error (MSE)
map between
the original
left
hippocampus
and the reconstructed and resampled 40
degree SPHARM.
6) Random
field theory based statistical analysis on surface.
August 18, 2013
Here we present statistical analyses
for testing the group and age effects on the left hippocampus
surface. The statistical analyses are based on SurfStat package written by Keith J.
Worsley. You must download it and install it with the correct
Matlab path.
On the template surface, we need to test for gender and age effect
of total 69 surfaces. This is equivalent to testing the
corresponding 69 displacement vector fields. The displacement of
the left hippocampus are stored in displacement{:,2,1}. SurfStat package inputs only a specific vector data
format so the displacement is stored in disphl.Similarly, meshes need to be
reformatted.
disphl=zeros(69,2444,3);
for i=1:69
disphl(i,:,:)=displacement{i,2,1};
end
hippol.coord= hippol.vertices';
hippol.tri=hippol.faces';
Then testing for the gender effect
on the displacement vector is as follows. It is based on the
general multivariate linear model (GMLM) or multivariate general
linear model (MGLM). See [10] for statistical details on MGLM.
Gender=term(gender);
Age=term(age);
Brain=term(brain);
slm1 = SurfStatLinMod( disphl, 1+Brain + Gender+Age,
hippol);
slm2 = SurfStatT( slm1, gender);
figure; figure_surf( hippol ,slm2.t);
colorbar; view([-120 20]); camlight
T-statistic obtained in MGLM is visualized in Figure 11. To
determine the regions of statistical significance, we need to
threshold the t-statistic map at 0.05. T-stat threshold of 4.73
corresponds to the multiple comparisons corrected pvalue of 0.05.
However, we did not detect any region that is above 4.73.
thresholdhl=randomfield_threshold(slm,
0.05)
Figure
11. T-stat
showing the
lack of gender
effect on the
left
hippocampus.
To testing age effect, we set up a similar MGLM. The T-statistic map
is shown in Figure 12, where most of the tail regions of the
hippocampus show significant age related anatomical change.
slm3 = SurfStatT( slm1,
age);
figure; figure_surf( hippol ,slm3.t);
colorbar; view([-120 20]); camlight
Figure
12. T-stat
showing the
strong age
effect on the
left
hippocampus. Any
region above 4.73 is considered as significant at 0.05 level
(corrected).
Publication
on MIDUS dataset
August 7, 2013
- Chung, M.K. et al. 2013.
Unified kernel regression on manifolds. under review.
- Chung, M.K. 2013. Statistical
and Computational Methods in Brain Image Analysis.
Chapman & Hall/CRC. This book has chapters on various
surface shape modeling techniques and corresponding MATLAB
codes used on MIDUS data.
- Hosseinbor, A.P., Chung, M.K.,
Schaefer, S.M., van Reekum, C., Peschke-Schmitz, L., Sutterer,
M., Alexander, A.L., Davidson, R.J. 2013. 4D
Hyperspherical harmonic (HyperSPHARM) representation
of multiple disconnected brain subcortical structures,
16th International Conference on Medical Image Computing and
Computer Assisted Intervention (MICCAI). Lecture Notes in
Computer Science (LNCS) accepted.
- Kim, S.-G., Chung, M.K.,
Schaefer, S.M., van Reekum, C., Davidson, R.J. 2012. Sparse
shape representation using the Laplace-Beltrami
eigenfunctions and its application to modeling subcortical
structures. IEEE Computer Society Workshop
on Mathematical Methods in Biomedical Image Analysis (MMBIA).
25-32. MATLAB
- Kim, S.-G., Chung, M.K., Seo,
S., Schaefer, S.M., van Reekum, C., Davidson, R.J. 2011. Heat
kernel smoothing via Laplace-Beltrami eigenfunctions and its
application to subcortical structure modeling. Pacific-Rim Symposium on Image
and Video Technology (PSIVT). Lecture Notes in Computer
Science (LNCS). 7087:36-47. MATLAB
- Chung, M.K.
2001. Statistical
morphometry in neuroanatomy, PhD Thesis, McGill
University (PhD
defense slides)
- Chung, M.K., Taylor, J. 2004. Diffusion
smoothing on brain surface via finite element method,
IEEE International Symposium
on Biomedical Imaging (ISBI). 562
- Chung, M.K. Hartley, R.,
Dalton, K.M., Davidson, R.J. 2008. Encoding
cortical surface by spherical harmonics. Satistica Sinica
18:1269-1291. MATLAB
- Chung, M.K., Dalton, K.M.,
Shen, L., L., Evans, A.C., Davidson, R.J. 2007. Weighted
Fourier series representation and its application to
quantifying the amount of gray matter.. IEEE Transactions on Medical
Imaging 26:566-581. MATLAB
- Chung,
M.K., Worsley, K.J., Nacewicz, B.M., Dalton, K.M.,
Davidson, R.J. 2010. General
multivariate linear modeling of surface shapes using
SurfStat. NeuroImage.
53:491-505.