Differences between revisions 20 and 21
Deletions are marked like this. Additions are marked like this.
Line 58: Line 58:
(6) The read annotation is stored in the field mris->vertices[vertex number].annotation (look at mrisurf.h for more details). (6) The read annotation is stored in the field mris->vertices[vertex number].annotation (look at mrisurf.h for more details). Note that mris->vertices[vertex number].annotation takes on values defined by the colortable. This is explained in the previous section on "What is a colortable".
Line 78: Line 78:

mris->ct->CTE[n]->ai = 0

(5) mris->ct->CTE[n].rf, mris->ct->CTE[n].gf, mris->ct->CTE[n].bf, mris->ct->CTE[n].af are the corresponding values but from 0 to 1.

An annotation file contains labels of a surface, for example the sulci and gyri labels of a cortical surface. It is usally found in the subject_identifier/label/ folder. There is a separate annotation for left and right hemisphere, e.g. ?h.aparc.annot

Overlay Annotation on Surface in Tksurfer

(1) Start tksurfer as usual: e.g. tksurfer subject lh inflated

(2) Click on pull down menu: File -> Select Label -> Import Annotation

(3) Browse and find the annotation file (they are usually found in the label folder)

(4) Select and click ok. This will show the labels on the brain.

(5) To change view, click on pull-down menu: view->label style->outline.

Faster way

(1) ctrl-right click on "Show Labels" Button

(2) Browse and find the annotation file (they are usually found in the label folder)

(3) Select and click ok. This will show the labels on the brain.

(4) To change view, click on "Draw Outlined Labels" button

Reading Into Matlab

[v, L, ct] = read_annotation(annotation_filename);

Suppose N is the number of vertices. Then,

v = N x 1 vector, v(i) = i-1 (you can usually ignore v)

L = N x 1 vector, L(i) = label of ith vertex of mesh

ct = colortable structure

What is a colortable (matlab version, see freesurfer version below)

The colortable matches the label with the structure name. It also gives color to each structure type for visualization in tksurfer. In matlab, the colortable structure can be dissected as follows.

ct.numEntries = # structures that are specified (scalar)

ct.orig_tab = location of riginal colortable (string). It's mainly for book-keeping

ct.struct_names = list of structure names (cell). The number of strings should be equal to the number of entries. For example, ct.struct_names{1} could be 'central sulcus'

ct.table = ct.numEntries x 5 matrix. Row i describes the color and label of the ith structure. ct.table(1,j) specifies the red color value of structure j (0 to 255). ct.table(2,j) specifies the green color value of structure j (0 to 255). ct.table(3, j) specifies the blue color value of structure j (0 to 255). ct.table(4,j) is all zeros. Finally ct.table(5,j) = ct.table(1,j) + ct.table(2,j)*28 + ct.table(3,j)*216 + 0*224 = label given to structure j.

Therefore if vertex i is labeled structure j. Then L(i) = ct.table(5, j).

Reading Annotation Files into Freesurfer

(1) #include "mrisurf.h"

(2) use function: int MRISreadAnnotation(MRI_SURFACE *mris, char *sname).

(3) Returns NO_ERROR if successful.

(4) *mris is the freesurfer surface structure

(5) sname is the filename of the annotation file. sname can be the full path or just the filename. If it's not a full path, then function will use the directory where the surface mris was read from.

(6) The read annotation is stored in the field mris->vertices[vertex number].annotation (look at mrisurf.h for more details). Note that mris->vertices[vertex number].annotation takes on values defined by the colortable. This is explained in the previous section on "What is a colortable".

(7) If a colortable exists in the annotation file (which in general it should), then the colortable is stored in mris->ct

Colortable (Freesurfer version)

The colortable matches the label with the structure name. It also gives color to each structure type for visualization in tksurfer.

mris->ct is the pointer to the colortable struct that freesurfer uses. It's different from the matlab version of colortable. The structure can be found in colortab.h, but it can be summarized as follows:

(1) mris->ct->nentries = # entries in colortable (i.e. the number of structures defined by colortable)

(2) mris->ct->CTE[entry number] = pointer to a colortable entry (CTE).

(3) mris->ct->CTE[n]->name = structure name of the nth structure in the colortable

(4) mris->ct->CTE[n]->ri = red color [0-255] of the nth structure

mris->ct->CTE[n]->gi = green color [0-255] of the nth structure

mris->ct->CTE[n]->bi = blue color [0-255] of the nth structure

mris->ct->CTE[n]->ai = 0

(5) mris->ct->CTE[n].rf, mris->ct->CTE[n].gf, mris->ct->CTE[n].bf, mris->ct->CTE[n].af are the corresponding values but from 0 to 1.

AnnotFiles (last edited 2008-04-29 11:45:15 by localhost)