Removing timepoints from analysis

Hi afni users,

How could one censor out specific timepoints from regression analysis at the beginning of each block within a run?

Take, for example, a simple A/B block design with no time between ‘A’ blocks and ‘B’ blocks. If one is interested in the contrast of B-A, then the first 7 seconds or so of block ‘B’ would be contaminated with the BOLD signal falling from the previous ‘A’ block (as the ‘B’ blocks would contaminate the ‘A’ blocks).

Thanks for your input!

If you simply want to censor the first 3 TRs of the
B blocks, for example, that would be easy enough.
If the timing is complicated, you could simply use
one 3dDeconvolve command to generate regressors for
those 2 terms, and then censor based on when they
are both sufficiently non-zero. That would be
simple as well.

However it might be a good idea for you to explain
why. Overlapping responses is only sometimes a
problem, particularly if the A->B timing is fixed,
or close to it. But even that is not always too
bad, unless TENTs are involved.

Would you give me details about the timing of
these tasks, and how they might be modeled?

  • rick

Thanks for your reply!

The A/B blocks are fixed. Each occurs for a full 30 seconds, back to back (‘A’ block occurs at 0s, 60s, 120s and ‘B’ block occurs at 30s, 90s, 150s, and so on). Because of this tragic design, want to censor out the first few TRs of each block to allow the response from the previous block to go away.

Could I simply use the BLOCK(22,1) basis function and add 8 seconds to each timepoint in the timing files, essentially shifting the block by 4 TRs? My concern partly with this approach is that the BLOCK basis function appears in 1d files to model the BOLD response rising and falling- if i simply shift the timings, the response should be at it’s plateau for the duration of the TRs being analyzed.

My timing files for analysis might look like this for a single run:

a_block.txt :
8 68 128

b_block.txt :
38 98 158

Is there a better way to go about this?


Hi Daniel,

The timing you specify (0, 60, 120, …; 30, 90, 150, …)
suggests that the entire run is partitioned into the two
event types. In such a case, only one of them should be
modeled (implicitly as the difference), while the other
would be considered baseline.

As it stands, the sum of the typical A and B regressors
would probably be a flat line, except for perhaps the
very beginnings and ends of the runs. In such a case,
one cannot really say that “A is significantly active”
or “B is significantly active”. One can only tell that
there is a significant difference between states A and B.

It might be more appropriate to censor the beginning and
end of each run (or remove them), and call condition B
the baseline (i.e. do not model it).

  • rick