Investigating the effects of continuous theta-burst stimulation over the posterior parietal cortex on holistic processing of composite faces: evidence from cognitive modeling.
The 2 matches
- [1] § Materials and methods › Statistical analyses ↔ Code/Behavioral Analysis Scripts/CompFace_Behavioral-Report.ipynb, lines 10 to 48 · score 0.58 · interquartile range, low accuracy, corrupted, IQR, Q1, Q3 · Report a mismatch
- [2] § Materials and methods › Statistical analyses ↔ Code/Behavioral Analysis Scripts/Navon_Behavioral-Report.ipynb, lines 6 to 46 · score 0.57 · interquartile range, low accuracy, IQR, Q1, Q3, quartiles · Report a mismatch
Paper
Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Jupyter notebook · 670 lines · 16 KB · no license · 1 match
- # %%
- # library(ggpubr)
- library(ggplot2)
- library(tidyverse)
- library (rstatix)
- # %%
- # %% [markdown]
- # # Demography
- # %% [markdown]
- # 3 Stimulation\
- # 2 Alignment\
- # 2 Congruency\
- # 36 Subject\
- # Each contains 40 trials
- # %% [markdown]
- # subject 9 and 10 are excluded because of low accuracy
- # %% [markdown]
- # subject 4 is excluded due to corrupted data in LPPC
- # %% [markdown]
- # Some Blocks were excluded because the ACC was below chance (chance level was determined by binomial test with p-value of 0.05).\
- # This resulted in exclusion of 1.77 percent of data.
- # %% [markdown]
- # All remaining RTs are above 240ms
- # %% [markdown]
- # We use median RT so there is no need to exclude outliers in RT.
- # %% [markdown]
- # All statistical analyses were on the data with excluded outliers based on:\
- # Values above Q3 + 1.5xIQR or below Q1 - 1.5xIQR are considered as outliers. \
- # Q1 and Q3 are the first and third quartile, respectively. IQR is the interquartile range (IQR = Q3 - Q1).
- # %%
- # %% [markdown]
- # # ACC
- # %%
- df <- read.csv("C:/Users/Hasan/Desktop/Haniye/Face_full_data.csv")
- # %%
- dat <- df %>% group_by(subject, stim, Alignment, Congruency) %>% summarise(ACC=mean(ACC)) %>% ungroup()
- # %%
- dat$stim <- factor(dat$stim, c('LPPC', 'CZ', 'RPPC'))
- # %%
- out <- dat %>%
- group_by(stim, Alignment, Congruency) %>%
- identify_outliers(ACC)
- # %%
- dat1 <- dat
- # %%
- dat <- dat %>% anti_join(out, by=c('subject'))
- # %%
- # %%
- anova_test (data = dat, dv = ACC, wid= subject, within = c(stim, Alignment, Congruency))$ANOVA
- # %% [markdown]
- # now we further analyse significancies above.
- # %% [markdown]
- # ## Congruency
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=Congruency, y=ACC)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(stim), rows = vars(Alignment))
- # %%
- ?geom_point
- # %%
- options(repr.plot.width = 10, repr.plot.height = 3)
- png(file="C:/Users/Hasan/Desktop/Haniye/final report/images/f_ACC.png", width=2000, height=600, res=200)
- ggplot(data=dat, mapping=aes(x=Alignment, y=ACC, fill = Congruency)) +
- geom_violin(trim = TRUE, draw_quantiles=c(.5), bounds=c(0,1)) +
- # geom_jitter(aes(shape = Congruency)) +
- # geom_boxplot(add='jitter') +
- # geom_point(position = position_jitterdodge(dodge.width = 1)) +
- facet_grid(cols = vars(stim)) +
- theme_bw()
- dev.off()
- # %%
- d <- dat %>% group_by(Alignment,stim,Congruency) %>% summarise(mean=mean(ACC), sd=sd(ACC)/sqrt(n())) %>% ungroup()
- d
- # %%
- options(repr.plot.width = 10, repr.plot.height = 3)
- ggplot(data=dat, mapping=aes(x=Alignment, y=ACC, fill = Congruency)) +
- geom_violin(trim = TRUE, bounds=c(0,1), alpha=.3, width=.6, scale='width', position=position_dodge(.8), aes(colour=Congruency), linewidth=.1) +
- geom_quasirandom(dodge.width=.8, aes(colour=Congruency), width=.15, shape=1, stroke=1, size=1) +
- geom_boxplot(alpha=.6, data=d,aes(y=c(),ymin=mean-sd*1.96, lower=mean-sd*1.96, middle=mean, upper=mean+sd*1.96, ymax=mean+sd*1.96),
- stat = "identity", position=position_dodge(.8), width=.6) +
- geom_errorbar(data=d,aes(group=Congruency, fill=c(), y=c(), ymin=mean-sd, ymax=mean+sd), position=position_dodge(.8), width=.1, linewidth=1) +
- facet_grid(cols = vars(stim)) +
- theme_bw()
- # %%
- # %%
- dat %>% group_by(Congruency) %>% summarise(mean(ACC))
- # %%
- # %% [markdown]
- # ## Alignment:Congruency
- # %%
- dat %>% group_by(Alignment, Congruency) %>% summarise(mean(ACC))
- # %%
- dat %>% group_by(Alignment) %>% summarise(delta=mean(ACC[Congruency=='Cong'])-mean(ACC[Congruency=='inCong']))
- # %%
- anova_test(data=filter(dat, Alignment=='align'), dv = ACC, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %%
- anova_test(data=filter(dat, Alignment=='misalign'), dv = ACC, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %% [markdown]
- # Congruency effect is higher in align than misalign (This is also evident in the plot above).
- # %%
- # %%
- # %% [markdown]
- # ## stim
- # %% [markdown]
- # **the following analysis are not neccecary to report in the article as we did not see any main or interaction effect for stim.**
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=stim, y=ACC)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(Congruency), rows = vars(Alignment))
- # %%
- t <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% t_test(ACC ~ stim, paired=TRUE)
- e <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% cohens_d(ACC ~ stim, paired=TRUE)
- t['effsize'] <- e['effsize']
- # %%
- t
- # %%
- # %% [markdown]
- # The results of ANOVA on seperate stim condition:
- # %%
- dat %>%
- group_by(stim) %>% anova_test(dv = ACC, wid= subject, within = c(Congruency, Alignment))
- # %%
- # %%
- dat %>% group_by(stim, Congruency) %>% summarise(mean(ACC))
- # %%
- dat %>% group_by(stim, Alignment) %>% summarise(mean(ACC))
- # %%
- # %% [markdown]
- # # A'
- # %% [markdown]
- # A' is a measure of accuracy which combines the results for two levels of stimulus beiong same or different.\
- # The results are expected to have no significant difference from the analysis of ACC above. so you may only report the results for one of them.
- # %%
- df <- read.csv("C:/Users/Hasan/Desktop/Haniye/Face_full_data.csv")
- # %%
- dat <- df %>%
- group_by(subject, stim, Alignment, Congruency) %>%
- summarize(H = mean(ACC[Condition==unique(Condition)[1]]), F=1-mean(ACC[Condition==unique(Condition)[2]]),
- A=.5+sign(H-F)*((H-F)**2+abs(H-F))/4/(max(H,F)-H*F), n = n()) %>% ungroup()
- # %%
- dat$stim <- factor(dat$stim, c('LPPC', 'CZ', 'RPPC'))
- # %%
- out <- dat %>%
- group_by(stim, Alignment, Congruency) %>%
- identify_outliers(A)
- # %%
- dat1 <- dat
- # %%
- dat <- dat %>% anti_join(out, by=c('subject'))
- # %%
- # %%
- anova_test (data = dat, dv = A, wid= subject, within = c(stim, Alignment, Congruency))$ANOVA
- # %% [markdown]
- # now we further analyse significancies above.
- # %% [markdown]
- # ## Congruency
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=Congruency, y=A)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(stim), rows = vars(Alignment))
- # %%
- dat %>% group_by(Congruency) %>% summarise(mean(A))
- # %%
- # %% [markdown]
- # ## Alignment:Congruency
- # %%
- dat %>% group_by(Alignment, Congruency) %>% summarise(mean(A))
- # %%
- dat %>% group_by(Alignment) %>% summarise(delta=mean(A[Congruency=='Cong'])-mean(A[Congruency=='inCong']))
- # %%
- anova_test(data=filter(dat, Alignment=='align'), dv = A, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %%
- anova_test(data=filter(dat, Alignment=='misalign'), dv = A, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %% [markdown]
- # Congruency effect is higher in align than misalign (This is also evident in the plot above).
- # %% [markdown]
- # ### Holistic Processing
- # %%
- hol <- dat1 %>% group_by(subject, stim) %>% summarise(H = A[Alignment=='align'&Congruency=='Cong']-
- A[Alignment=='align'&Congruency=='inCong']-
- A[Alignment=='misalign'&Congruency=='Cong']+
- A[Alignment=='misalign'&Congruency=='inCong']) %>% ungroup()
- # %%
- h_out <- hol %>%
- group_by(stim) %>%
- identify_outliers(H)
- # %%
- hol <- anti_join(hol, h_out, by=c('subject'))
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=hol, mapping=aes(x=stim, y=H)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5)
- # %%
- anova_test(data=hol, dv = H, wid= subject, within = c(stim))$ANOVA
- # %%
- t <- hol %>% t_test(H ~ stim, paired=TRUE)
- e <- hol %>% cohens_d(H ~ stim, paired=TRUE)
- t['effsize'] <- e['effsize']
- # %%
- t
- # %%
- # %% [markdown]
- # ## stim
- # %% [markdown]
- # **the following analysis are not neccecary to report in the article as we did not see any main or interaction effect for stim.**
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=stim, y=A)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(Congruency), rows = vars(Alignment))
- # %%
- t <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% t_test(A ~ stim, paired=TRUE)
- e <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% cohens_d(A ~ stim, paired=TRUE)
- t['effsize'] <- e['effsize']
- # %%
- t
- # %%
- # %% [markdown]
- # The results of ANOVA on seperate stim condition:
- # %%
- dat %>%
- group_by(stim) %>% anova_test(dv = A, wid= subject, within = c(Congruency, Alignment))
- # %%
- # %%
- dat %>% group_by(stim, Congruency) %>% summarise(mean(A))
- # %%
- dat %>% group_by(stim, Alignment) %>% summarise(mean(A))
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %% [markdown]
- # # median RT
- # %%
- df <- read.csv("C:/Users/Hasan/Desktop/Haniye/Face_full_data.csv")
- # %%
- dat <- df %>% group_by(subject, stim, Alignment, Congruency) %>% summarise(RT=median(RT)) %>% ungroup()
- # %%
- dat$stim <- factor(dat$stim, c('LPPC', 'CZ', 'RPPC'))
- # %%
- out <- dat %>%
- group_by(stim, Alignment, Congruency) %>%
- identify_outliers(RT)
- # %%
- dat1 <- dat
- # %%
- dat <- dat %>% anti_join(out, by=c('subject'))
- # %%
- # %%
- anova_test(data = dat, dv = RT, wid= subject, within = c(stim, Alignment, Congruency))$ANOVA
- # %% [markdown]
- # now we further analyse significancies above.
- # %% [markdown]
- # ## Congruency
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=Congruency, y=RT)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(stim), rows = vars(Alignment))
- # %%
- dat %>% group_by(Congruency) %>% summarize(mean(RT))
- # %%
- # %% [markdown]
- # ## Alignment
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=Alignment, y=RT)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(stim), rows = vars(Congruency))
- # %%
- dat %>% group_by(Alignment) %>% summarize(mean(RT))
- # %%
- # %%
- # %% [markdown]
- # ## Alignment:Congruency
- # %%
- dat %>% group_by(Alignment, Congruency) %>% summarise(mean(RT))
- # %%
- dat %>% group_by(Alignment) %>% summarise(delta=mean(RT[Congruency=='Cong'])-mean(RT[Congruency=='inCong']))
- # %%
- anova_test(data=filter(dat, Alignment=='align'), dv = RT, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %%
- anova_test(data=filter(dat, Alignment=='misalign'), dv = RT, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %% [markdown]
- # Congruency effect is higher in align than misalign (This is also evident in the plot above).
- # %%
- # %% [markdown]
- # ## stim
- # %% [markdown]
- # **the following analysis are not neccecary to report in the article as we did not see any main or interaction effect for stim.**
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=stim, y=RT)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(Congruency), rows = vars(Alignment))
- # %%
- t <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% t_test(RT ~ stim, paired=TRUE)
- e <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% cohens_d(RT ~ stim, paired=TRUE)
- t['effsize'] <- e['effsize']
- # %%
- t
- # %%
- # %% [markdown]
- # The results of ANOVA on seperate stim condition:
- # %%
- dat %>%
- group_by(stim) %>% anova_test(dv = RT, wid= subject, within = c(Congruency, Alignment))
- # %%
- dat %>% group_by(stim, Congruency) %>% summarise(mean(RT))
- # %%
- dat %>% group_by(stim, Alignment) %>% summarise(mean(RT))
- # %%
- # %%
- # %%
- # %% [markdown]
- # # Mean RT
- # %% [markdown]
- # apart from exclusion based on ACC, we also excluded the RT outside 3sd (1.93 percent of data) as suggested in the following paper:\
- # Berger, A., & Kiefer, M. (2021). Comparison of different response time outlier exclusion methods: A simulation study. Frontiers in Psychology, 12, 675558.
- # %%
- df <- read.csv("C:/Users/Hasan/Desktop/Haniye/Face_full_data2.csv")
- # %%
- dat <- df %>% group_by(subject, stim, Alignment, Congruency) %>% summarise(RT=mean(RT)) %>% ungroup()
- # %%
- dat$stim <- factor(dat$stim, c('LPPC', 'CZ', 'RPPC'))
- # %%
- out <- dat %>%
- group_by(stim, Alignment, Congruency) %>%
- identify_outliers(RT)
- # %%
- dat1 <- dat
- # %%
- dat <- dat %>% anti_join(out, by=c('subject'))
- # %%
- # %%
- anova_test(data = dat, dv = RT, wid= subject, within = c(stim, Alignment, Congruency))$ANOVA
- # %% [markdown]
- # now we further analyse significancies above.
- # %% [markdown]
- # ## Congruency
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=Congruency, y=RT)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(stim), rows = vars(Alignment))
- # %%
- png(file="C:/Users/Hasan/Desktop/Haniye/final report/images/f_RT.png", width=2000, height=600, res=200)
- ggplot(data=dat, mapping=aes(x=Alignment, y=RT, fill = Congruency)) +
- geom_violin(trim = TRUE, draw_quantiles=c(.5), bounds=c(0,1)) +
- # geom_jitter(aes(shape = Congruency)) +
- # geom_boxplot(add='jitter') +
- # geom_point(position = position_jitterdodge(dodge.width = 1)) +
- facet_grid(cols = vars(stim)) +
- theme_bw()
- dev.off()
- # %%
- dat %>% group_by(Congruency) %>% summarize(mean(RT))
- # %%
- # %% [markdown]
- # ## Alignment
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=Alignment, y=RT)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(stim), rows = vars(Congruency))
- # %%
- dat %>% group_by(Alignment) %>% summarize(mean(RT))
- # %%
- # %%
- # %% [markdown]
- # ## Alignment:Congruency
- # %%
- dat %>% group_by(Alignment, Congruency) %>% summarise(mean(RT))
- # %%
- dat %>% group_by(Alignment) %>% summarise(delta=mean(RT[Congruency=='Cong'])-mean(RT[Congruency=='inCong']))
- # %%
- anova_test(data=filter(dat, Alignment=='align'), dv = RT, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %%
- anova_test(data=filter(dat, Alignment=='misalign'), dv = RT, wid= subject, within = c(Congruency, stim))$ANOVA %>%
- filter(Effect=='Congruency')
- # %% [markdown]
- # Congruency effect is higher in align than misalign (This is also evident in the plot above).
- # %%
- # %% [markdown]
- # ## stim
- # %% [markdown]
- # **the following analysis are not neccecary to report in the article as we did not see any main or interaction effect for stim.**
- # %%
- options(repr.plot.width = 10, repr.plot.height = 5)
- ggplot(data=dat, mapping=aes(x=stim, y=RT)) +
- geom_boxplot() +
- geom_line(color="blue", size=.5, mapping=aes(group=subject), alpha=.5) +
- facet_grid(
- cols = vars(Congruency), rows = vars(Alignment))
- # %%
- t <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% t_test(RT ~ stim, paired=TRUE)
- e <- dat1 %>% anti_join(out, by=c('subject','Congruency','Alignment')) %>%
- group_by(Alignment, Congruency) %>% cohens_d(RT ~ stim, paired=TRUE)
- t['effsize'] <- e['effsize']
- # %%
- t
- # %%
- # %%
- # %%
- # %% [markdown]
- # The results of ANOVA on seperate stim condition:
- # %%
- dat %>%
- group_by(stim) %>% anova_test(dv = RT, wid= subject, within = c(Congruency, Alignment))
- # %%
- dat %>% group_by(stim, Congruency) %>% summarise(mean(RT))
- # %%
- dat %>% group_by(stim, Alignment) %>% summarise(mean(RT))
- # %%
- # %%
CompFace_Behavioral-Report.ipynb, no license · at the source
Overview
- Institute for Cognitive and Brain Sciences, Shahid Beheshti University, Tehran, IRAN
- Choice Modelling Centre, University of Leeds, Leeds, United Kingdom
Abstract
Efficient interaction with complex visual environments depends on the balance between global and local processing, with a natural tendency to prioritize global information—a phenomenon known as the global advantage. This study investigates how non-invasive brain stimulation using continuous theta-burst stimulation (cTBS) over the posterior parietal cortex (PPC) affects this balance, with a focus on holistic face processing. We conducted a within-subject, crossover, sham-controlled experiment involving 36 participants who completed Navon and composite face tasks before and after cTBS stimulation over the left and right PPC. Cognitive modeling using the Diffusion Model of Conflict (DMC) was employed to examine the cognitive mechanisms involved and compare global and local processing in experimental versus sham conditions. The results confirmed the expected global precedence effect and holistic processing in both tasks but revealed no significant impact of cTBS over the right PPC on task performance in terms of accuracy or response time. However, under incongruent conditions, cTBS over the left PPC led to slower responses to local targets, particularly when compared with the sham condition. Despite these localized effects, no significant changes were observed in composite face task performance following either left or right PPC stimulation. Overall, our findings highlight the complexity of the neural mechanisms governing global-local processing and the limited impact of single-session cTBS over the PPC in altering the cognitive mechanisms underlying these processes. Further research is needed to better understand the role of the PPC in holistic and hierarchical visual processing.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.
OSF d96pg
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
33 files
- Code/
Behavioral Analysis Scripts/ , Jupyter, 670 lines, 1 matchCompFace_Behavioral-Repo rt.ipynb - Code/
Behavioral Analysis Scripts/ , Jupyter, 77 linesFace_PreProcess.ipynb - Code/
Behavioral Analysis Scripts/ , Jupyter, 1,045 lines, 1 matchNavon_Behavioral-Report. ipynb - Code/
Behavioral Analysis Scripts/ , Jupyter, 90 linesNavon_PreProcess.ipynb - Code/
Modeling Scripts/ , Jupyter, 540 linesCompFace_Model_Report.ip ynb - Code/
Modeling Scripts/ , Jupyter, 852 linesNavon_Model_Report.ipynb - Experimental tasks/
Composite face task/ , Python, 54 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ Config.py - Experimental tasks/
Composite face task/ , Python, 293 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ CongruentAligned.py - Experimental tasks/
Composite face task/ , Python, 303 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ CongruentMisaligned.py - Experimental tasks/
Composite face task/ , Python, 48 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ DialogueBox.py - Experimental tasks/
Composite face task/ , Python, 12 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ DifferentTotalLocationsL ist.py - Experimental tasks/
Composite face task/ , Python, 7 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ EndMessage.py - Experimental tasks/
Composite face task/ , Python, 319 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ IncongruentAligned.py - Experimental tasks/
Composite face task/ , Python, 322 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ IncongruentMisaligned.py - Experimental tasks/
Composite face task/ , Python, 38 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ MainAssets.py - Experimental tasks/
Composite face task/ , Python, 18 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ MenAlign.py - Experimental tasks/
Composite face task/ , Python, 16 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ MenMisalign.py - Experimental tasks/
Composite face task/ , Python, 261 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ PracticeTrials.py - Experimental tasks/
Composite face task/ , Python, 11 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ SameLowerLocationsList.p y - Experimental tasks/
Composite face task/ , Python, 13 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ SameUpperLocationsList.p y - Experimental tasks/
Composite face task/ , Python, 9 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ Window.py - Experimental tasks/
Composite face task/ , Python, 15 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ WomenAlign.py - Experimental tasks/
Composite face task/ , Python, 16 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ WomenMisalign.py - Experimental tasks/
Composite face task/ , Python, 379 linesCompositeFaceTask_Code.z ip/ CompositeFaceTask_Code/ app.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 55 linesNavonTask_Code.zip/ NavonTask_Code/ Config.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 26 linesNavonTask_Code.zip/ NavonTask_Code/ DialogueBox.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 10 linesNavonTask_Code.zip/ NavonTask_Code/ EndMessage.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 492 linesNavonTask_Code.zip/ NavonTask_Code/ Global.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 39 linesNavonTask_Code.zip/ NavonTask_Code/ ImageStims.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 495 linesNavonTask_Code.zip/ NavonTask_Code/ Local.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 7 linesNavonTask_Code.zip/ NavonTask_Code/ Window.py - Experimental tasks/
Navon hierarchical letter task/ , Python, 100 linesNavonTask_Code.zip/ NavonTask_Code/ test.py - README.md, Text, 12 lines
The paper's code and data availability statement is in the Data section.
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:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 32 scripts, each with its path and the digest of its content;
- 2 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
No dataset and no data link were found in the paper.
Data Availability
All data and codes supporting the findings of this study are freely accessible on the Open Science Framework (OSF) at 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, 4 authors, 12 MeSH terms, 170 references.
Cite
This paper
Sayadi, H., Qarehdaghi, H., Pouretemad, H., & Amani Rad, J. (2026). Investigating the effects of continuous theta-burst stimulation over the posterior parietal cortex on holistic processing of composite faces: evidence from cognitive modeling. PloS one, 21(3), e0343776. https://
BibTeX
@article{sayadi2026inves
author = {Sayadi, Hanieh and Qarehdaghi, Hasan and Pouretemad, Hamidreza and Amani Rad, Jamal},
title = {{Investigating the effects of continuous theta-burst stimulation over the posterior parietal cortex on holistic processing of composite faces: evidence from cognitive modeling}},
journal = {PloS one},
year = {2026},
month = mar,
volume = {21},
number = {3},
pages = {e0343776},
publisher = {PLOS},
issn = {1932-6203},
doi = {10.1371/
url = {https://
pmid = {41871057},
pmcid = {PMC13008110}
}
RIS
TY - JOUR
AU - Sayadi, Hanieh
AU - Qarehdaghi, Hasan
AU - Pouretemad, Hamidreza
AU - Amani Rad, Jamal
TI - Investigating the effects of continuous theta-burst stimulation over the posterior parietal cortex on holistic processing of composite faces: evidence from cognitive modeling
T2 - PloS one
J2 - PLoS One
PY - 2026
DA - 2026/
VL - 21
IS - 3
SP - e0343776
SN - 1932-6203
PB - PLOS
DO - 10.1371/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1371/
"type": "article-journal",
"title": "Investigating the effects of continuous theta-burst stimulation over the posterior parietal cortex on holistic processing of composite faces: evidence from cognitive modeling",
"container-title": "PloS one",
"author": [
{
"family": "Sayadi",
"given": "Hanieh"
},
{
"family": "Qarehdaghi",
"given": "Hasan"
},
{
"family": "Pouretemad",
"given": "Hamidreza"
},
{
"family": "Amani Rad",
"given": "Jamal"
}
],
"container-title-short":
"volume": "21",
"issue": "3",
"page": "e0343776",
"DOI": "10.1371/
"PMID": "41871057",
"PMCID": "PMC13008110",
"ISSN": "1932-6203",
"publisher": "PLOS",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
23
]
]
}
}
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.1111/psyp.70032 [code]
- Spatio-Temporal Decoding of the Navon Task Challenges Rigid Hemispheric Asymmetries in Global-Local Processing.Journal: PsychophysiologyIn common: ggplot2, tidyverse, cognitive, 11 references
- [2] doi:10.1186/s12993-024-00233-2 [code]
- Beyond visual integration: sensitivity of the temporal-parietal junction for objects, places, and faces.Journal: Behavioral and brain functions : BBFIn common: cognitive, 10 references
- [3] doi:10.3390/brainsci13081204
- Skilled Performers Show Right Parietal Lateralization during Anticipation of Volleyball Attacks.Journal: Brain sciencesIn common: cognitive, 8 references
- [4] doi:10.1162/imag.a.1345
- Causal evidence for dorsal stream involvement in object shape recognition: A tractography-guided ccPAS Registered Report study.Journal: Imaging neuroscience (Cambridge, Mass.)In common: 8 references
- [5] doi:10.7554/elife.98351 [code]
- An image-computable model of speeded decision-making.Journal: eLifeIn common: PsychoPy, pandas, cognitive, 6 references
- [6] doi:10.1371/journal.pone.0303796
- Neural correlates underlying local and global processing during visual search across adulthood.Journal: PloS oneIn common: cognitive, 6 references
- [7] doi:10.3390/brainsci14020146
- Extensive Visual Training in Adulthood Reduces an Implicit Neural Marker of the Face Inversion Effect.Journal: Brain sciencesIn common: 6 references
- [8] doi:10.3389/fpsyg.2022.1039172 [code]
- A practical introduction to using the drift diffusion model of decision-making in cognitive psychology, neuroscience, and health sciences.Journal: Frontiers in psychologyIn common: ggplot2, tidyverse, cognitive, 6 references
- [9] doi:10.1038/s41467-022-33240-w [code]
- Local features drive identity responses in macaque anterior face patches.Journal: Nature communicationsIn common: 5 references
- [10] doi:10.1162/imag_a_00106 [code]
- Electric-field-based dosing for TMS.Journal: Imaging neuroscience (Cambridge, Mass.)In common: cognitive, 5 references
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: 1 repository of the authors' code, each at its verified commit and with its license, 32 scripts, and 2 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:3e51ffd81d57607d…
Add the badge to the code's README
If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.
Markdown
<!-- oscr-badge:start -->
[](https://openscicode.org/badge/doi/10.1371/journal.pone.0343776)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1371/journal.pone.0343776.svg
:target: https://openscicode.org/badge/doi/10.1371/journal.pone.0343776
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1371/journal.pone.0343776"><img src="https://openscicode.org/badge/doi/10.1371/journal.pone.0343776.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge page.
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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.
Report a mismatch between the code and the paper · Report a code error (signed in)
Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.
Report a reproduction failure (signed in)
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
