You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[fMRI localizers for visual motion](#fmri-localizers-for-visual-motion)
10
7
-[Requirements](#requirements)
11
8
-[Installation](#installation)
@@ -22,13 +19,13 @@
22
19
-[Input:](#input-1)
23
20
-[Output:](#output-1)
24
21
-[Contributors ✨](#contributors-)
25
-
<!-- TOC -->
26
22
27
23
# fMRI localizers for visual motion
28
24
29
25
## Requirements
30
26
31
-
Make sure that the following toolboxes are installed and added to the matlab / octave path. See the next section on how to install the submodule toolboxes.
27
+
Make sure that the following toolboxes are installed and added to the matlab /
28
+
octave path. See the next section on how to install the submodule toolboxes.
32
29
33
30
For instructions see the following links:
34
31
@@ -42,8 +39,8 @@ For instructions see the following links:
42
39
43
40
## Installation
44
41
45
-
The CPP_BIDS and CPP_PTB dependencies are already set up as submodule to this repository.
46
-
You can install it all with git by doing.
42
+
The CPP_BIDS and CPP_PTB dependencies are already set up as submodule to this
43
+
repository. You can install it all with git by doing.
Running this script will show blocks of motion dots and static dots. Motion blocks will show dots moving in one of four directions (up-, down-, left-, and right-ward) (MT+ localizer) or dots moving inward and outward in the peripheral of the screen (MT/MST localizer).
53
+
Running this script will show blocks of motion dots and static dots. Motion
54
+
blocks will show dots moving in one of four directions (up-, down-, left-, and
55
+
right-ward) (MT+ localizer) or dots moving inward and outward in the peripheral
56
+
of the screen (MT/MST localizer).
57
57
58
-
Run in `Debug mode` (see `setParameters.m`) it does not care about subjID, run n., Eye Tracker (soon, at the moment it needs to be set off manually), etc..
58
+
Run in `Debug mode` (see `setParameters.m`) it does not care about subjID, run
59
+
n., Eye Tracker (soon, at the moment it needs to be set off manually), etc..
59
60
60
-
Any details of the experiment can be changed in `setParameters.m` (e.g., experiment mode, motion stimuli details, exp. design, etc.)
61
+
Any details of the experiment can be changed in `setParameters.m` (e.g.,
`setParameters.m` is the core engine of the experiment. It contains the following tweakable sections:
66
+
`setParameters.m` is the core engine of the experiment. It contains the
67
+
following tweakable sections:
65
68
66
69
- Debug mode setting
67
70
- MRI settings
@@ -77,7 +80,8 @@ Any details of the experiment can be changed in `setParameters.m` (e.g., experim
77
80
78
81
#### Let the scanner pace the experiment
79
82
80
-
Set `cfg.pacedByTriggers.do` to `true` and you can then set all the details in this `if` block
83
+
Set `cfg.pacedByTriggers.do` to `true` and you can then set all the details in
84
+
this `if` block
81
85
82
86
```matlab
83
87
% Time is here in terms of `repetition time (TR)` (i.e. MRI volumes)
@@ -106,10 +110,13 @@ Wrapper function that present the dot stimulation (static or motion) per event.
106
110
107
111
#### Input
108
112
109
-
-`cfg`: PTB/machine and experiment configurations returned by `setParameters` and `initPTB`
113
+
-`cfg`: PTB/machine and experiment configurations returned by `setParameters`
114
+
and `initPTB`
110
115
-`logFile`: structure that stores the experiment logfile to be saved
111
-
-`thisEvent`: structure that stores information about the event to present regarding the dots (static or motion, direction, etc.)
112
-
-`thisFixation`: structure that stores information about the fixation cross task to present
116
+
-`thisEvent`: structure that stores information about the event to present
117
+
regarding the dots (static or motion, direction, etc.)
118
+
-`thisFixation`: structure that stores information about the fixation cross
119
+
task to present
113
120
-`dots`: [...]
114
121
-`iEvent`: index of the event of the block at the moment of the presentation
115
122
@@ -119,52 +126,78 @@ Wrapper function that present the dot stimulation (static or motion) per event.
119
126
- Event `duration`
120
127
-`dots`: [...]
121
128
122
-
> NB: 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.
129
+
> NB: The dots are drawn on a square that contains the round aperture, then any
130
+
> dots outside of the aperture is turned into a NaN so effectively the actual
131
+
> number of dots on the screen at any given time is not the one that you input
132
+
> but a smaller number (nDots / Area of aperture) on average.
123
133
124
134
### subfun/design/expDesign
125
135
126
-
This function and its companions creates the sequence of blocks (static/motion) and the events (the single directions) for MT+ and MT/MST localizers. The conditions are consecutive static and motion blocks (fixed in this order gives better results than randomised).
136
+
This function and its companions creates the sequence of blocks (static/motion)
137
+
and the events (the single directions) for MT+ and MT/MST localizers. The
138
+
conditions are consecutive static and motion blocks (fixed in this order gives
139
+
better results than randomised).
127
140
128
-
It can be run as a stand alone without inputs and displays a visual example of the possible design. See `getMockConfig` to set up the mock configuration.
141
+
It can be run as a stand alone without inputs and displays a visual example of
142
+
the possible design. See `getMockConfig` to set up the mock configuration.
129
143
130
144
It computes the directions to display and the task(s), at the moment:
145
+
131
146
1. detection of change in the color of the fixation target
132
-
2. detection of different speed of the moving dots [ W I P - if selected as a task it will give the same null output as if not selected ie no difference in speed]
147
+
2. detection of different speed of the moving dots [ W I P - if selected as a
148
+
task it will give the same null output as if not selected ie no difference in
149
+
speed]
133
150
134
151
#### Events
135
152
136
-
The ``nbEventsPerBlock`` should be a multiple of the number of motion directions requested in ``motionDirections`` (which should be more than 1) e.g.:
137
-
- MT localizer: `cfg.design.motionDirections = [ 0 90 180 270 ]; % right down left up`
153
+
The `nbEventsPerBlock` should be a multiple of the number of motion directions
154
+
requested in `motionDirections` (which should be more than 1) e.g.:
155
+
156
+
- MT localizer:
157
+
`cfg.design.motionDirections = [ 0 90 180 270 ]; % right down left up`
1. Directions are all presented in random orders in `numEventsPerBlock/nDirections` consecutive chunks. This evenly distribute the directions across the block.
163
+
164
+
1. Directions are all presented in random orders in
165
+
`numEventsPerBlock/nDirections` consecutive chunks. This evenly distribute
166
+
the directions across the block.
144
167
2. No same consecutive direction
145
168
146
169
- Color change detection of the fixation cross:
147
-
1. If there are 2 targets per block we make sure that they are at least 2 events apart.
170
+
171
+
1. If there are 2 targets per block we make sure that they are at least 2 events
172
+
apart.
148
173
2. Targets cannot be on the first or last event of a block.
149
174
3. No less than 1 target per event position in the whole run
150
175
151
176
#### Input:
177
+
152
178
-`cfg`: parameters returned by setParameters
153
-
-`displayFigs`: a boolean to decide whether to show the basic design matrix of the design
179
+
-`displayFigs`: a boolean to decide whether to show the basic design matrix of
180
+
the design
154
181
155
182
#### Output:
156
-
-`cfg.design.blockNames`: cell array (nbBlocks, 1) with the condition name for each block
183
+
184
+
-`cfg.design.blockNames`: cell array (nbBlocks, 1) with the condition name for
185
+
each block
157
186
-`cfg.design.nbBlocks`: integer for th etotal number of blocks in the run
158
-
-`cfg.design.directions`: array (nbBlocks, nbEventsPerBlock) with the direction to present in a given event of a block.
187
+
-`cfg.design.directions`: array (nbBlocks, nbEventsPerBlock) with the direction
188
+
to present in a given event of a block.
159
189
- 0 90 180 270 indicate the angle for translational motion direction
160
190
- 666 -666 indicate in/out-ward direction in radial motion
161
191
- -1 indicates static
162
-
-`cfg.design.speeds`: array (nbBlocks, nbEventsPerBlock) indicate the dots speed in each event, the target is represented by a higher/lower value
163
-
-`cfg.design.fixationTargets`: array (nbBlocks, numEventsPerBlock) showing for each event if it should be accompanied by a target
192
+
-`cfg.design.speeds`: array (nbBlocks, nbEventsPerBlock) indicate the dots
193
+
speed in each event, the target is represented by a higher/lower value
194
+
-`cfg.design.fixationTargets`: array (nbBlocks, numEventsPerBlock) showing for
195
+
each event if it should be accompanied by a target
164
196
165
197
## Contributors ✨
166
198
167
-
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
0 commit comments