Atlas

From VISTA LAB WIKI

Jump to: navigation, search

The Atlas method fits a model of the visual field representation to traveling wave methods or population receptive field data. It is implemented for data represented on a Flat view. Fitting an atlas provides a principled way to define visual areas. It also measures you how well a visual field model (e.g., a hemifield or quarterfield) fits the data, and allows for comparison of different models.

The Atlas fit creates a standardized space that can be used to combine data across subjects. This is the method Kaoru Amano used to identify two visual field maps (TO-1, TO-2) in motion-selective cortex. This worked is modeled on that of Larson & Heeger's (J. Neurosci 2006).

Contents

[edit] Overview

Fitting an atlas involves the following steps:

  • Load pRF data (File | Retinotopy Model | Load Model Parameters as if Wedge/Ring)
  • Create atlas (e.g. Analysis | Create atlas | V1/V2/V3)
  • Create data structure for the fitting GUI (Analysis | Create data for the fitting GUI, after you select the dataType for the atlas)
  • Open GUI for the fitting (Analysis | Open the fitting GUI)
  • Fit the atlas into raw data (Click "Start registration" in the GUI)
  • Transform raw data into a common atlas space (Analysis | Transform into a common atlas space)

[edit] What you need to set up an Atlas

You need to have polar angle and eccentricity data within a single dataType. The range of the phase should be between 0 and 2*pi for both maps.

For data fit with a population receptive field (pRF) model, one way to load the data is by selecting "File | Retinotopy Model | Load Model Parameters as if Wedge/Ring". All eccentricity estimates larger than 'ecc_thre (default=12)' will be truncated to 'ecc_thre' and their phase will be 2*pi. You may change 'ecc_thre' depending on your stimulus radious (Kaoru recommend the 'ecc_thre' between the stimulus radius and 1.5*the stimulus radius).

However, some updates to the code (rory, April 2009) will allow the data to be loaded directly from a selected pRF model rather than forcing the pseudo-traveling-wave step described above. These updates also allow fitting in the case where the data type containing the pRF data has a slot for only one scan. (For intance, the average of many 8-bar runs, which produce a single average scan).

For the traveling wave data, you need to adjust the phase so that 0 means left horizontal meridan for angle map and fovea for eccentricity map.

[edit] Fitting an Atlas

Fitting an atlas requires selecting the initial points for the atlas template. For some models, there can be a lot of points to select, and the process can require your full attention. The figures below indicate the order you select area corners for hemifield atlas and V1/V2/V3 atlas. Generally, the click order within a single area is 1. low ecc, low angle, 2. low ecc, high angle, 3. high ecc, high angle, 4. high ecc, low angle.

TODO: Other atlas orderings should be added here, and these images should probably come up automatically during the software.

File:Atlas hemifield.PNG
click order for hemifield atlas
File:Atlas V1-V3 orde.PNG
click order for V1/V2/V3 atlas
File:Atlas V3v-hV4 order.PNG
click order for V3v / hV4 atlas

[edit] Walkthrough

This walkthrough will show images from a fitting procedure of V1, V2, and V3 to a pRF data set. It will also serve as documentation of Rory's attempts to use the atlas.

[edit] 1) Open a flat view, load the eccentricity and polar angle data

First, you need to open a mrVista flat view, and make sure the maps indicating the estimated eccentricity and polar angle are loaded.

  1. If you have the data stored as a traveling wave experiment (corAnal), you should load the corAnal as normal (File | Load | corAnal, or View | Phase map).
  2. If you have the data stored as a pRF model, select the model to load (File | Retinotopy Model | Select and Load Model), then load the model's default parameters (File | Retinotopy Model | Load Model Default Maps).

Since in this example, we're using pRF data, we'll do the latter step. For this, the data are all loaded into scan 1 (indeed, there is only 1 scan in this data type), with the polar angle in the 'ph' field, and the eccentricity in the 'map' field.

The polar angle data in this example
The eccentricity data in this example


[edit] 2) Create the model visual fields

Select the menu Analysis | Create atlas | ... Within this menu are several sub-menus. For this example, I select V1/V2/V3.

Now the code prompts me to specify where the eccentricity and polar angle data lie in the Flat view. I have both data in scan 1, eccentricity in the map slot, polar angle in the ph slot. (If we had traveling wave data, I would need to select 'ph' for both data types, and specify two scans.)

There are many atlas options, some of which are not very clearly documented ... :P
Specifying where the data are kept

I am next asked to specify what to name my new atlas. The default names are 'Atlases-#', where the number is the number of atlases in the data type. I choose a more descriptive name, 'Altases-V1-3'. The Atlas code will save the results in a new data type with this name.

After I do this, a mrMessage box pops up (a white box next to the flat window) ask me to create an initial definition of V1, by clicking on four points defining the four extreme points of the V1 map in my data. I proceed (as I will in general using the atlas) in the following order:

  1. Point with low visual field angle, low eccentricity
  2. Point with high visual field angle, low eccentricity
  3. Point with high visual field angle, high eccentricity
  4. Point with low visual field angle, high eccentricity.

These define the initial boundary corners the atlas will use to map between the atlas and data. After I define V1, I am next prompted to define V3v (the upper quarterfield representation) and V3d (the lower quarterfield representation). I don't need to define V2v or V2d, because those corners are the same as the adjacent corners with V1 and V3.

This image Kaoru made helpfully illustrates the order in which I need to click on things. Hopefully soon other images will be on this wiki page, for other types of models. Also, we will try to get these images to appear as you click on points.

File:Atlas V1-V3 orde.PNG
click order for V1/V2/V3 atlas

[edit] 3) Examine the produced model data

After I select the sets of points defined V1 and V3, the code saves the model maps in a new data type, with the name I provided. (In this case, 'Atlases-V1-3'.) The model information is saved in the following way:

  • Every atlas data type has exactly two scans, one for polar angle and a second for eccentricity.
  • The model data are saved in a simulated corAnal.mat file. (E.g., mySession/Flat/Atlases-V1-3/corAnal.mat).
  • The model polar angle is in the phase slot for scan 1, model eccentricity in the phase slot for scan 2.
  • Currently, the units are fairly arbitrary, but the atlas creation stage recorded the mapping between my data and the model phase.
  • The amp slot is empty in this corAnal.
  • The co slot has an index, indicating which ROI lies where. (0.00 indicates V1, 0.10 indicates V2, 0.20 indicates V3.) Strangely, the indexing is 0-offset, so the V1 mask is the same as the mask for no ROIs. (If you left your cothresh slider above 0, V1 may be masked out.)

I take a look at the model maps now, to verify that they make sense. I select the appropriate data type, and View | Phase Map.

File:Atlas modelPol.PNG
Model polar angle for V1/V2/V3 atlas. My previously-defined ROIs, from V1 to VO-2, are superimposed.
File:Atlas modelEcc.PNG
Model eccentricity for V1/V2/V3 atlas. My previously-defined ROIs, from V1 to VO-2, are superimposed.

This looks pretty good.

[edit] 4) Create preliminary images for the fitting code

I select Analysis | Create data for fitting code.

[edit] 5) Call the fitting code

[edit] 6) Let it crunch

Depending on the sampling grid, the fitting process can take a while. For the V1-V3 maps in one hemisphere, it takes 20-30 minutes on a circa-2006 Dell computer.

[edit] Atlas Standard Space

Kaoru Amano developed methods to combine data from multiple subjects in the atlas coordinate frame. He used these in his TO paper. These are based on the methods described in Larsson and Heeger J. Neuroscience paper about LO-1 and LO-2.

In an e-mail, Kaoru explains - (The files referred to below are now in the mrLoadRet/Analysis/Atlas directory.)

Hi Rory

Brian mentioned that you are interested in atlas-based averaging. To be honest, the scripts for the averaging is very dirty and are not ready to be uploaded...

The core part is the morphing into a common rectangular space, and I'll describe how you can do it. Once you get the transfomed atlas ('images3_YM_right' in the following example), averaging them across subjects is very straightforward.

First, could you copy the three m files (RawToCommonAtlas, transform_image_V1_V3, transform_image_LO_TO) into 'mrLoadRet/Analysis/Atlas' folder ?

Then, the following command will morph the atlas.

load atlas_TO12_right_06-Mar-2009-2
[images images2_right images3_YM_right]= RawToCommonAtlas(images, corners, 'safirData_right090306', 'safirResult_right090306');

atlas_TO12_left_06-Mar-2009-2 is a little bit modified version of atlas_TO12_left_06-Mar-2009 that is created when you "create data for fitting GUI". (ecc is reloaded since it was scaled to 0-2pi at the initial loading). Once you finish atlas fitting using GUI, safirData and safirResult will be created. safirData_right090306 and safirResult_right090306 are just renamed versions of them.

You can type "help RawToCommonAtlas" to get more information.


all_sub_atlas_TO_3 is a script to average all atlases. Although the script won't work since most of the fitted data don't exist in biac3, you will get the sense.

Feel free to ask any questions.

Personal tools