Hemodynamic Variability

The following programs are referred to and used in the paper:
Investigating hemodynamic response variability at the group level using basis functions
Corresponding Author: Jason Steffener, Ph.D.
Authors: Matthias Tabert, Ph.D.; Aaron Reuben, B.A.; Yaakov Stern, Ph.D.

, 49(3) Pages 2113 - 2122

Abstract: Introduced is a general framework for performing group level analyses of fMRI data using any basis set of two functions to model the hemodynamic response to neural activity. The approach allows for flexible implementation of physiologically based restrictions on the results. Information from both basis functions is used at the group level and the use of limits on the results avoids physiologically ambiguous or implausible results. This allows for investigation of specific BOLD activity such as hemodynamic responses peaking within a specific temporal range. The general nature of the approach allows for applications using basis sets specifically designed to investigate physiologic phenomena, i.e age-related variability in post-stimulus undershoot, hemodynamic responses measured with cerebral blood flow imaging or subject specific basis sets. This represents a synthesis of past methods for group-level hemodynamic modeling and offers a flexible approach for exploring specific physiological phenomena. An example using data from a group of healthy young participants demonstrates the methods and discussed are the specific steps to study the phenomena stated above: post-stimulus variability. The approach is completely implemented within the general linear model and requires minimal programmatic calculations.

This program calculates the contrast weights required to combine two
basis functions at the given ratio. The program checks the design matrix
to determine if it is normalized.

This program creates and executes the SPM command lines to calculate the magnitude
image. It checks the design matrix to see if it is normalized.

This program creates the FSL command lines to calculate the magnitude image. It checks the design matrix to see if it is normalized.

This is a program which uses SPM5 results and creates a time to peak image based on the basis function model fits.

Program to create the beta ratio versus latency graphs for the standard double Gamma basis set.


  • Just calculate the "derivative boost"
    I would like to make use of the idea of a 'boosted beta' for non-normalised regressors as contained in the SPM5/8 design matrices, but just for designs containing hrf and time derivative, not for designs that use other basis systems.

    Wouldn't it then suffice to just compute a new b1 as in eq 1.4, multiplied by sign(b1)?
    You state that in your apprpach, the sign will be part of the contrast, but are contrasts really necessary when just the hrf and time derivative are used in the model?
    Posted Mar 17, 2011, 6:07 AM by Jason Steffener
  • Question concerning script
    Hi Jason,

    The new script worked perfectly! thanks so much. I wondered if I could
    be extra annoying and ask another question though. I have a simple
    Subsequent Memory Experiment design where subjects see words  in the
    scanner and later get a surprise memory test. I can then compare
    activity when they saw later-remembered words in the scanner (hits)
    and later-forgotten words (misses). I have been calculating the
    contrast hit-miss at the first level and taking that to the second
    level in a one or 2-sample t-test (I have 2 groups). I would prefer to
    use t-tests at the 2nd level but at the moment I can't with the
    Magnitude Images as I do not have one reflecting hits -miss (and can't
    calculate it using your script as I want to contrast two columns of
    the design matrix).

    For the same reason I also can't contrast them using the SPM contrast
    manager - as the magnitude Images are not in my design matrix. I was
    wondering whether I could just use SPM's ImCalc function and subtract
    the miss magnitude image from the hit magnitude image. Is this all a
    simple 1 -1 contrast in the SPM contrast manager would do? I think so.

    Also, I was imagining that using these Magnitude Images I would get a
    great representation of the height differences in HRF but would still
    need to use the temporal derivative images from a model including the
    HRF and temporal derivative to look at timing differences between
    groups and conditions. However, I suspect that your script make that
    method 'obsolete' but I am not sure why - could I still look at timing
    differences using the TD parameters?

    I was also wondering if I should post this exchange on your website as
    I imagine that it would be really helpful for other people like me who
    would love to use your software but are math-phobes - would this be OK
    with you?

    Thank you gain for your help with this, I appreciate it so much.

    Best wishes,

    Posted Jul 8, 2010, 6:42 AM by Jason Steffener
  • Discussions
    The aim of this page is to provide the source code used for this work and to provide any updates.
    Modifications, enhancements, difficulties or suggestions are all welcomed.
    Thank you,

    Posted Jul 8, 2010, 6:40 AM by Jason Steffener
Showing posts 1 - 3 of 3. View more »