regress_basis_multi dmBLOCK- negative values


I am running into some difficulties when determining which regress_basis_multi option to use for our analysis. The data is from a social incentive delay (SID) task where people anticipate varying levels of social reward or no reward, and depending on a successful response to a cue, receive that reward or not. Because there are individual differences in response timing, we used dmBLOCK. However, after extracting activation in our primary ROI, we are getting negative beta values in all conditions of interest (when based on our past samples/SID literature we would expect to get positive values). In a previous sample using the same task, we ran into this same issue and found that when WAV was used (outside of proc) the values were positive but were negative when using dmBLOCK, which made us wonder whether there was some sort of scaling issue when using dmBLOCK.

I am wondering if/why dmBLOCK could be contributing to negative values and if you have any recommendations for how to possibly correct this?

Thank you!

For each task condition, what is the duration range across trials? What is your research hypothesis about the task conditions?

Our hypothesis is that striatal activation will be greater during reward vs. no reward conditions. We're primarily interested in the anticipation of social reward conditions.

Duration ranges:
anticipation of no reward: 2.33-3.07 seconds (range: 0.73)
anticipation of low reward: 2.38- 3.07 (range: 0.68)
anticipation of high reward: 2.29-3.07 (range: 0.78)


You may consider using dmUBLOCK rather than dmBLOCK, as detailed here. Directly estimating the hemodynamic response using a deconvolution approach, as outlined in this blog post, could be a valuable alternative to assuming a fixed shape and might yield more accurate and improved results.

Gang Chen

Hi Gang,

Thank you for your suggestions! We tried to use dmUBLOCK when we were testing this out and it yields essentially the same result as the dmBLOCK with a slight shift in the scaling. We could definitely try TENT as you suggest, but overall we are still hoping to determine why we would get results that have opposite directionality using WAV versus dmBLOCK/dmUBLOCK. We have run these approaches on the same dataset - WAV produces results that align with prior literature - there is increased striatal activity during anticipation of reward relative to baseline. In contrast, dmBLOCK suggests that anticipating reward leads to deactivation in the striatum relative to baseline. This latter account does not make sense based on prior data or existing literature. We could use WAV to be consistent with prior literature that has used this task, but if I understand correctly, procpy does not accommodate WAV with varying durations and we would like to understand what might cause these different models to have such opposite results. I'm very grateful for any insight you can provide about why these models would diverge.

You can modify the 3dDeconvolve script generated by by modifying the basis function under the -stim_times option. Choosing WAV or another canonical shape only reveals a portion of the data that aligns with the assumed shape, potentially resulting in sensitivity loss or distortion. In contrast, opting for TENT in deconvolution enables the data to unveil the intrinsic hemodynamic response, and has the potential to substantially enhance detection sensitivity by capturing a more comprehensive representation of the hemodynamic response.

Gang Chen

Hi Gang, could you please clarify how to get the WAV basis function to use varying durations in 3ddeconvolve? I understand your recommendation to change the basis function. However looking at the help, it seems like WAV is expecting a set parameter for (d). Our stimulus timing files look something like this
12.3:15.2 20.4:25.6 34.1:34.6
Changing the 3ddeconvolve script to use WAV and feeding these stimulus timing files in I'm getting a warning that suggests it is not using the duration in the timing files.
** stim type 1 is not married, but file (regfile/##_SIDclip_AllRatings_allruns.1D_WAV.txt) is

Hi @Jbomyea,

Sorry, but right now, the dm*BLOCK functions are the only ones that support duration modulation (directly, in 3dDeconvolve). Unfortunately, WAV is not an option for direct use.

  • rick