The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Hemodynamic Response Function Modeling with hrf

Damon Pham & Amanda Mejia

2025-01-29

hrf is an R package for modeling the hemodynamic response function (HRF). It also includes functions for constructing a design matrix for a general linear model (GLM), and for comparing multiple GLMs with different design matrices.

library(hrf)

HRF modeling

TR <- 2.2
upsample <- 1000
upsample <- round(TR*upsample)/TR # TR*upsample must be an int

u <- seq(0, 30, by=1/upsample) #go out 30 sec
HRF <- HRF_calc(t = u, deriv=0)
dHRF <- HRF_calc(t = u, deriv=1)

matplot(cbind(HRF, dHRF), type="l", lwd=2, col=c("black", "blue"))

Design matrix construction

# Read in data. 
events <- read.csv("../tests/data/motor1-events.tsv", sep="\t")

# Convert 3-col data.frame to list of 2-col data.frames
events$trial_type <- as.factor(events$trial_type)
trials <- levels(events$trial_type)
events <- setNames(lapply(
  trials, 
  function(x){events[events$trial_type==x,seq(2)]}
), trials)
des <- make_design(events, nTime=370, TR=0.72)
## Maximum corr.:  0.17 
## Maximum VIF:    1.171
des
## ====BfMRI_design =======================
## Fields: LFoot, LHand, RFoot, RHand, Tongue 
## ----------------------------------------
plot(des)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.