Calculating Percent Prepulse Inhibition for Analysis - CoBrALab/documentation GitHub Wiki

library(reshape)
library(dplyr)

#set up data-----------------------------------
setwd("/PATH/TO/FILES")

#read in data
data <- read.csv("ppi_master_average_MCHTHC.csv")

#Take averages across trials ------------------
#group by Subject and Chamber to include them in the final.
avg_df <- data %>%
  group_by(Subject, Chamber) %>%
  summarise(
    STAR120 = mean(STAR120, na.rm = TRUE),
    PP3 = mean(PP3, na.rm = TRUE),
    PP6 = mean(PP6, na.rm = TRUE),
    PP12 = mean(PP12, na.rm = TRUE),
    PP9 = mean(PP9, na.rm = TRUE),
    PP15 = mean(PP15, na.rm = TRUE)
  )

avg_df <-as.data.frame(avg_df)

#Calculate PPI--------------------------------------------
ppi_percent <- avg_df %>%
  mutate(ppi03 = (((STAR120 - PP3) / STAR120) * 100),
         ppi06 = (((STAR120 - PP6) / STAR120) * 100),
         ppi09 = (((STAR120 - PP9) / STAR120) * 100),
         ppi12 = (((STAR120 - PP12) / STAR120) * 100),
         ppi15 = (((STAR120 - PP15) / STAR120) * 100))

names = colnames(ppi_percent)

#Melt data to use in modelling (long form)------------------
melted.data <- melt(ppi_percent, id.vars = names[1:8],
               measure.vars = names[9:ncol(ppi_percent)])
names(melted.data)[9:ncol(melted.data)] <- c("PPI","PPI.value")

melted.data$PPI <- as.numeric(
  substr(
    melted.data$PPI, nchar(as.character(melted.data$PPI))-1, nchar(as.character(melted.data$PPI)) 
    )
  )
  
#Optionally, include only positive values as often only positive values are considered valid.
data.pos <- subset(melted.data, melted.data$PPI.value >= 0)

#eof
⚠️ **GitHub.com Fallback** ⚠️