Cortical-limbic circuit dynamics of approach-avoidance conflict in humans.
The 10 matches
- [1] § Results › Behavioral Results ↔ analysis/behavior/figure_1_behave_plots.Rmd, lines 436–497 · score 0.69 · face validity, anger, boredom, disinterest, excitement, frustration
- [2] § Results › Theta coherence increases over the approach period and falls during avoidance ↔ analysis/coherence/create_sig_theta_coherence_csv.Rmd, lines 240–315 · score 0.66 · Pairwise Phase, connectivity metrics, theta coherence, 1.5 seconds, bins, Sig
- [3] § Results › Behavioral Results ↔ analysis/behavior/figure_1_behave_plots.Rmd, lines 285–339 · score 0.61 · risk tolerance, iEEG, turning distance, Variability, game, Figure 1
- [4] § Methods › Behavioral task ↔ R/clean_behavioral_data.R, lines 102–186 · score 0.60 · death animation, lost, corridor, caught, exit, game
- [5] § Results › Network circuit reorganization after decision to avoid ↔ analysis/attack/fig5_right_mfg_models_and_figures.Rmd, lines 252–283 · score 0.59 · strike trials, chase trials, right MFG, attack, locked, power
- [6] § Results › Network circuit reorganization after decision to avoid ↔ analysis/attack/fig5_right_mfg_models_and_figures.Rmd, lines 252–283 · score 0.56 · Strike trial, Chase trials, right MFG, stacks, Attack, locked
- [7] § Results › Pairwise synchrony during approach behavior correlates with choice to avoid ↔ analysis/turnaround_time_correlations/turntime_threshold_model_comparison.Rmd, lines 91–158 · score 0.56 · theta coherence thresholds, OFC ACC, HFA synchrony, OFC MFG, predictive, correlated
- [8] § Methods › Data preprocessing ↔ across_subject_analyses/scripts/average_tfr_functions.py, lines 49–157 · score 0.56 · trial onset, MNE, channels, preprocessing, epochs, log
- [9] § Results › Behavioral Results ↔ analysis/behavior/brms_behavioral_modeling.Rmd, lines 211–258 · score 0.56 · behavioral model, large reward, Male, sex, online, away
- [10] § Methods › Bayesian linear mixed effects models ↔ analysis/freq_power_analyses/all_roi_theta_app_av.Rmd, lines 334–460 · score 0.51 · standard deviation, brms, warmup, chains, fit, linear
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R Markdown · 497 lines · 19 KB · no license · 2 matches
- ---
- title: "Figure 1 Behavioral Data"
- output: html_document
- date: "2024-10-14"
- ---
- ```{r setup, include=FALSE}
- knitr::opts_chunk$set(
- echo <- FALSE, # don't print the code chunk
- warning <- FALSE, # don't print warnings
- message <- FALSE, # don't print messages
- fig.width <- 5, # set default width of figures
- fig.height <- 8, # set default height of figures
- fig.align <- "center", # always align figure in center
- fig.pos <- "H", # always plot figure at the exact location of the code chunk
- cache <- FALSE) # cache results
- ## libraries ##
- library(tidyverse)
- library(ggplot2)
- library(magrittr)
- library(ggthemr)
- library(grid)
- library(gtable)
- library(gridExtra)
- library(wesanderson)
- library(ggsci)
- library(zoo)
- library(kableExtra)
- library(lme4)
- library(RColorBrewer)
- library(doParallel)
- library(parallel)
- library(foreach)
- library(here)
- library(fs)
- library(ggcorrplot)
- library(viridis)
- library(lmtest)
- library(gt)
- library(survminer)
- library(survival)
- library(effectsize)
- library(scales)
- library(rcartocolor)
- library(brms)
- ## hand written functions ##
- source(path(here(), "R", 'mutate_cond.R'))
- source(path(here(), "R", "clean_behavioral_data.R"))
- source(path(here(), "R", "create_distance_df.R"))
- ## plotting helpers ##
- ggthemr("light")
- getPalette = colorRampPalette(brewer.pal(17, "Set1"))
- c25 <- c(
- "dodgerblue2", "#E31A1C", # red
- "green4",
- "#6A3D9A", # purple
- "#FF7F00", # orange
- "black", "gold1",
- "skyblue2", "#FB9A99", # lt pink
- "palegreen2",
- "#CAB2D6", # lt purple
- "#FDBF6F", # lt orange
- "gray70", "khaki2",
- "maroon", "orchid1", "deeppink1", "blue1", "steelblue4",
- "darkturquoise", "green1", "yellow4", "yellow3",
- "darkorange4", "brown"
- )
- # ## parallelization ##
- # nCores <- 2
- # registerDoParallel(nCores)
- ```
- ## Behavioral Plots (Figure 1)
- This script compares the behavior between iEEG and prolific participants and shows the normative behavior in the task.
- It requires:
- * `all_subs_complete_distance_df.csv` and `all_subs_complete_behavior_df.csv` which are outputs of `analysis/cleaning_ieeg_behavior/combine_ieeg_subs_behavior.Rmd`.
- * `cleaned_pilot_behavior.csv`, `cleaned_pilot_game_data.csv`, `cleaned_pilot_distance_data.csv`, and `cleaned_pilot_across_trial_data.csv` which are outputs of `analysis/behavior/normative_behavior.Rmd`.
- * `cleaned_pilot_behavior_newsample.csv`, `cleaned_pilot_game_data_newsample.csv`, `cleaned_pilot_distance_data_newsample.csv`, and `cleaned_pilot_across_trial_data_newsample.csv` which are outputs of `analysis/behavior/normative_behavior_newsample.Rmd`.
- It produces:
- * `figure1_dots_plot.png` in the `figures/behavior` folder
- * `figure1_last_away_plot.png` in the `figures/behavior` folder
- * `figure1_turnaround_reward_plot.png` in the `figures/behavior` folder
- * `figure1_experienced_emotions_plot.png` in the `figures/behavior` folder
- * `behave_turn_distance_reward_model.RData`in the `results` folder
- ```{r load-pilot-data}
- # load data #
- behave_data_pilot <- read_csv(path(here(), "munge", "prolific", "cleaned_pilot_behavior.csv"))
- game_data_clean_pilot <- read_csv(path(here(), "munge", "prolific", "cleaned_pilot_game_data.csv"))
- game_data_distance_pilot <- read_csv( path(here(), "munge", "prolific", "cleaned_pilot_distance_data.csv"))
- all_vars_df_pilot <- read_csv(path(here(), "munge", "prolific", "cleaned_pilot_across_trial_data.csv"))
- # add case #
- behave_data_pilot <- behave_data_pilot %>% mutate(case = "pilot")
- game_data_clean_pilot <- game_data_clean_pilot %>% mutate(case = "pilot")
- game_data_distance_pilot <- game_data_distance_pilot %>% mutate(case = "pilot")
- all_vars_df_pilot <- all_vars_df_pilot %>% mutate(case = "pilot")
- ```
- ```{r load-newsample-data}
- # load data #
- behave_data_ns <- read_csv(path(here(), "munge", "prolific", "cleaned_pilot_behavior_newsample.csv"))
- game_data_clean_ns <- read_csv(path(here(), "munge", "prolific", "cleaned_pilot_game_data_newsample.csv"))
- game_data_distance_ns <- read_csv( path(here(), "munge", "prolific", "cleaned_pilot_distance_data_newsample.csv"))
- all_vars_df_ns <- read_csv(path(here(), "munge", "prolific", "cleaned_pilot_across_trial_data_newsample.csv"))
- # add case
- clinical_ids <- behave_data_ns %>% filter(case == "clinical") %>% pull(subject)
- all_vars_df_ns <- all_vars_df_ns %>% mutate(case = if_else(subject %in% clinical_ids, "clinical", "nonclinical"))
- ```
- ```{r load-ieeg-data}
- # load ieeg data
- all_subs_g_dist <- read_csv(path(here(), "munge", "all_subs_complete_distance_df.csv"))
- ieeg_clean_df <- read_csv(path(here(), "munge", "all_subs_complete_behavior_df.csv"))
- # add case
- all_subs_g_dist <- all_subs_g_dist %>% mutate(case = "ieeg")
- ieeg_clean_df <- ieeg_clean_df %>% mutate(case = "ieeg")
- ```
- ```{r ieeg_all_vars_df}
- ieeg_all_vars_df <- ieeg_clean_df %>%
- group_by(subject) %>%
- filter(!is.na(Score)) %>%
- filter(Trial != "ITI") %>%
- # calculate number of deaths
- mutate(death_check = as.numeric(c(diff(Lives) < 0, FALSE))) %>%
- mutate(total_deaths = sum(death_check)) %>%
- mutate(max_trial = max(trial_numeric)) %>%
- mutate(trial_in_block = trial_numeric %% 20) %>%
- mutate(trial_in_block = if_else(trial_in_block == 0, 20, trial_in_block)) %>%
- # new minigame
- mutate(lives_check = as.numeric(c(diff(Lives) > 0, FALSE))) %>%
- mutate(total_games = sum(lives_check) + 1) %>%
- group_by(subject, Trial) %>%
- mutate(dots_eaten = max(Eaten)) %>%
- mutate(max_score = max(Score, na.rm = T)) %>%
- filter(trial_length < 5) %>%
- mutate(chase_trial = any(Chase)) %>%
- mutate(attack_trial = any(Attack)) %>%
- mutate(trial_died = sum(death_check)) %>%
- mutate(last_trial_in_minigame = sum(lives_check)) %>% # if lose all lives, mark as last trial
- mutate(last_trial_in_minigame = if_else(trial_in_block == 20, 1, last_trial_in_minigame)) %>% # 20 is always last trial
- group_by(subject) %>%
- mutate(average_score = mean(max_score)) %>%
- mutate(max_time = max(Time)) %>%
- select(subject, Trial, trial_numeric, trial_in_block, TrialType, trial_length,
- trial_died, last_trial_in_minigame, Lives, dots_eaten,
- chase_trial, attack_trial,
- max_trial, total_deaths, average_score, max_time) %>%
- distinct()
- # get trials in minigame
- round <- 1
- game <- 1
- ieeg_all_vars_df$trial_in_minigame <- 0
- ieeg_all_vars_df$minigame <- 0
- for(idx in 1:nrow(ieeg_all_vars_df)){
- # add to df
- ieeg_all_vars_df$trial_in_minigame[idx] <- round
- ieeg_all_vars_df$minigame[idx] <- game
- if(ieeg_all_vars_df$last_trial_in_minigame[idx] == 1){
- round <- 1
- game <- game + 1
- } else {
- round <- round + 1
- }
- if(ieeg_all_vars_df$subject[idx + 1] != ieeg_all_vars_df$subject[idx] & idx != nrow(ieeg_all_vars_df)) {
- round <- 1
- game <- 1
- }
- }
- # max trials in minigame and such
- ieeg_all_vars_df <- ieeg_all_vars_df %>%
- group_by(subject) %>%
- mutate(longest_minigame = max(trial_in_minigame)) %>%
- mutate(longest_minigame_under20 = max(trial_in_minigame[trial_in_minigame < 20])) %>%
- mutate(number_of_minigames = max(minigame)) %>%
- mutate(block = ceiling(trial_numeric/20)) %>%
- group_by(subject, block) %>%
- mutate(block_deaths = sum(trial_died)) %>%
- mutate(average_dots_per_block = mean(dots_eaten))
- ```
- ```{r merge-samples}
- behave_data <- bind_rows(behave_data_pilot, behave_data_ns %>% mutate(comp_7 = as.logical(comp_7)))
- game_data_clean <- bind_rows(game_data_clean_pilot, game_data_clean_ns)
- all_vars_df <- bind_rows(all_vars_df_pilot %>% select(-Trial),
- all_vars_df_ns %>% select(-Trial),
- ieeg_all_vars_df%>% select(-Trial))
- # distance df
- game_data_distance <- bind_rows(game_data_distance_pilot, game_data_distance_ns)
- good_cols <- colnames(all_subs_g_dist)[colnames(all_subs_g_dist) %in% colnames(game_data_distance)]
- game_data_distance <- bind_rows(game_data_distance %>% select(all_of(good_cols), -Trial),
- all_subs_g_dist %>% select(all_of(good_cols), -Trial))
- ```
- ## Dot Plot
- ```{r game-level-time, echo = F, fig.width=9, fig.height=4.5}
- ieeg_dot_df <- ieeg_all_vars_df %>%
- filter(block <= 12)
- prolific_dots_df <- bind_rows(all_vars_df_pilot %>% select(-Trial),
- all_vars_df_ns %>% select(-Trial)) %>%
- filter(block <= 12) %>%
- group_by(subject) %>%
- mutate(avg_sub_dots = mean(dots_eaten)) %>%
- distinct(subject, avg_sub_dots) %>%
- ungroup() %>%
- summarise(avg_dots = mean(avg_sub_dots), sd_dots = sd(avg_sub_dots))
- prolific_dots_df <- bind_rows(all_vars_df_pilot %>% select(-Trial),
- all_vars_df_ns %>% select(-Trial)) %>%
- filter(block <= 12) %>%
- group_by(subject) %>%
- mutate(avg_sub_dots = mean(dots_eaten)) %>%
- distinct(subject, avg_sub_dots) %>%
- ungroup() %>%
- summarise(avg_dots = mean(avg_sub_dots), sd_dots = sd(avg_sub_dots))
- dots_plot <- all_vars_df %>%
- filter(block <= 12) %>%
- ggplot(., aes(x = factor(block), y = average_dots_per_block, fill = 'f')) +
- geom_violin(alpha = .7, fill = "#FB6087") +
- geom_boxplot(notch = T, width =.2, fill = "#FB6087") +
- geom_point(data = ieeg_dot_df, aes(x = factor(block), y = average_dots_per_block), color = "#FB6087", fill = 'darkgrey', size = 2, shape = 23) +
- theme(panel.background = element_rect(fill = "white"),
- legend.position = "none",
- axis.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- axis.title = element_text(family = "Gill Sans", color = "#2D2327", size = 11),
- legend.title = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- legend.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- strip.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- plot.title = element_text(family = "Gill Sans", color = "#2D2327", size = 12, margin = margin(b = 5)),
- plot.subtitle = element_text(family = "Gill Sans", color = "#2D2327", size = 11, margin = margin(b = 0))) +
- labs(subtitle = "Participants balanced the rewards against the risks by\ncollecting most, but not all, of the reward on a given trial",
- x = "Block (each block consists of twenty trials)", y = "Average dots collected\n") +
- ggtitle("Average reward collected across blocks")
- ggsave(path(here(), "figures", "behavior", "figure1_dots_plot.png"),
- plot = dots_plot, width = 4.5, height = 4, dpi = 600)
- ```
- ## Turning Distance Plot
- ```{r last_away_min_dist, warning=F, fig.width=9, fig.height=4.5, echo = F}
- # last away #
- last_away_df_prolific <- game_data_distance %>%
- # filters #
- filter(case != "ieeg") %>%
- filter(number_of_runs > 0) %>%
- # distinct #
- select(trial_numeric, subject, last_away, case) %>%
- distinct() %>%
- filter(subject %in% sample(subject, 15))
- last_away_df_ieeg <- game_data_distance %>%
- # filters #
- filter(case == "ieeg") %>%
- filter(number_of_runs > 0) %>%
- # distinct #
- select(trial_numeric, subject, last_away, case) %>%
- distinct() %>%
- filter(subject %in% sample(subject, 4))
- last_away_df <- bind_rows(last_away_df_prolific, last_away_df_ieeg)
- last_away_plot <- last_away_df %>%
- mutate(ieeg = if_else(case == "ieeg", "iEEG", "Prolific")) %>%
- arrange(desc(case)) %>%
- mutate(subject = factor(subject)) %>%
- ggplot(., aes(x = subject, y = last_away)) +
- geom_jitter(alpha = .5, color = "grey", size = 1) +
- geom_boxplot(aes(fill = ieeg), notch = T, show.legend = F) +
- geom_vline(xintercept = 4.5, color = "darkgrey") +
- ylab("Distance to ghost at turnaround (game units, max = 180)") + xlab("\n") +
- theme(panel.background = element_rect(fill = "white"),
- legend.position = "top",
- axis.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- axis.title = element_text(family = "Gill Sans", color = "#2D2327", size = 11),
- legend.title = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- legend.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- strip.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- plot.title = element_text(family = "Gill Sans", color = "#2D2327", size = 12, margin = margin(b = 5)),
- plot.subtitle = element_text(family = "Gill Sans", color = "#2D2327", size = 11, margin = margin(b = 0)),
- axis.ticks.x = element_blank(),
- axis.text.x = element_blank()) +
- scale_fill_manual(values = c("#B9DFD5", "#61BBA5")) +
- ggtitle("Variability in risk tolerance", subtitle = "Random sample of 20 participants shows across- and within- subject\nvariability in the degree of risk incurred on a given trial")
- last_away_plot
- ggsave(path(here(), "figures", "behavior", "figure1_last_away_plot.png"),
- plot = last_away_plot, width = 4.5, height = 4, dpi = 600)
- ```
- ## Turning Distance vs Last Reward Plot
- ```{r df-reward-turning-distance}
- turn_reward_df <- game_data_distance %>%
- select(reward_groups, last_away, trial_numeric, subject, case) %>%
- filter(last_away != 0) %>%
- mutate(large_reward = if_else(reward_groups %in% c(3, 4), "Large", "Small")) %>%
- select(-reward_groups) %>%
- distinct() %>%
- group_by(large_reward, subject) %>%
- mutate(avg_last_away = mean(last_away)) %>%
- ungroup() %>%
- mutate(last_away = scale(last_away)) %>%
- mutate(avg_last_away = scale(avg_last_away)) %>%
- mutate(ieeg = if_else(case == "ieeg", "iEEG", "Online"))
- ```
- ```{r}
- # Set the number of cores for parallel processing
- options(mc.cores = parallel::detectCores(), backend = "cmdstanr")
- # set the priors #
- priors <- c(
- prior(normal(0, 5), class = "Intercept"), # Prior for the intercept
- prior(normal(0, 2), class = "b"), # Prior for fixed effects
- prior(exponential(1), class = "sd"), # Prior for random effects standard deviations
- prior(lkj(2), class = "cor") # Prior for random effects correlations
- )
- # Fit the model
- behave_model <- brm(
- formula = last_away ~ large_reward + (1 + large_reward | subject),
- data = turn_reward_df,
- prior = priors,
- family = gaussian(),
- iter = 4000,
- warmup = 1000,
- chains = 4,
- control = list(adapt_delta = 0.99),
- seed = 1234
- )
- summary(behave_model)
- save(behave_model, file = path(here(), "results", "behave_turn_distance_reward_model.RData"))
- ```
- ```{r plot-reward-turning-dist, fig.height = 7, fig.width = 9}
- turn_reward_plot <- turn_reward_df %>%
- select(avg_last_away, subject, large_reward, ieeg) %>%
- distinct() %>%
- ggplot(., aes(x = large_reward, y = avg_last_away)) +
- geom_hline(yintercept = 0, color = "#2D2327", linetype = "dashed", size = 1) +
- geom_point(aes(color = ieeg)) +
- geom_line(aes(alpha = ieeg, group = subject, color = ieeg, size = ieeg)) +
- geom_boxplot(aes(fill = large_reward), notch = T, show.legend = F, color = "#2D2327", alpha = .9) +
- ylim(-1.25, 1.25) +
- coord_flip() +
- theme(panel.background = element_rect(fill = "white"),
- legend.position = c(.85, 1),
- legend.direction = 'horizontal',
- axis.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- axis.title = element_text(family = "Gill Sans", color = "#2D2327", size = 12),
- legend.title = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- legend.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- strip.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- plot.title = element_text(family = "Gill Sans", color = "#2D2327", size = 12, margin = margin(b = 5)),
- plot.subtitle = element_text(family = "Gill Sans", color = "#2D2327", size = 11, margin = margin(b = 0))) +
- scale_fill_manual(values = c("#31ABED", "#A1D9F7")) +
- scale_color_manual(values = c("black", "darkgrey")) +
- scale_alpha_manual(values = c(1, 0.75), guide = F) +
- scale_size_manual(values = c(1, .25), guide = F) +
- labs(x = "Last Reward", y = "\nDistance to ghost at turnaround, scaled (a.u.)", color = "", title = "Turnaround Distance by Reward Groups", subtitle =
- "Participants were willing to get closer to the ghost when the\nlast reward was large")
- turn_reward_plot
- ggsave(path(here(), "figures", "behavior", "figure1_turnaround_reward_plot.png"),
- plot = turn_reward_plot, width = 5, height = 3.9, dpi = 600)
- ```
- ## Face Validity Plot
- ```{r plot-phenom}
- expected_options <- c("Stress", "Hope", "Bordeom", "Anxiety", "Excitement", "Disinterest", "Anger", "Suspense", "Frustration", "Other")
- reported_options <- behave_data %>%
- select(subject, starts_with("pilot_5")) %>%
- pivot_longer(cols = starts_with("pilot"), values_to = "experienced", names_to = "emotion") %>%
- pull(experienced) %>%
- unique()
- other_options <- reported_options[(!reported_options %in% expected_options) & !grepl(",", reported_options)]
- phenom_df <- behave_data %>%
- select(subject, starts_with("pilot_5")) %>%
- pivot_longer(cols = starts_with("pilot"), values_to = "experienced", names_to = "emotion") %>%
- group_by(subject) %>%
- mutate(stress = if_else(any(grepl("Stress", experienced)), 1, 0)) %>%
- mutate(hope = if_else(any(grepl("Hope", experienced)), 1, 0)) %>%
- mutate(boredom = if_else(any(grepl("Boredom", experienced)), 1, 0)) %>%
- mutate(anxiety = if_else(any(grepl("Anxiety", experienced)), 1, 0)) %>%
- mutate(excited = if_else(any(grepl("Excitement", experienced)), 1, 0)) %>%
- mutate(disinterest = if_else(any(grepl("Disinterest", experienced)), 1, 0)) %>%
- mutate(anger = if_else(any(grepl("Anger", experienced)), 1, 0)) %>%
- mutate(suspense = if_else(any(grepl("Suspense", experienced)), 1, 0)) %>%
- mutate(frustration = if_else(any(grepl("Frustration", experienced)), 1, 0)) %>%
- mutate(fear = if_else(any(grepl("fear", experienced, ignore.case = T)), 1, 0)) %>%
- mutate(nostalgia = if_else(any(grepl("nostalgia", experienced, ignore.case = T)), 1, 0)) %>%
- select(-emotion, -experienced) %>%
- distinct() %>%
- ungroup()
- experienced_plot <- phenom_df %>%
- pivot_longer(cols = -subject, values_to = "experienced", names_to = "emotion") %>%
- group_by(emotion) %>%
- summarize(count = sum(experienced)) %>%
- mutate(count = 100 * count / length(unique(behave_data$subject))) %>%
- ggplot(., aes(x = emotion, y = count, fill = emotion)) +
- geom_col(alpha = .8, color = "black") +
- xlab("") +
- ylab("Percent of Online Participants (n = 191)") +
- theme(panel.background = element_rect(fill = "white"),
- legend.position = "none",
- plot.margin = margin(t = 1, r = 1, b = 1, l = 1),
- axis.title = element_text(family = "Gill Sans", color = "#2D2327", size = 11),
- legend.title = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- legend.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- strip.text = element_text(family = "Gill Sans", color = "#2D2327", size = 10),
- plot.subtitle = element_text(family = "Gill Sans", color = "#2D2327", size = 11, margin = margin(b = 0)),
- plot.title = element_text(family = "Gill Sans", color = "#2D2327", size = 12, margin = margin(b = 5)),
- axis.text = element_text(family = "Gill Sans", color = '#2D2327', size = 11, angle = 45, vjust = 1, hjust = 1)) +
- ggtitle("Emotional experience during the task", subtitle = "Responses to: 'What did you experience when the ghost was\nclose to catching you?'") +
- scale_fill_carto_d(palette = "Prism")
- experienced_plot
- ggsave(path(here(), "figures", "behavior", "figure1_experienced_emotions_plot.png"),
- plot = experienced_plot, width = 4.5, height = 3.9, dpi = 600)
- ```
figure_1_behave_plots.Rmd at commit fff4ed4, no license · at the source
Overview
14 affiliations
- Helen Wills Neuroscience Institute, University of California, Berkeley, CA USA
- Departments of Psychology and Neuroscience, University of California, Berkeley, CA USA
- Department of Psychology, Harvard University, Cambridge, MA USA
- School of Psychological Sciences, Victoria University of Wellington, Wellington, New Zealand
- Department of Neurosciences, University of California, San Diego, CA USA
- Division of Neurology, Rady Children’s Hospital, San Diego, CA USA
- Department of Neurosurgery, Washington University School of Medicine, St. Louis, MO USA
- National Center for Adaptive Neurotechnologies, Albany, NY USA
- Department of Neurology, Loma Linda University, Loma Linda, CA USA
- Department of Neurology, University of California, Davis, CA USA
- Center for Mind and Brain, University of California, Davis, CA USA
- Departments of Medical Social Sciences, Pediatrics, and Psychology, Northwestern University, Evanston, IL USA
- Department of Neurological Surgery, University of California, Irvine, CA USA
- Haas School of Business, University of California, Berkeley, CA USA
Abstract
Choosing to approach or avoid is common in everyday life and excessive avoidance is a cardinal feature of anxiety disorders. We use intracranial EEG to define a prefrontal-limbic circuit supporting approach and avoidance. Presurgical epilepsy patients (n = 20) performed an approach-avoidance conflict decision-making task inspired by the arcade game Pac-Man, where patients trade off rewards against losses from ghost attack. During approach, theta power increases across a limbic circuit including the hippocampus, amygdala, orbitofrontal cortex and anterior cingulate cortex, which drops during avoidance. Theta connectivity between this circuit and lateral prefrontal cortex increases during approach and falls during avoidance. Network connectivity tracks how long patients approach, with enhanced synchronicity extending approach times. During imminent threat, the system switches to sustained increase in high-frequency activity in the lateral prefrontal cortex. The results provide evidence of a distributed prefrontal-limbic circuit, mediated by theta oscillations and high frequency activity, underlying approach-avoidance conflict in humans.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 10 matches between paragraphs and lines of code.
Zenodo 17727554
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
Zenodo 17727552
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
88 files
- R/
.ipynb_checkpoints/ , R, 80 linesamyg_theta-checkpoint.r - R/
.ipynb_checkpoints/ , R, 89 linescompute_lfp_correlation- checkpoint.R - R/
.ipynb_checkpoints/ , R, 53 linesmerge_theta_and_behavior al_data-checkpoint.R - R/
.ipynb_checkpoints/ , R, 1,308 linesrun_and_plot_lme_models- checkpoint.R - R/
bayesian_helpers.R , R, 410 lines - R/
ccf_functions.R , R, 250 lines - R/
clean_behavioral_data.R , R, 555 lines - R/
compile_ieeg_csv_files.R , R, 51 lines - R/
compute_lfp_correlation. , R, 89 linesR - R/
connectivity_prep_functi , R, 706 linesons.R - R/
create_distance_df.R , R, 113 lines - R/
create_timelock_event_ta , R, 331 linesbles.R - R/
merge_ieeg_and_behaviora , R, 89 linesl_data.R - R/
mutate_cond.R , R, 6 lines - R/
separate_mfg_sfg.R , R, 36 lines - analysis/
anatomical_plotting/ , R, 181 linescreate_mni_csv.Rmd - analysis/
attack/ , R, 248 linesfig5_left_vs_right_mfg.R md - analysis/
attack/ , R, 338 linesfig5_right_mfg_models_an d_figures.Rmd - analysis/
attack/ , R, 719 lineslimbic_theta_during_atta ck.Rmd - analysis/
attack/ , R, 490 linesmfg_hfa_attack.Rmd - analysis/
behavior/ , R, 312 linesbrms_behavioral_modeling .Rmd - analysis/
behavior/ , R, 497 linesfigure_1_behave_plots.Rm d - analysis/
behavior/ , R, 911 linesnormative_behavior.Rmd - analysis/
behavior/ , R, 503 linesnormative_behavior_new_s ample.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 368 linescleaning_behave_BHJ016.R md - analysis/
cleaning_ieeg_behavior/ , R, 347 linescleaning_behave_BHJ017.R md - analysis/
cleaning_ieeg_behavior/ , R, 339 linescleaning_behave_BHJ021.R md - analysis/
cleaning_ieeg_behavior/ , R, 389 linescleaning_behave_BHJ025.R md - analysis/
cleaning_ieeg_behavior/ , R, 361 linescleaning_behave_BHJ026.R md - analysis/
cleaning_ieeg_behavior/ , R, 658 linescleaning_behave_BHJ027.R md - analysis/
cleaning_ieeg_behavior/ , R, 770 linescleaning_behave_BHJ029.R md - analysis/
cleaning_ieeg_behavior/ , R, 360 linescleaning_behave_BHJ039.R md - analysis/
cleaning_ieeg_behavior/ , R, 358 linescleaning_behave_BHJ041.R md - analysis/
cleaning_ieeg_behavior/ , R, 348 linescleaning_behave_BHJ046.R md - analysis/
cleaning_ieeg_behavior/ , R, 323 linescleaning_behave_BHJ050.R md - analysis/
cleaning_ieeg_behavior/ , R, 348 linescleaning_behave_BHJ051.R md - analysis/
cleaning_ieeg_behavior/ , R, 323 linescleaning_behave_LL10.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 344 linescleaning_behave_LL12.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 378 linescleaning_behave_LL13.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 770 linescleaning_behave_LL14.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 366 linescleaning_behave_LL17.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 359 linescleaning_behave_LL19.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 310 linescleaning_behave_SLCH002. Rmd - analysis/
cleaning_ieeg_behavior/ , R, 348 linescleaning_behave_SLCH018. Rmd - analysis/
cleaning_ieeg_behavior/ , R, 350 linescleaning_behave_TEMPLATE .Rmd - analysis/
cleaning_ieeg_behavior/ , R, 808 linescombine_ieeg_subs_behavi or.Rmd - analysis/
clinical/ , R, 719 linesclinical_eda.Rmd - analysis/
coherence/ , R, 538 linescoherence_region_models. Rmd - analysis/
coherence/ , R, 567 linescoherence_region_models_ ppc_plv.Rmd - analysis/
coherence/ , R, 533 linescreate_sig_theta_coheren ce_csv.Rmd - analysis/
coherence/ , R, 151 linesfig3_example_coherence.R md - analysis/
coherence/ , R, 407 linesfig3_rising_falling_exam ple_sub.Rmd - analysis/
coherence/ , R, 422 linesfig3_simplified_differen tial_conn_plots.Rmd - analysis/
coherence/ , R, 325 linesfig_3_rising_falling_plo ts.Rmd - analysis/
coherence/ , R, 390 linesfig_3_rising_falling_reg ional_plots.Rmd - analysis/
coherence/ , R, 393 lineshigh_performance_cluster _batch_scripts/ compute_alternate_brms_a pproach_coherence_time.R - analysis/
coherence/ , R, 399 lineshigh_performance_cluster _batch_scripts/ compute_alternate_brms_a void_coherence_time.R - analysis/
coherence/ , R, 169 lineshigh_performance_cluster _batch_scripts/ compute_region_time_inte raction_approach_coheren ce_brms.R - analysis/
coherence/ , R, 168 lineshigh_performance_cluster _batch_scripts/ compute_region_time_inte raction_avoid_coherence_ brms.R - analysis/
coherence/ , R, 162 lineshigh_performance_cluster _batch_scripts/ hpc_falling_pli.R - analysis/
coherence/ , R, 162 lineshigh_performance_cluster _batch_scripts/ hpc_falling_ppc.R - analysis/
coherence/ , R, 164 lineshigh_performance_cluster _batch_scripts/ hpc_rising_falling_imcoh .R - analysis/
coherence/ , R, 158 lineshigh_performance_cluster _batch_scripts/ hpc_rising_falling_ppc.R - analysis/
coherence/ , R, 158 lineshigh_performance_cluster _batch_scripts/ hpc_rising_pli.R - analysis/
coherence/ , R, 211 linesrising_falling_threshold _model_comparison.Rmd - analysis/
coherence/ , R, 385 linessupp_fig5_differential_c onn_plots.Rmd - analysis/
coherence/ , R, 424 linessupp_fig6_differential_c onn_plots_ppc_plv.Rmd - analysis/
coherence/ , R, 549 linessupp_table_coherence_reg ion.Rmd - analysis/
coherence/ , R, 287 linessupp_table_rising_fallin g.Rmd - analysis/
cross_correlations/ , R, 453 linescompute_regional_ccfs_th eta.Rmd - analysis/
cross_correlations/ , R, 964 linestheta_ccf_stats.Rmd - analysis/
extract_model_summaries. , R, 370 linesRmd - analysis/
freq_power_analyses/ , R, 834 linesall_roi_theta_app_av.Rmd - analysis/
freq_power_analyses/ , R, 443 linescompile_ieeg_files_iti_l ogged_trialonset.Rmd - analysis/
freq_power_analyses/ , R, 502 linestheta_and_hfa_power_prof iles.Rmd - analysis/
granger/ , R, 1,911 linesgranger_lmes.Rmd - analysis/
granger/ , R, 138 linesgranger_plots.Rmd - analysis/
granger/ , R, 1,311 linesgranger_thresholds.Rmd - analysis/
turnaround_time_correlat , R, 206 linesions/ Figure4_combinedhfa_thet a_plots.Rmd - analysis/
turnaround_time_correlat , R, 454 linesions/ brms_all_roi_model.Rmd - analysis/
turnaround_time_correlat , R, 446 linesions/ brms_hfa_all_roi_model.R md - analysis/
turnaround_time_correlat , R, 367 linesions/ calculate_trial_correlat ions.Rmd - analysis/
turnaround_time_correlat , R, 283 linesions/ high_performance_cluster _batch_scripts/ compute_alternate_brms_h fa_models.R - analysis/
turnaround_time_correlat , R, 282 linesions/ high_performance_cluster _batch_scripts/ compute_alternate_brms_t heta_models.R - analysis/
turnaround_time_correlat , R, 366 linesions/ supp_table_turn_times.Rm d - analysis/
turnaround_time_correlat , R, 224 linesions/ turntime_threshold_model _comparison.Rmd - matlab_helpers/
washu_to_mni.m , MATLAB, 87 lines - README.md, Text, 102 lines
Zenodo 22255210
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
23 files
- code/
calculators/ , Python, 59 linesrecalibration.py - code/
figures/ , Python, 33 linesmake_figures.py - code/
gates/ , Python, 273 linesrrhm_gates_k3_k6_k8_k9.p y - code/
opendata/ , Python, 54 linesc23_hra1_artifact_contro ls.py - code/
opendata/ , Python, 54 linesc23_hra1_timing.py - code/
opendata/ , Python, 55 linesc23_lane_dissociation.py - code/
opendata/ , Python, 89 linesc25_lane_mtmm.py - code/
opendata/ , Python, 73 linesc26_stress_transport.py - code/
opendata/ , Python, 158 linesc27_predictability_clamp .py - code/
opendata/ , Python, 93 linesc28_rankstab_mtmm.py - code/
opendata/ , Python, 99 linesc28_sensitivity.py - code/
opendata/ , Python, 130 linesc29_audit_phi_tail.py - code/
opendata/ , Python, 134 linesc29_model_comparison.py - code/
opendata/ , Python, 134 linesc30_external_transport.p y - code/
opendata/ , Python, 136 linesc31_2w_rofl_fourcell.py - code/
opendata/ , Python, 221 linesc31_degradation_calibrat ion.py - code/
sims/ , Python, 64 linescoupling_extension_sims. py - code/
tools/ , Python, 144 linesverify_citations.py - targets/
staveland_2026/ , Python, 48 linescode/ 01_reproduce_staveland.p y - targets/
staveland_2026/ , Python, 37 linescode/ 02_recoverability_margin .py - targets/
staveland_2026/ , Python, 89 linescode/ 03_reproduce_fig1_turnar ound_reward.py - LICENSE, License, 24 lines
- README.md, Text, 150 lines
morrocwi/rrhm-open-lab
16b5e09acf62e8e39adb1d5d309be1065d1aef2a, 2 September 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
23 files
- code/
calculators/ , Python, 59 linesrecalibration.py - code/
figures/ , Python, 33 linesmake_figures.py - code/
gates/ , Python, 273 linesrrhm_gates_k3_k6_k8_k9.p y - code/
opendata/ , Python, 54 linesc23_hra1_artifact_contro ls.py - code/
opendata/ , Python, 54 linesc23_hra1_timing.py - code/
opendata/ , Python, 55 linesc23_lane_dissociation.py - code/
opendata/ , Python, 89 linesc25_lane_mtmm.py - code/
opendata/ , Python, 73 linesc26_stress_transport.py - code/
opendata/ , Python, 158 linesc27_predictability_clamp .py - code/
opendata/ , Python, 93 linesc28_rankstab_mtmm.py - code/
opendata/ , Python, 99 linesc28_sensitivity.py - code/
opendata/ , Python, 130 linesc29_audit_phi_tail.py - code/
opendata/ , Python, 134 linesc29_model_comparison.py - code/
opendata/ , Python, 134 linesc30_external_transport.p y - code/
opendata/ , Python, 136 linesc31_2w_rofl_fourcell.py - code/
opendata/ , Python, 221 linesc31_degradation_calibrat ion.py - code/
sims/ , Python, 64 linescoupling_extension_sims. py - code/
tools/ , Python, 144 linesverify_citations.py - targets/
staveland_2026/ , Python, 48 linescode/ 01_reproduce_staveland.p y - targets/
staveland_2026/ , Python, 37 linescode/ 02_recoverability_margin .py - targets/
staveland_2026/ , Python, 89 linescode/ 03_reproduce_fig1_turnar ound_reward.py - LICENSE, License, 24 lines
- README.md, Text, 150 lines
Zenodo 22255211
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
23 files
- code/
calculators/ , Python, 59 linesrecalibration.py - code/
figures/ , Python, 33 linesmake_figures.py - code/
gates/ , Python, 273 linesrrhm_gates_k3_k6_k8_k9.p y - code/
opendata/ , Python, 54 linesc23_hra1_artifact_contro ls.py - code/
opendata/ , Python, 54 linesc23_hra1_timing.py - code/
opendata/ , Python, 55 linesc23_lane_dissociation.py - code/
opendata/ , Python, 89 linesc25_lane_mtmm.py - code/
opendata/ , Python, 73 linesc26_stress_transport.py - code/
opendata/ , Python, 158 linesc27_predictability_clamp .py - code/
opendata/ , Python, 93 linesc28_rankstab_mtmm.py - code/
opendata/ , Python, 99 linesc28_sensitivity.py - code/
opendata/ , Python, 130 linesc29_audit_phi_tail.py - code/
opendata/ , Python, 134 linesc29_model_comparison.py - code/
opendata/ , Python, 134 linesc30_external_transport.p y - code/
opendata/ , Python, 136 linesc31_2w_rofl_fourcell.py - code/
opendata/ , Python, 221 linesc31_degradation_calibrat ion.py - code/
sims/ , Python, 64 linescoupling_extension_sims. py - code/
tools/ , Python, 144 linesverify_citations.py - targets/
staveland_2026/ , Python, 48 linescode/ 01_reproduce_staveland.p y - targets/
staveland_2026/ , Python, 37 linescode/ 02_recoverability_margin .py - targets/
staveland_2026/ , Python, 89 linescode/ 03_reproduce_fig1_turnar ound_reward.py - LICENSE, License, 24 lines
- README.md, Text, 150 lines
bstavel/staveland_et_al_pacman_statistics_and_behavior
fff4ed4fa6739d03b0ce04b12ad81da44dc4bbd4, 23 September 2025Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
88 files
- R/
.ipynb_checkpoints/ , R, 80 linesamyg_theta-checkpoint.r - R/
.ipynb_checkpoints/ , R, 89 linescompute_lfp_correlation- checkpoint.R - R/
.ipynb_checkpoints/ , R, 53 linesmerge_theta_and_behavior al_data-checkpoint.R - R/
.ipynb_checkpoints/ , R, 1,308 linesrun_and_plot_lme_models- checkpoint.R - R/
bayesian_helpers.R , R, 410 lines - R/
ccf_functions.R , R, 250 lines - R/
clean_behavioral_data.R , R, 555 lines, 1 match - R/
compile_ieeg_csv_files.R , R, 51 lines - R/
compute_lfp_correlation. , R, 89 linesR - R/
connectivity_prep_functi , R, 706 linesons.R - R/
create_distance_df.R , R, 113 lines - R/
create_timelock_event_ta , R, 331 linesbles.R - R/
merge_ieeg_and_behaviora , R, 89 linesl_data.R - R/
mutate_cond.R , R, 6 lines - R/
separate_mfg_sfg.R , R, 36 lines - analysis/
anatomical_plotting/ , R, 181 linescreate_mni_csv.Rmd - analysis/
attack/ , R, 248 linesfig5_left_vs_right_mfg.R md - analysis/
attack/ , R, 338 lines, 2 matchesfig5_right_mfg_models_an d_figures.Rmd - analysis/
attack/ , R, 719 lineslimbic_theta_during_atta ck.Rmd - analysis/
attack/ , R, 490 linesmfg_hfa_attack.Rmd - analysis/
behavior/ , R, 312 lines, 1 matchbrms_behavioral_modeling .Rmd - analysis/
behavior/ , R, 497 lines, 2 matchesfigure_1_behave_plots.Rm d - analysis/
behavior/ , R, 911 linesnormative_behavior.Rmd - analysis/
behavior/ , R, 503 linesnormative_behavior_new_s ample.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 368 linescleaning_behave_BHJ016.R md - analysis/
cleaning_ieeg_behavior/ , R, 347 linescleaning_behave_BHJ017.R md - analysis/
cleaning_ieeg_behavior/ , R, 339 linescleaning_behave_BHJ021.R md - analysis/
cleaning_ieeg_behavior/ , R, 389 linescleaning_behave_BHJ025.R md - analysis/
cleaning_ieeg_behavior/ , R, 361 linescleaning_behave_BHJ026.R md - analysis/
cleaning_ieeg_behavior/ , R, 658 linescleaning_behave_BHJ027.R md - analysis/
cleaning_ieeg_behavior/ , R, 770 linescleaning_behave_BHJ029.R md - analysis/
cleaning_ieeg_behavior/ , R, 360 linescleaning_behave_BHJ039.R md - analysis/
cleaning_ieeg_behavior/ , R, 358 linescleaning_behave_BHJ041.R md - analysis/
cleaning_ieeg_behavior/ , R, 348 linescleaning_behave_BHJ046.R md - analysis/
cleaning_ieeg_behavior/ , R, 323 linescleaning_behave_BHJ050.R md - analysis/
cleaning_ieeg_behavior/ , R, 348 linescleaning_behave_BHJ051.R md - analysis/
cleaning_ieeg_behavior/ , R, 323 linescleaning_behave_LL10.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 344 linescleaning_behave_LL12.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 378 linescleaning_behave_LL13.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 770 linescleaning_behave_LL14.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 366 linescleaning_behave_LL17.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 359 linescleaning_behave_LL19.Rmd - analysis/
cleaning_ieeg_behavior/ , R, 310 linescleaning_behave_SLCH002. Rmd - analysis/
cleaning_ieeg_behavior/ , R, 348 linescleaning_behave_SLCH018. Rmd - analysis/
cleaning_ieeg_behavior/ , R, 350 linescleaning_behave_TEMPLATE .Rmd - analysis/
cleaning_ieeg_behavior/ , R, 808 linescombine_ieeg_subs_behavi or.Rmd - analysis/
clinical/ , R, 719 linesclinical_eda.Rmd - analysis/
coherence/ , R, 538 linescoherence_region_models. Rmd - analysis/
coherence/ , R, 567 linescoherence_region_models_ ppc_plv.Rmd - analysis/
coherence/ , R, 533 lines, 1 matchcreate_sig_theta_coheren ce_csv.Rmd - analysis/
coherence/ , R, 151 linesfig3_example_coherence.R md - analysis/
coherence/ , R, 407 linesfig3_rising_falling_exam ple_sub.Rmd - analysis/
coherence/ , R, 422 linesfig3_simplified_differen tial_conn_plots.Rmd - analysis/
coherence/ , R, 325 linesfig_3_rising_falling_plo ts.Rmd - analysis/
coherence/ , R, 390 linesfig_3_rising_falling_reg ional_plots.Rmd - analysis/
coherence/ , R, 393 lineshigh_performance_cluster _batch_scripts/ compute_alternate_brms_a pproach_coherence_time.R - analysis/
coherence/ , R, 399 lineshigh_performance_cluster _batch_scripts/ compute_alternate_brms_a void_coherence_time.R - analysis/
coherence/ , R, 169 lineshigh_performance_cluster _batch_scripts/ compute_region_time_inte raction_approach_coheren ce_brms.R - analysis/
coherence/ , R, 168 lineshigh_performance_cluster _batch_scripts/ compute_region_time_inte raction_avoid_coherence_ brms.R - analysis/
coherence/ , R, 162 lineshigh_performance_cluster _batch_scripts/ hpc_falling_pli.R - analysis/
coherence/ , R, 162 lineshigh_performance_cluster _batch_scripts/ hpc_falling_ppc.R - analysis/
coherence/ , R, 164 lineshigh_performance_cluster _batch_scripts/ hpc_rising_falling_imcoh .R - analysis/
coherence/ , R, 158 lineshigh_performance_cluster _batch_scripts/ hpc_rising_falling_ppc.R - analysis/
coherence/ , R, 158 lineshigh_performance_cluster _batch_scripts/ hpc_rising_pli.R - analysis/
coherence/ , R, 211 linesrising_falling_threshold _model_comparison.Rmd - analysis/
coherence/ , R, 385 linessupp_fig5_differential_c onn_plots.Rmd - analysis/
coherence/ , R, 424 linessupp_fig6_differential_c onn_plots_ppc_plv.Rmd - analysis/
coherence/ , R, 549 linessupp_table_coherence_reg ion.Rmd - analysis/
coherence/ , R, 287 linessupp_table_rising_fallin g.Rmd - analysis/
cross_correlations/ , R, 453 linescompute_regional_ccfs_th eta.Rmd - analysis/
cross_correlations/ , R, 964 linestheta_ccf_stats.Rmd - analysis/
extract_model_summaries. , R, 370 linesRmd - analysis/
freq_power_analyses/ , R, 834 lines, 1 matchall_roi_theta_app_av.Rmd - analysis/
freq_power_analyses/ , R, 443 linescompile_ieeg_files_iti_l ogged_trialonset.Rmd - analysis/
freq_power_analyses/ , R, 502 linestheta_and_hfa_power_prof iles.Rmd - analysis/
granger/ , R, 1,911 linesgranger_lmes.Rmd - analysis/
granger/ , R, 138 linesgranger_plots.Rmd - analysis/
granger/ , R, 1,311 linesgranger_thresholds.Rmd - analysis/
turnaround_time_correlat , R, 206 linesions/ Figure4_combinedhfa_thet a_plots.Rmd - analysis/
turnaround_time_correlat , R, 454 linesions/ brms_all_roi_model.Rmd - analysis/
turnaround_time_correlat , R, 446 linesions/ brms_hfa_all_roi_model.R md - analysis/
turnaround_time_correlat , R, 367 linesions/ calculate_trial_correlat ions.Rmd - analysis/
turnaround_time_correlat , R, 283 linesions/ high_performance_cluster _batch_scripts/ compute_alternate_brms_h fa_models.R - analysis/
turnaround_time_correlat , R, 282 linesions/ high_performance_cluster _batch_scripts/ compute_alternate_brms_t heta_models.R - analysis/
turnaround_time_correlat , R, 366 linesions/ supp_table_turn_times.Rm d - analysis/
turnaround_time_correlat , R, 224 lines, 1 matchions/ turntime_threshold_model _comparison.Rmd - matlab_helpers/
washu_to_mni.m , MATLAB, 87 lines - README.md, Text, 102 lines
bstavel/staveland_et_al_pacman_neural_analyses
771193ae616f6126aa58d4592dfca4fac893115f, 23 September 2025Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
10 files
- across_subject_analyses/
scripts/ , Jupyter, 233 linesanatomy/ plot_all_elecs_on_brain. ipynb - across_subject_analyses/
scripts/ , Jupyter, 214 linesanatomy/ plot_all_elecs_on_brain_ by_subject.ipynb - across_subject_analyses/
scripts/ , Jupyter, 142 linesanatomy/ plot_all_elecs_on_brain_ mfg_group.ipynb - across_subject_analyses/
scripts/ , Python, 995 lines, 1 matchaverage_tfr_functions.py - across_subject_analyses/
scripts/ , Shell, 20 linesbatch_tfr_notebooks.sh - across_subject_analyses/
scripts/ , Jupyter, 151 linescount_subject_roi.ipynb - across_subject_analyses/
scripts/ , Python, 128 linesfirst_move_avg_tfrs.py - across_subject_analyses/
scripts/ , Python, 62 linesghost_attack_tfrs.py - across_subject_analyses/
scripts/ , Jupyter, 221 lineslast_away_allsubs.ipynb - repository limit reached (2,000 files or 30 MB): the rest is at the source (261 files)
- README.md, Text, 86 lines
Code availability
Original code is deposited on Zenodo and for public download. Original code is comprised of two GitHub repos: Staveland_et_al_Pacman_N
Reproduced under the paper's license (CC BY), from the paper cited above.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 7 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 246 scripts, each with its path and the digest of its content;
- 10 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- zenodo:17726565, at Zenodo; found in “Data availability”
Data availability
The cleaned, minimally-processed, patient-level data generated in this study have been deposited in the Zenodo database under accession (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 30 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 13 authors, 5 keywords, 16 MeSH terms, 3 funders, 74 references.
Cite
This paper
Staveland, B. R., Oberschulte, J., Berger, B., Minarik, T., Kim-McManus, O., Willie, J. T., Brunner, P., Dastjerdi, M., Lin, J. J., Johnson, E. L., Paff, M., Hsu, M., & Knight, R. T. (2026). Cortical-limbic circuit dynamics of approach-avoidance conflict in humans. Nature communications, 17(1), 3867. https://
BibTeX
@article{staveland2026co
author = {Staveland, Brooke R and Oberschulte, Julia and Berger, Barbara and Minarik, Tamas and Kim-McManus, Olivia and Willie, Jon T and Brunner, Peter and Dastjerdi, Mohammad and Lin, Jack J and Johnson, Elizabeth L and Paff, Michelle and Hsu, Ming and Knight, Robert T},
title = {{Cortical-limbic circuit dynamics of approach-avoidance conflict in humans}},
journal = {Nature communications},
year = {2026},
month = mar,
volume = {17},
number = {1},
pages = {3867},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/
url = {https://
pmid = {41820348},
pmcid = {PMC13125241}
}
RIS
TY - JOUR
AU - Staveland, Brooke R
AU - Oberschulte, Julia
AU - Berger, Barbara
AU - Minarik, Tamas
AU - Kim-McManus, Olivia
AU - Willie, Jon T
AU - Brunner, Peter
AU - Dastjerdi, Mohammad
AU - Lin, Jack J
AU - Johnson, Elizabeth L
AU - Paff, Michelle
AU - Hsu, Ming
AU - Knight, Robert T
TI - Cortical-limbic circuit dynamics of approach-avoidance conflict in humans
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/
VL - 17
IS - 1
SP - 3867
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Cortical-limbic circuit dynamics of approach-avoidance conflict in humans",
"container-title": "Nature communications",
"author": [
{
"family": "Staveland",
"given": "Brooke R"
},
{
"family": "Oberschulte",
"given": "Julia"
},
{
"family": "Berger",
"given": "Barbara"
},
{
"family": "Minarik",
"given": "Tamas"
},
{
"family": "Kim-McManus",
"given": "Olivia"
},
{
"family": "Willie",
"given": "Jon T"
},
{
"family": "Brunner",
"given": "Peter"
},
{
"family": "Dastjerdi",
"given": "Mohammad"
},
{
"family": "Lin",
"given": "Jack J"
},
{
"family": "Johnson",
"given": "Elizabeth L"
},
{
"family": "Paff",
"given": "Michelle"
},
{
"family": "Hsu",
"given": "Ming"
},
{
"family": "Knight",
"given": "Robert T"
}
],
"container-title-short":
"volume": "17",
"issue": "1",
"page": "3867",
"DOI": "10.1038/
"PMID": "41820348",
"PMCID": "PMC13125241",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
12
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1093/cercor/bhag113 [code]
- Long-term reliability and stability of parameterized resting state EEG: evidence from a five-year follow-up.Journal: Cerebral cortex (New York, N.Y. : 1991)In common: NeuroDSP, specparam (formerly FOOOF), easystats, 11 other tools, EEG, 1 reference
- [2] doi:10.1093/nc/niag029 [code]
- A data-driven approach to identifying and evaluating connectivity-based neural correlates of conscious visual perception.Journal: Neuroscience of consciousnessIn common: easystats, broom, MNE-Python, 11 other tools, 1 reference
- [3] doi:10.1038/s42003-026-10270-4 [code]
- Direct electrical stimulation of the human amygdala enhances recognition memory for objects but not scenes.Journal: Communications biologyIn common: MNE-Python, seaborn, pandas, 3 other tools, 1 reference, 2 authors
- [4] doi:10.1162/imag.a.1245 [code]
- Towards precision EEG connectomics: Evaluating the benefits of dense sampling.Journal: Imaging neuroscience (Cambridge, Mass.)In common: MNE-Python, lmerTest, Nilearn, 10 other tools, EEG, 2 references
- [5] doi:10.1038/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: brms, survival, caret, 10 other tools
- [6] doi:10.1371/journal.pbio.3003666 [code]
- Emotion regulation success involves systematic gradient-based reconfigurations of large-scale activation patterns in the human brain.Journal: PLoS biologyIn common: easystats, lmerTest, Nilearn, 10 other tools, 1 reference
- [7] doi:10.1162/imag.a.1321 [code]
- Phase similarity between similar objects indicates representational merging across retrieval training but not sleep.Journal: Imaging neuroscience (Cambridge, Mass.)In common: easystats, broom, MNE-Python, 10 other tools, EEG
- [8] doi:10.1016/j.nicl.2026.104012 [code]
- Structural-functional multilayer brain network properties and outcome of combined repetitive transcranial magnetic stimulation and psychotherapy for obsessive-compulsive disorder.Journal: NeuroImage. ClinicalIn common: specparam (formerly FOOOF), survival, lmerTest, 10 other tools
- [9] doi:10.34133/csbj.0042 [code]
- Using Steady-State Visual Evoked Potentials to Characterize Wide-Ranging Retinopathy Linked to &
lt;i& gt;CRB1& lt;/ i& gt;: Implications for Clinical Trials. Journal: Computational and structural biotechnology journalIn common: easystats, MNE-Python, lmerTest, 9 other tools, EEG, 1 reference - [10] doi:10.1038/s41597-026-07350-9 [code]
- An open multi-center MEG-EEG dataset for studying conscious visual perception.Journal: Scientific dataIn common: easystats, MNE-Python, lmerTest, 10 other tools, EEG
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 7 repositories of the authors' code, each at its verified commit and with its license, 246 scripts, and 10 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:3d50fc6b52078d98…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
