|
1 | | -# Motion Visual-Localizer |
| 1 | +# fMRI localizers for visual motion |
2 | 2 |
|
3 | | -This repo collects the most common localizers in use to define hMT/V5 |
| 3 | +# Translational Motion |
| 4 | + |
| 5 | +## Requirements |
| 6 | + |
| 7 | +Make sure that the following toolboxes are installed and added to the matlab / octave path. |
| 8 | + |
| 9 | +For instructions see the following links: |
| 10 | + |
| 11 | +| Requirements | Used version | |
| 12 | +|----------------------------------------------------------|--------------| |
| 13 | +| [CPP_BIDS](https://github.com/cpp-lln-lab/CPP_BIDS) | ? | |
| 14 | +| [CPP_PTB](https://github.com/cpp-lln-lab/CPP_PTB) | ? | |
| 15 | +| [PsychToolBox](http://psychtoolbox.org/) | >=3.0.14 | |
| 16 | +| [Matlab](https://www.mathworks.com/products/matlab.html) | >=2017 | |
| 17 | +| or [octave](https://www.gnu.org/software/octave/) | >=4.? | |
| 18 | + |
| 19 | +## Installation |
| 20 | + |
| 21 | +The CPP_BIDS and CPP_PTB dependencies are already set up as submodule to this repository. |
| 22 | +You can install it all with git by doing. |
| 23 | + |
| 24 | +```bash |
| 25 | +git clone --recurse-submodules https://github.com/cpp-lln-lab/localizer_visual_motion.git |
| 26 | +``` |
| 27 | + |
| 28 | +## Structure and function details |
| 29 | + |
| 30 | +### visualLocTranslational |
| 31 | + |
| 32 | +Running this script will show blocks of motion dots (soon also moving gratings) and static dots. Motion blocks will show dots(/gratings) moving in one of four directions (up-, down-, left-, and right-ward) |
| 33 | + |
| 34 | +By default it is run in `Debug mode` meaning that it does not run care about subjID, run n., fMRI triggers, Eye Tracker, etc.. |
| 35 | + |
| 36 | +Any details of the experiment can be changed in `setParameters.m` (e.g., experiment mode, motion stimuli details, exp. design, etc.) |
| 37 | + |
| 38 | +### setParameters |
| 39 | + |
| 40 | +`setParameters.m` is the core engine of the experiment. It contains the following tweakable sections: |
| 41 | + |
| 42 | +- Debug mode setting |
| 43 | +- MRI settings |
| 44 | +- Engine parameters: |
| 45 | + - Monitor parameters |
| 46 | + - Monitor parameters for PsychToolBox |
| 47 | +- Keyboards |
| 48 | +- Experiment Design |
| 49 | +- Visual Stimulation |
| 50 | +- Task(s) |
| 51 | + - Instructions |
| 52 | + - Task #1 parameters |
| 53 | + |
| 54 | +### subfun/doDotMo |
| 55 | + |
| 56 | +#### Input: |
| 57 | +- `cfg`: PTB/machine configurations returned by `setParameters` and `initPTB` |
| 58 | +- `expParameters`: parameters returned by `setParameters` |
| 59 | +- `logFile`: structure that stores the experiment logfile to be saved |
| 60 | + |
| 61 | +#### Output: |
| 62 | +- Event `onset` |
| 63 | +- Event `duration` |
| 64 | + |
| 65 | +The dots are drawn on a square that contains the round aperture, then any dots outside of the aperture is turned into a NaN so effectively the actual number of dots on the screen at any given time is not the one that you input but a smaller number (nDots / Area of aperture) on average. |
| 66 | + |
| 67 | +### subfun/expDesign |
| 68 | +Creates the sequence of blocks and the events in them. The conditions are consecutive static and motion blocks (Gives better results than randomised). It can be run as a stand alone without inputs to display a visual example of possible design. |
| 69 | + |
| 70 | +#### EVENTS |
| 71 | +The `numEventsPerBlock` should be a multiple of the number of "base" listed in the `motionDirections` and `staticDirections` (4 at the moment). |
| 72 | + |
| 73 | +#### TARGETS: |
| 74 | +- If there are 2 targets per block we make sure that they are at least 2 events apart. |
| 75 | +- Targets cannot be on the first or last event of a block |
| 76 | + |
| 77 | +#### Input: |
| 78 | +- `expParameters`: parameters returned by `setParameters` |
| 79 | +- `displayFigs`: a boolean to decide whether to show the basic design matrix of the design |
| 80 | + |
| 81 | +#### Output: |
| 82 | +- `expParameters.designBlockNames` is a cell array `(nr_blocks, 1)` with the name for each block |
| 83 | +- `expParameters.designDirections` is an array `(nr_blocks, numEventsPerBlock)` with the direction to present in a given block |
| 84 | + - `0 90 180 270` indicate the angle |
| 85 | + - `-1` indicates static |
| 86 | +- `expParameters.designSpeeds` is an array `(nr_blocks, numEventsPerBlock) * speedEvent` |
| 87 | +- `expParameters.designFixationTargets` is an array `(nr_blocks, numEventsPerBlock)` showing for each event if it should be accompanied by a target |
4 | 88 |
|
5 | | -1. Radial Motion |
6 | | -2. [Translational motion](/Visual-loc_translational) (4 directions: up-, dowm-, left-, right-ward) |
|
0 commit comments