OSCR

Empathy motivation is preserved following amygdala damage.

Code ↔ Paper

The paper beside its authors' code: matches between them have not been computed for this paper yet.

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 · 713 lines · 30 KB · no license

  1. ## Empathy motivation is preserved following amygdala damage ##
  2. #### Load Required Packages ####
  3. require(base)
  4. require(float)
  5. require(quanteda)
  6. require(Matrix)
  7. require(stats)
  8. require(dplyr)
  9. require(tidyr)
  10. require(rio)
  11. require(SnowballC)
  12. require(stringi)
  13. require(stringr)
  14. require(textclean)
  15. require(tidyr)
  16. require(utils)
  17. require(bayesanova)
  18. require(lme4)
  19. #### This will bring up a dialogue box to import the SPSS file into the environment ####
  20. EmpLesion <- import(file.choose(new=FALSE), setclass = getOption("rio.import.class", "data.frame"))
  21. # Remove participants who did not complete the affective EST #
  22. EmpLesionNoEST <- subset(EmpLesion, AffectiveEST_Avg != 'NA')
  23. EmpLesionNoCogEST <- subset(EmpLesion, CognitiveEST_Avg != 'NA')
  24. #### Empathy Choice Bayes Anova Testing ####
  25. ## Affective EST ##
  26. amygAff <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_Avg
  27. bdcAff <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_Avg
  28. hcAff <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_Avg
  29. ## Cognitive EST ##
  30. amygCog <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_Avg
  31. bdcCog <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_Avg
  32. hcCog <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_Avg
  33. ## Affective EST ##
  34. assumption.check(amygAff,bdcAff,hcAff,conf.level=0.95)
  35. set.seed(42)
  36. result = bayes.anova(first=amygAff,second=bdcAff,third=hcAff,n=10000)
  37. anovaplot(result)
  38. post.pred.check(anovafit = result, ngroups = 3, out = EmpLesionNoEST$AffectiveEST_Avg,
  39. reps = 50, eta = c(1/3,1/3,1/3))
  40. ## Cognitive EST ##
  41. assumption.check(amygCog,bdcCog,hcCog,conf.level=0.95)
  42. set.seed(43)
  43. result = bayes.anova(first=amygCog,second=bdcCog,third=hcCog,n=10000)
  44. anovaplot(result)
  45. post.pred.check(anovafit = result, ngroups = 3, out = EmpLesionNoCogEST$CognitiveEST_Avg,
  46. reps = 50, eta = c(1/3,1/3,1/3))
  47. #### Cognitive Cost Bayes Testing ####
  48. ## Data Gather for Cognitive Cost Bayes Analyses ##
  49. ## Affective EST ##
  50. # Empathy Deck #
  51. amygAff_Aeff <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_EmpathyEffort
  52. bdcAff_Aeff <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_EmpathyEffort
  53. hcAff_Aeff <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_EmpathyEffort
  54. amygAff_Aavr <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_EmpathyAversion
  55. bdcAff_Aavr <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_EmpathyAversion
  56. hcAff_Aavr <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_EmpathyAversion
  57. amygAff_Aeffi <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_EmpathyEfficacy
  58. bdcAff_Aeffi <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_EmpathyEfficacy
  59. hcAff_Aeffi <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_EmpathyEfficacy
  60. # Non-Empathy Deck #
  61. amygAff_AeffNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_NonEmpathyEffort
  62. bdcAff_AeffNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_NonEmpathyEffort
  63. hcAff_AeffNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_NonEmpathyEffort
  64. amygAff_AavrNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_NonEmpathyAversion
  65. bdcAff_AavrNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_NonEmpathyAversion
  66. hcAff_AavrNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_NonEmpathyAversion
  67. amygAff_AeffiNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==1,]$AffectiveEST_NonEmpathyEfficacy
  68. bdcAff_AeffiNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==3,]$AffectiveEST_NonEmpathyEfficacy
  69. hcAff_AeffiNonEmp <- EmpLesionNoEST[EmpLesionNoEST$LesionGroup==4,]$AffectiveEST_NonEmpathyEfficacy
  70. ## Cognitive EST ##
  71. # Empathy Deck #
  72. amygCog_Aeff <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_EmpathyEffort
  73. bdcCog_Aeff <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_EmpathyEffort
  74. hcCog_Aeff <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_EmpathyEffort
  75. amygCog_Aavr <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_EmpathyAversion
  76. bdcCog_Aavr <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_EmpathyAversion
  77. hcCog_Aavr <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_EmpathyAversion
  78. amygCog_Aeffi <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_EmpathyEfficacy
  79. bdcCog_Aeffi <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_EmpathyEfficacy
  80. hcCog_Aeffi <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_EmpathyEfficacy
  81. # Non-Empathy Deck #
  82. amygCog_AeffNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_NonEmpathyEffort
  83. bdcCog_AeffNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_NonEmpathyEffort
  84. hcCog_AeffNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_NonEmpathyEffort
  85. amygCog_AavrNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_NonEmpathyAversion
  86. bdcCog_AavrNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_NonEmpathyAversion
  87. hcCog_AavrNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_NonEmpathyAversion
  88. amygCog_AeffiNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==1,]$CognitiveEST_NonEmpathyEfficacy
  89. bdcCog_AeffiNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==3,]$CognitiveEST_NonEmpathyEfficacy
  90. hcCog_AeffiNonEmp <- EmpLesionNoCogEST[EmpLesionNoCogEST$LesionGroup==4,]$CognitiveEST_NonEmpathyEfficacy
  91. #### Cognitive Costs - Effort ####
  92. ## Affective EST ##
  93. # omit bdc with missing data #
  94. bdcAff_Aeffomit <- as.numeric(na.omit(bdcAff_Aeff))
  95. assumption.check(amygAff_Aeff,bdcAff_Aeffomit,hcAff_Aeff,amygAff_AeffNonEmp,bdcAff_AeffNonEmp,hcAff_AeffNonEmp,conf.level=0.95)
  96. set.seed(46)
  97. result = bayes.anova(first=amygAff_Aeff,second=bdcAff_Aeffomit,third=hcAff_Aeff,
  98. fourth=amygAff_AeffNonEmp,fifth=bdcAff_AeffNonEmp,sixth=hcAff_AeffNonEmp, n=10000)
  99. anovaplot(result)
  100. ## Cognitive EST ##
  101. set.seed(47)
  102. result = bayes.anova(first=amygCog_Aeff,second=bdcCog_Aeff,third=hcCog_Aeff,
  103. fourth=amygCog_AeffNonEmp,fifth=bdcCog_AeffNonEmp,sixth=hcCog_AeffNonEmp, n=10000)
  104. anovaplot(result)
  105. #### Cognitive Costs - Aversiveness #####
  106. ## Affective EST ##
  107. # omit bdc with missing data #
  108. bdcAff_Aavromit <- as.numeric(na.omit(bdcAff_Aavr))
  109. assumption.check(amygAff_Aavr,bdcAff_Aavromit,hcAff_Aavr,amygAff_AavrNonEmp,bdcAff_AavrNonEmp,hcAff_AavrNonEmp,conf.level=0.95)
  110. set.seed(50)
  111. result = bayes.anova(first=amygAff_Aavr,second=bdcAff_Aavromit,third=hcAff_Aavr,
  112. fourth=amygAff_AavrNonEmp,fifth=bdcAff_AavrNonEmp,sixth=hcAff_AavrNonEmp, n=10000)
  113. anovaplot(result)
  114. ## Cognitive EST ##
  115. set.seed(51)
  116. result = bayes.anova(first=amygCog_Aavr,second=bdcCog_Aavr,third=hcCog_Aavr,
  117. fourth=amygCog_AavrNonEmp,fifth=bdcCog_AavrNonEmp,sixth=hcCog_AavrNonEmp, n=10000)
  118. anovaplot(result)
  119. #### Cognitive Costs - Efficacy ####
  120. ## Affective EST ##
  121. # omit bdc with missing data #
  122. bdcAff_Aeffiomit <- as.numeric(na.omit(bdcAff_Aeffi))
  123. assumption.check(amygAff_Aeffi,bdcAff_Aeffiomit,hcAff_Aeffi,amygAff_AeffiNonEmp,bdcAff_AeffiNonEmp,hcAff_AeffiNonEmp,conf.level=0.95)
  124. set.seed(54)
  125. result = bayes.anova(first=amygAff_Aeffi,second=bdcAff_Aeffiomit,third=hcAff_Aeffi,
  126. fourth=amygAff_AeffiNonEmp,fifth=bdcAff_AeffiNonEmp,sixth=hcAff_AeffiNonEmp, n=10000)
  127. anovaplot(result)
  128. ## Cognitive EST ##
  129. set.seed(55)
  130. result = bayes.anova(first=amygCog_Aeffi,second=bdcCog_Aeffi,third=hcCog_Aeffi,
  131. fourth=amygCog_AeffiNonEmp,fifth=bdcCog_AeffiNonEmp,sixth=hcCog_AeffiNonEmp, n=10000)
  132. anovaplot(result)
  133. #### Affective EST - Text Data ####
  134. ## Create tibble for just empathy responses ##
  135. EmpLesiontibble <- tibble(id = EmpLesionNoEST$ID,
  136. lesionGroup = EmpLesionNoEST$LesionGroup,
  137. choice.1 = EmpLesionNoEST$AffectiveEST_Q1Choice,
  138. choice.2 = EmpLesionNoEST$AffectiveEST_Q2Choice,
  139. choice.3 = EmpLesionNoEST$AffectiveEST_Q3Choice,
  140. choice.4 = EmpLesionNoEST$AffectiveEST_Q4Choice,
  141. choice.5 = EmpLesionNoEST$AffectiveEST_Q5Choice,
  142. choice.6 = EmpLesionNoEST$AffectiveEST_Q6Choice,
  143. choice.7 = EmpLesionNoEST$AffectiveEST_Q7Choice,
  144. choice.8 = EmpLesionNoEST$AffectiveEST_Q8Choice,
  145. choice.9 = EmpLesionNoEST$AffectiveEST_Q9Choice,
  146. choice.10 = EmpLesionNoEST$AffectiveEST_Q10Choice,
  147. choice.11 = EmpLesionNoEST$AffectiveEST_Q11Choice,
  148. choice.12 = EmpLesionNoEST$AffectiveEST_Q12Choice,
  149. choice.13 = EmpLesionNoEST$AffectiveEST_Q13Choice,
  150. choice.14 = EmpLesionNoEST$AffectiveEST_Q14Choice,
  151. choice.15 = EmpLesionNoEST$AffectiveEST_Q15Choice,
  152. choice.16 = EmpLesionNoEST$AffectiveEST_Q16Choice,
  153. choice.17 = EmpLesionNoEST$AffectiveEST_Q17Choice,
  154. choice.18 = EmpLesionNoEST$AffectiveEST_Q18Choice,
  155. choice.19 = EmpLesionNoEST$AffectiveEST_Q19Choice,
  156. choice.20 = EmpLesionNoEST$AffectiveEST_Q20Choice,
  157. choice.21 = EmpLesionNoEST$AffectiveEST_Q21Choice,
  158. choice.22 = EmpLesionNoEST$AffectiveEST_Q22Choice,
  159. choice.23 = EmpLesionNoEST$AffectiveEST_Q23Choice,
  160. choice.24 = EmpLesionNoEST$AffectiveEST_Q24Choice,
  161. choice.25 = EmpLesionNoEST$AffectiveEST_Q25Choice,
  162. choice.26 = EmpLesionNoEST$AffectiveEST_Q26Choice,
  163. choice.27 = EmpLesionNoEST$AffectiveEST_Q27Choice,
  164. choice.28 = EmpLesionNoEST$AffectiveEST_Q28Choice,
  165. choice.29 = EmpLesionNoEST$AffectiveEST_Q29Choice,
  166. choice.30 = EmpLesionNoEST$AffectiveEST_Q30Choice,
  167. choice.31 = EmpLesionNoEST$AffectiveEST_Q31Choice,
  168. choice.32 = EmpLesionNoEST$AffectiveEST_Q32Choice,
  169. choice.33 = EmpLesionNoEST$AffectiveEST_Q33Choice,
  170. choice.34 = EmpLesionNoEST$AffectiveEST_Q34Choice,
  171. choice.35 = EmpLesionNoEST$AffectiveEST_Q35Choice,
  172. choice.36 = EmpLesionNoEST$AffectiveEST_Q36Choice,
  173. choice.37 = EmpLesionNoEST$AffectiveEST_Q37Choice,
  174. choice.38 = EmpLesionNoEST$AffectiveEST_Q38Choice,
  175. choice.39 = EmpLesionNoEST$AffectiveEST_Q39Choice,
  176. choice.40 = EmpLesionNoEST$AffectiveEST_Q40Choice,
  177. response.1 = EmpLesionNoEST$AffectiveEST_Q1Response,
  178. response.2 = EmpLesionNoEST$AffectiveEST_Q2Response,
  179. response.3 = EmpLesionNoEST$AffectiveEST_Q3Response,
  180. response.4 = EmpLesionNoEST$AffectiveEST_Q4Response,
  181. response.5 = EmpLesionNoEST$AffectiveEST_Q5Response,
  182. response.6 = EmpLesionNoEST$AffectiveEST_Q6Response,
  183. response.7 = EmpLesionNoEST$AffectiveEST_Q7Response,
  184. response.8 = EmpLesionNoEST$AffectiveEST_Q8Response,
  185. response.9 = EmpLesionNoEST$AffectiveEST_Q9Response,
  186. response.10 = EmpLesionNoEST$AffectiveEST_Q10Response,
  187. response.11 = EmpLesionNoEST$AffectiveEST_Q11Response,
  188. response.12 = EmpLesionNoEST$AffectiveEST_Q12Response,
  189. response.13 = EmpLesionNoEST$AffectiveEST_Q13Response,
  190. response.14 = EmpLesionNoEST$AffectiveEST_Q14Response,
  191. response.15 = EmpLesionNoEST$AffectiveEST_Q15Response,
  192. response.16 = EmpLesionNoEST$AffectiveEST_Q16Response,
  193. response.17 = EmpLesionNoEST$AffectiveEST_Q17Response,
  194. response.18 = EmpLesionNoEST$AffectiveEST_Q18Response,
  195. response.19 = EmpLesionNoEST$AffectiveEST_Q19Response,
  196. response.20 = EmpLesionNoEST$AffectiveEST_Q20Response,
  197. response.21 = EmpLesionNoEST$AffectiveEST_Q21Response,
  198. response.22 = EmpLesionNoEST$AffectiveEST_Q22Response,
  199. response.23 = EmpLesionNoEST$AffectiveEST_Q23Response,
  200. response.24 = EmpLesionNoEST$AffectiveEST_Q24Response,
  201. response.25 = EmpLesionNoEST$AffectiveEST_Q25Response,
  202. response.26 = EmpLesionNoEST$AffectiveEST_Q26Response,
  203. response.27 = EmpLesionNoEST$AffectiveEST_Q27Response,
  204. response.28 = EmpLesionNoEST$AffectiveEST_Q28Response,
  205. response.29 = EmpLesionNoEST$AffectiveEST_Q29Response,
  206. response.30 = EmpLesionNoEST$AffectiveEST_Q30Response,
  207. response.31 = EmpLesionNoEST$AffectiveEST_Q31Response,
  208. response.32 = EmpLesionNoEST$AffectiveEST_Q32Response,
  209. response.33 = EmpLesionNoEST$AffectiveEST_Q33Response,
  210. response.34 = EmpLesionNoEST$AffectiveEST_Q34Response,
  211. response.35 = EmpLesionNoEST$AffectiveEST_Q35Response,
  212. response.36 = EmpLesionNoEST$AffectiveEST_Q36Response,
  213. response.37 = EmpLesionNoEST$AffectiveEST_Q37Response,
  214. response.38 = EmpLesionNoEST$AffectiveEST_Q38Response,
  215. response.39 = EmpLesionNoEST$AffectiveEST_Q39Response,
  216. response.40 = EmpLesionNoEST$AffectiveEST_Q40Response)
  217. ## Add id number (may not need with carrying over the ID) ##
  218. #EmpLesiontibble <- EmpLesiontibble %>%
  219. # mutate(EmpLesiontibble, id=row_number())
  220. ## Categorize responses based on choice ##
  221. EmpLesiontibbleChoice <- EmpLesiontibble %>%
  222. select(id:choice.40)
  223. EmpLesiontibbleChoice <- EmpLesiontibbleChoice %>%
  224. pivot_longer(cols = choice.1:choice.40,
  225. names_to="trial",
  226. values_to = "Choice")
  227. EmpLesiontibbleResponses <- EmpLesiontibble %>%
  228. select(id,lesionGroup,response.1:response.40)
  229. EmpLesiontibbleResponses <- EmpLesiontibbleResponses %>%
  230. pivot_longer(cols = response.1:response.40,
  231. names_to="trial",
  232. values_to="Text")
  233. EmpLesiontibbleLong <- cbind(EmpLesiontibbleChoice, EmpLesiontibbleResponses)
  234. EmpLesiontibbleLong <- subset(EmpLesiontibbleLong, select=-(3))
  235. EmpLesiontibbleLong <- subset(EmpLesiontibbleLong, select=-(4))
  236. EmpLesiontibbleLong <- subset(EmpLesiontibbleLong, select=-(4))
  237. EmpLesiontibbleLong <- subset(EmpLesiontibbleLong, select=-(4))
  238. trial <- gsub("choice.","", EmpLesiontibbleChoice$trial)
  239. EmpLesiontibbleLong <- cbind(EmpLesiontibbleLong,trial)
  240. rm(EmpLesiontibbleChoice)
  241. rm(EmpLesiontibbleResponses)
  242. rm(trial)
  243. ## Text Analysis ##
  244. # Import the dictionaries (Brady et al., 2017, PNAS)
  245. affectDictionary <- read.csv(file.choose(new=FALSE),header=FALSE)
  246. posAffect <- read.csv(file.choose(new=FALSE),header=FALSE)
  247. negAffect <- read.csv(file.choose(new=FALSE),header=FALSE)
  248. # Convert use of wildcard symbol in R (* -> ^) to allow for extensions of the word #
  249. affectDictionary <- lapply(affectDictionary,glob2rx)
  250. posAffect <- lapply(posAffect,glob2rx)
  251. negAffect <- lapply(negAffect,glob2rx)
  252. # Change to character array for easier comparison against the written text #
  253. affectDictionary <- array(unlist(affectDictionary))
  254. posAffect <- array(unlist(posAffect))
  255. negAffect <- array(unlist(negAffect))
  256. # Revision (10.7.2025): Combine character vectors for affect, positive, negative dictionaries and remove duplicates #
  257. combinedAffect <- c(affectDictionary,negAffect,posAffect)
  258. combinedAffect <- unique(combinedAffect)
  259. # Researcher Coding Team identified missing words from the dictionaries that were written into participant responses; some are duplicates #
  260. missedWords <- c('somber', 'curious', 'astonished', 'wondering', 'attentive','watchful','curious', 'intense', 'angry',
  261. 'cranky', 'tired', 'let down', 'wonderment', 'bewildered', 'pouty', 'wanting', 'neutral', 'miserable',
  262. 'happy', 'pain', 'spunk', 'trapped', 'hiding', 'hurt', 'safe', 'perplexed', 'leaving', 'gives up', 'beat',
  263. 'awed', 'caged', 'mischevious', 'mediocre', 'disappointed', 'defiant', 'onery', 'untrusting', 'disappointed',
  264. 'untrusting', 'contempt', 'despondent', 'mistrust', 'disgust', 'despair', 'broken', 'introverted', 'needing',
  265. 'recovering', 'disconnected', 'rambunctious', 'content', 'quiet', 'sleepy', 'sick', 'hate', 'hard', 'scared',
  266. 'bored', 'lonely', 'grief', 'lost', 'mean', 'openness', 'worn out', 'starving', 'unhealthy', 'alone', 'frown',
  267. 'flat', 'dehydrated', 'good', 'unsure', 'weary', 'tear-streaked', 'pensive', 'cautiously', 'bad', 'disheeveled',
  268. 'uninterested', 'impulsive', 'intrigued', 'assessing', 'observant', 'clinging', 'secluded', 'unwell',
  269. 'suffering', 'stoic', 'wary', 'pleading', 'trapped', 'oppression', 'concern', 'questioning', 'hungry',
  270. 'inquisitive', 'self-assured', 'cocky', 'forlorn', 'dejected', 'approval', 'puzzled', 'resilience',
  271. 'betrayed', 'cautious', 'alert', 'resolute', 'steadfast', 'sassy', 'perplexed', 'intent', 'focused',
  272. 'guarded', 'distant', 'abandoned', 'peaceful', 'care', 'shamed', 'scowling', 'disbelief', 'drive',
  273. 'revengeful', 'stern', 'hardened', 'tearful', 'indifference', 'agitated', 'inquisitive', 'dear')
  274. # Remove Duplicates #
  275. missedWords <- unique(missedWords)
  276. # Convert use of wildcard symbol in R (* -> ^) to allow for extensions of the word #
  277. missedWords <- lapply(missedWords,glob2rx)
  278. # Change to character array for easier comparison against the written text #
  279. missedWords <- array(unlist(missedWords))
  280. # Combine with the earlier character vector that had the combined positive, negative, and affect dictionaries #
  281. combinedAffect <- c(combinedAffect,missedWords)
  282. combinedAffect <- unique(combinedAffect)
  283. # Delete the missedWords vector #
  284. rm(missedWords)
  285. ## Common False Positives Identified by Researcher Coding Team (in context of participant responses) ##
  286. combinedAffect <- combinedAffect[!combinedAffect %in% c('^like$','^likes$','^liked$','^plays$','^please','^pretty$')]
  287. affectDictionary <- affectDictionary[!affectDictionary %in% c('^like$','^likes$','^liked$','^plays$','^please','^pretty$')]
  288. posAffect <- posAffect[!posAffect %in% c('^like$','^likes$','^liked$','^plays$','^please','^pretty$')]
  289. negAffect <- negAffect[!negAffect %in% c('^like$','^likes$','^liked$','^plays$','^please','^pretty$')]
  290. # Word count per response #
  291. EmpLesiontibbleLong$numWords <- stri_count_words(EmpLesiontibbleLong$Text)
  292. # Text cleaning: see descriptions below #
  293. EmpLesiontibbleLong$TextCleaned <- EmpLesiontibbleLong$Text %>%
  294. str_to_lower() %>% # convert all the string to low alphabet
  295. replace_contraction() %>% # replace contraction to their multi-word forms
  296. replace_internet_slang() %>% # replace internet slang to normal words
  297. replace_emoji() %>% # replace emoji to words
  298. replace_emoticon() %>% # replace emoticon to words
  299. replace_hash(replacement = "") %>% # remove hashtag
  300. replace_word_elongation() %>% # replace informal writing with known semantic replacements
  301. replace_number(remove = T) %>% # remove number
  302. replace_date(replacement = "") %>% # remove date
  303. replace_time(replacement = "") %>% # remove time
  304. str_remove_all(pattern = "[[:punct:]]") %>% # remove punctuation
  305. str_remove_all(pattern = "[^\\s]*[0-9][^\\s]*") %>% # remove mixed string n number
  306. str_squish() %>% # reduces repeated whitespace inside a string.
  307. str_trim() # removes whitespace from start and end of string
  308. # WordStem (not used in manuscript, but provided if helpful) #
  309. EmpLesiontibbleLong$TextCleanedStem <- EmpLesiontibbleLong$TextCleaned %>%
  310. wordStem()
  311. # Build a list for the identification of affect words #
  312. EmpLesionTextList <- list(item1=EmpLesiontibbleLong$id, item2=EmpLesiontibbleLong$lesionGroup,
  313. item3=EmpLesiontibbleLong$Choice, item4=EmpLesiontibbleLong$Text,
  314. item5=EmpLesiontibbleLong$trial, item6 = EmpLesiontibbleLong$numWords,
  315. item7 = EmpLesiontibbleLong$TextCleaned, item8=EmpLesiontibbleLong$TextCleanedStem)
  316. #### Identifier Loop for Emotion Word Counts ####
  317. # These are safeties in case replication of the loop is needed (remove first # for creating a backup, remove the second # for resetting the list)
  318. #copyEmpLesiontibbleLong <- EmpLesiontibbleLong
  319. #EmpLesiontibbleLong <- copyEmpLesiontibbleLong
  320. # This for loop splits the written text into separate words, compares across each word with the three dictionaries, and stores both the
  321. # count and the word in the list for interpretation later #
  322. for (i in 1:nrow(EmpLesiontibbleLong)) {
  323. cc <- as.numeric()
  324. d <- as.numeric()
  325. e <- as.numeric()
  326. f <- as.numeric()
  327. hh <- as.character()
  328. ii <- as.character()
  329. jj <- as.character()
  330. kk <- as.character()
  331. if (i %% 100==0){
  332. print(i)}
  333. x <- unlist(strsplit(trimws(EmpLesiontibbleLong$TextCleaned[i]), "\\s+"))
  334. if(identical(x,character(0))) next
  335. for (k in 1:length(affectDictionary)) {
  336. y <- grepl(affectDictionary[k],x)
  337. cc[k] <- sum(y=="TRUE",na.rm=T)
  338. if(!(identical(grep(affectDictionary[k],x,value=TRUE),character(0)))){
  339. z <- grep(affectDictionary[k],x,value=TRUE)
  340. if(k==1){
  341. hh<-z
  342. }
  343. if(k>1){
  344. hh <- c(hh,z)}
  345. }
  346. }
  347. for(k in 1:length(negAffect)){
  348. y <- grepl(negAffect[k],x)
  349. d[k] <- sum(y=="TRUE",na.rm=T)
  350. if(!(identical(grep(negAffect[k],x,value=TRUE),character(0)))){
  351. z <- grep(negAffect[k],x,value=TRUE)
  352. if(k==1){
  353. ii<-z
  354. }
  355. if(k>1){
  356. ii <- c(ii,z)
  357. }
  358. }
  359. }
  360. for(k in 1:length(posAffect)){
  361. y <- grepl(posAffect[k],x)
  362. e[k] <- sum(y=="TRUE",na.rm=T)
  363. if(!(identical(grep(posAffect[k],x,value=TRUE),character(0)))){
  364. z <- grep(posAffect[k],x,value=TRUE)
  365. if(k==1){
  366. jj<-z
  367. }
  368. if(k>1){
  369. jj <- c(jj,z)
  370. }
  371. }
  372. }
  373. for(k in 1:length(combinedAffect)){
  374. y <- grepl(combinedAffect[k],x)
  375. f[k] <- sum(y=="TRUE",na.rm=T)
  376. if(!(identical(grep(combinedAffect[k],x,value=TRUE),character(0)))){
  377. z <- grep(combinedAffect[k],x,value=TRUE)
  378. if(k==1){
  379. kk<-z
  380. }
  381. if(k>1){
  382. kk <- c(kk,z)
  383. }
  384. }
  385. }
  386. EmpLesiontibbleLong$affectWordsCount[i] <- sum(cc)
  387. EmpLesiontibbleLong$negaffectWordsCount[i] <- sum(d)
  388. EmpLesiontibbleLong$posaffectWordsCount[i] <- sum(e)
  389. EmpLesiontibbleLong$combinedaffectWordsCount[i] <- sum(f)
  390. if(identical(hh,character(0))){
  391. EmpLesionTextList[['item9']][[i]] <- NA
  392. }
  393. else if (!(identical(hh,character(0)))) {
  394. EmpLesionTextList[['item9']][[i]] <- hh
  395. }
  396. if(identical(ii,character(0))){
  397. EmpLesionTextList[['item10']][[i]] <- NA
  398. }
  399. else if (!(identical(ii,character(0)))){
  400. EmpLesionTextList[['item10']][[i]] <- ii
  401. }
  402. if(identical(jj,character(0))){
  403. EmpLesionTextList[['item11']][[i]] <- NA
  404. }
  405. else if (!(identical(jj,character(0)))) {
  406. EmpLesionTextList[['item11']][[i]] <- jj
  407. }
  408. if(identical(kk,character(0))){
  409. EmpLesionTextList[['item12']][[i]] <- NA
  410. }
  411. else if (!(identical(kk,character(0)))) {
  412. EmpLesionTextList[['item12']][[i]] <- kk
  413. }
  414. cc <- as.numeric()
  415. d <- as.numeric()
  416. e <- as.numeric()
  417. f <- as.numeric()
  418. hh <- as.character()
  419. ii <- as.character()
  420. jj <- as.character()
  421. kk <- as.character()
  422. rm(x)
  423. rm(y)
  424. rm(z)
  425. }
  426. # Clean the environment #
  427. rm(cc)
  428. rm(d)
  429. rm(e)
  430. rm(hh)
  431. rm(i)
  432. rm(ii)
  433. rm(jj)
  434. rm(f)
  435. rm(kk)
  436. rm(k)
  437. # store the counts in the tibble as well #
  438. EmpLesiontibbleLong$affectUsed[EmpLesiontibbleLong$affectWordsCount>=1] <- 1
  439. EmpLesiontibbleLong$affectUsed[EmpLesiontibbleLong$affectWordsCount<=0] <- 0
  440. EmpLesiontibbleLong$affectUsed <- as.numeric(EmpLesiontibbleLong$affectUsed)
  441. EmpLesiontibbleLong$negaffectUsed[EmpLesiontibbleLong$negaffectWordsCount>=1] <- 1
  442. EmpLesiontibbleLong$negaffectUsed[EmpLesiontibbleLong$negaffectWordsCount<=0] <- 0
  443. EmpLesiontibbleLong$negaffectUsed <- as.numeric(EmpLesiontibbleLong$negaffectUsed)
  444. EmpLesiontibbleLong$posaffectUsed[EmpLesiontibbleLong$posaffectWordsCount>=1] <- 1
  445. EmpLesiontibbleLong$posaffectUsed[EmpLesiontibbleLong$posaffectWordsCount<=0] <- 0
  446. EmpLesiontibbleLong$posaffectUsed <- as.numeric(EmpLesiontibbleLong$posaffectUsed)
  447. EmpLesiontibbleLong$combinedaffectUsed[EmpLesiontibbleLong$combinedaffectWordsCount>=1] <- 1
  448. EmpLesiontibbleLong$combinedaffectUsed[EmpLesiontibbleLong$combinedaffectWordsCount<=0] <- 0
  449. EmpLesiontibbleLong$combinedaffectUsed <- as.numeric(EmpLesiontibbleLong$combinedaffectUsed)
  450. #### Emotion Word Count Analysis ####
  451. ## Word Count Analysis (not reported in paper)
  452. model1_fit <- glmer(formula = affectWordsCount ~ 1 + Choice*lesionGroup + (1|id),
  453. family=poisson,
  454. data = EmpLesiontibbleLong,
  455. na.action=na.exclude)
  456. summary(model1_fit)
  457. # Word Used Analysis (not reported in paper)
  458. model2_fit <- glmer(formula = affectUsed ~ 1 + Choice*lesionGroup + (1|id),
  459. family=binomial,
  460. data = EmpLesiontibbleLong,
  461. na.action=na.exclude)
  462. summary(model2_fit)
  463. ## Positive Affect Word Count Analysis (not reported in paper)
  464. model3_fit <- glmer(formula = posaffectWordsCount ~ 1 + Choice*lesionGroup + (1|id),
  465. family=poisson,
  466. data = EmpLesiontibbleLong,
  467. na.action=na.exclude)
  468. summary(model3_fit)
  469. # Positive Affect Word Used Analysis (reported in paper)
  470. model4_fit <- glmer(formula = posaffectUsed ~ 1 + Choice*lesionGroup + (1|id),
  471. family=binomial,
  472. data = EmpLesiontibbleLong,
  473. na.action=na.exclude)
  474. summary(model4_fit)
  475. ## Negative Affect Word Count Analysis (not reported in paper)
  476. model5_fit <- glmer(formula = negaffectWordsCount ~ 1 + Choice*lesionGroup + (1|id),
  477. family=poisson,
  478. data = EmpLesiontibbleLong,
  479. na.action=na.exclude)
  480. summary(model5_fit)
  481. # Negative Affect Word Used Analysis (reported in paper)
  482. model6_fit <- glmer(formula = negaffectUsed ~ 1 + Choice*lesionGroup + (1|id),
  483. family=binomial,
  484. data = EmpLesiontibbleLong,
  485. na.action=na.exclude)
  486. summary(model6_fit)
  487. ## Combined Affect Word Count Analysis (not reported in paper)
  488. model7_fit <- glmer(formula = combinedaffectWordsCount ~ 1 + Choice*lesionGroup + (1|id),
  489. family=poisson,
  490. data = EmpLesiontibbleLong,
  491. na.action=na.exclude)
  492. summary(model7_fit)
  493. # Combined Affect Word Used Analysis (reported in paper)
  494. model8_fit <- glmer(formula = combinedaffectUsed ~ 1 + Choice*lesionGroup + (1|id),
  495. family=binomial,
  496. data = EmpLesiontibbleLong,
  497. na.action=na.exclude)
  498. summary(model8_fit)
  499. #### Save Environment ####
  500. save.image('REnvironment_EmpathyChoiceAmygdalaLesions_02.02.2026.RData')
  501. #### Count Words ####
  502. # Count number of words written by participant and choice #
  503. EmpLesiontibbleWide <- EmpLesiontibbleLong %>%
  504. dplyr::group_by(id, Choice,lesionGroup) %>%
  505. summarise(numWordsM = mean(numWords), numWordsSD = sd(numWords),
  506. affectWordsM = mean(affectWordsCount), affectWordsSD = sd(affectWordsCount),
  507. affectUsedM = mean(affectUsed), affectUsedSD = sd(affectUsed),
  508. posaffectWordsCountM = mean(posaffectWordsCount), posaffectWordsCountSD = sd(posaffectWordsCount),
  509. negaffectWordsCountM = mean(negaffectWordsCount), negaffectWordsCountSD = sd(negaffectWordsCount),
  510. affectUsedSUM = sum(affectUsed))
  511. # Collapse number of words written by
  512. EmpLesiontibbleWideR <- EmpLesiontibbleLong %>%
  513. dplyr::group_by(id, Choice,lesionGroup) %>%
  514. summarise(nAffectWord=sum(affectWordsCount>0),nposAffect=sum(posaffectWordsCount>0),
  515. nnegAffect=sum(negaffectWordsCount>0))
  516. EmpLesiontibbleWideR$propAffect <- EmpLesiontibbleWideR$nAffectWord/40
  517. EmpLesiontibbleWideR$propposAffect <- EmpLesiontibbleWideR$nposAffect/40
  518. EmpLesiontibbleWideR$propnegAffect <- EmpLesiontibbleWideR$nnegAffect/40
  519. EmpLesiontibbleWideR2 <- EmpLesiontibbleWideR %>%
  520. dplyr::group_by(Choice,lesionGroup) %>%
  521. summarise(meanAffect = mean(propAffect), sdAffect = sd(propAffect),
  522. meanposAffect = mean(propposAffect), sdposAffect = sd(propposAffect),
  523. meannegAffect = mean(propnegAffect), sdnegAffect = sd(propnegAffect))
  524. #### Supplemental Number of Words Analyses ####
  525. require(lme4)
  526. require(nlme)
  527. require(lmerTest)
  528. EmpLesiontibbleLongAmyg <- EmpLesiontibbleLong %>%
  529. filter(lesionGroup == 1)
  530. EmpLesiontibbleLongBDC <- EmpLesiontibbleLong %>%
  531. filter(lesionGroup == 3)
  532. EmpLesiontibbleLongHC <- EmpLesiontibbleLong %>%
  533. filter(lesionGroup == 4)
  534. lm1 <- lmer(numWords ~ Choice * lesionGroup + (1|id + trial), data=EmpLesiontibbleLong)
  535. summary(lm1)
  536. lm1a <- lmer(numWords ~ Choice + (1|id + trial), data=EmpLesiontibbleLongAmyg)
  537. summary(lm1a)
  538. lm1b <- lmer(numWords ~ Choice + (1|id + trial), data=EmpLesiontibbleLongBDC)
  539. summary(lm1b)
  540. lm1c <- lmer(numWords ~ Choice + (1|id + trial), data=EmpLesiontibbleLongHC)
  541. summary(lm1c)
  542. lm2a <- lmer(numWords ~ Choice + (1|id + trial), data=EmpLesiontibbleLongAmyg)
  543. summary(lm2a)
  544. lm2b <- lmer(numWords ~ Choice + (1|id + trial), data=EmpLesiontibbleLongBDC)
  545. summary(lm2b)
  546. lm2c <- lmer(numWords ~ Choice + (1|id + trial), data=EmpLesiontibbleLongHC)
  547. summary(lm2c)

EmpathyChoiceAmygdalaLesionsRScript_02.02.2026.R, no license · at the source

Overview

Authors: Julian A Scheffer1,2, Justin Reber2, C Daryl Cameron3, Justin S Feinstein2, Daniel Tranel2
  1. Department of Psychology, University of Western Ontario, London, ON N6A 5C2, Canada
  2. Department of Neurology, University of Iowa, Iowa City, IA 52242, USA
  3. Department of Psychology and Rock Ethics Institute, The Pennsylvania State University, University Park, PA 16802, USA
Institutions: Western University (Canada); University of Iowa (United States); Pennsylvania State University (United States)
Journal: Brain : a journal of neurology, volume 149, issue 5, pages 1623-1634
Dates: received 15 May 2025; accepted 18 January 2026; published online 13 March 2026; in print May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1093/brain/awag074 · PMID 41822985 · PMCID PMC13140638 · OpenAlex W7135232430
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), cognitive (subfield)
Keywords: experience sharing, perspective taking, decision-making, free choice, mental effort, amygdala lesions
MeSH: Amygdala*, Brain Injuries*, Empathy*, Motivation*, Adult, Female, Humans, Magnetic Resonance Imaging, Male, Middle Aged (* major topic)
Topic: Psychopathy, Forensic Psychiatry, Sexual Offending (Clinical Psychology, Psychology), according to OpenAlex
Funding: NIH (T32 GM108540); J.A.S.; University of Iowa Graduate College; NIMH (1 P50 MH094258-04A1); NIMH NIH HHS (1 P50 MH094258-04A1); NIH HHS (T32 GM108540)
Citations: not cited yet (Europe PMC); 85 references in the paper
Notices: A comment on this paper has been published (41885173, from Europe PMC)

Abstract

Damage to the amygdala has been linked to impairments in empathy, typically documented as deficits in accurately identifying others’ emotional experiences, especially fear. This has led some to theorize that amygdala dysfunction is a core feature of psychopathy. There is growing evidence, however, that motivation to empathize is distinct from empathic accuracy. Moreover, anecdotal observations in patients with amygdala lesions have noted their tendencies to approach, rather than avoid, empathic encounters with strangers, even when the patients have impairments in empathic accuracy.

We conducted a novel investigation specifically examining empathy motivation in patients with amygdala damage. We used a free-choice paradigm to assess motivation to empathize.

We found that damage to the amygdala was not associated with avoidance of affective or cognitive forms of empathy motivation. Patients with amygdala lesions (n = 21) exhibited similar levels of empathy motivation compared with patients with damage outside the amygdala (n = 22) and healthy individuals with no brain damage (n = 24).

These findings suggest that amygdala damage does not necessarily disrupt the motivation to empathize. A potential implication of the findings is that amygdala damage or dysfunction may not be associated with traits such as callousness, apathy or lack of caring that are often linked to psychopathy.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above.

OSF d4epm

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Languages: R (1), SPSS (1)
Size: 8 files, 2 scripts
Software Heritage: not checked
Found in: “Data availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: lme4 (1 file), lmerTest (1 file), nlme (1 file), tidyverse (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
  • 28 September 2026: the link answers (HTTP 200)
2 files
At the source: osf.io/d4epm

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;
  • 2 scripts, each with its path and the digest of its content;
  • no match between paragraphs and code yet;
  • 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

Data, syntax and analytic code are available (https://osf.io/d4epm).

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, 28 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 5 authors, 6 keywords, 10 MeSH terms, 6 funders, 67 references, 1 integrity notice.

Cite

This paper

Scheffer, J. A., Reber, J., Cameron, C. D., Feinstein, J. S., & Tranel, D. (2026). Empathy motivation is preserved following amygdala damage. Brain : a journal of neurology, 149(5), 1623-1634. https://doi.org/10.1093/brain/awag074

BibTeX

@article{scheffer2026empathy,
author = {Scheffer, Julian A and Reber, Justin and Cameron, C Daryl and Feinstein, Justin S and Tranel, Daniel},
title = {{Empathy motivation is preserved following amygdala damage}},
journal = {Brain : a journal of neurology},
year = {2026},
month = may,
volume = {149},
number = {5},
pages = {1623--1634},
publisher = {Oxford University Press},
issn = {0006-8950},
doi = {10.1093/brain/awag074},
url = {https://doi.org/10.1093/brain/awag074},
pmid = {41822985},
pmcid = {PMC13140638}
}

RIS

TY - JOUR
AU - Scheffer, Julian A
AU - Reber, Justin
AU - Cameron, C Daryl
AU - Feinstein, Justin S
AU - Tranel, Daniel
TI - Empathy motivation is preserved following amygdala damage
T2 - Brain : a journal of neurology
J2 - Brain
PY - 2026
DA - 2026/05/01
VL - 149
IS - 5
SP - 1623
EP - 1634
SN - 0006-8950
PB - Oxford University Press
DO - 10.1093/brain/awag074
UR - https://doi.org/10.1093/brain/awag074
LA - en
ER -

CSL-JSON

{
"id": "10.1093/brain/awag074",
"type": "article-journal",
"title": "Empathy motivation is preserved following amygdala damage",
"container-title": "Brain : a journal of neurology",
"author": [
{
"family": "Scheffer",
"given": "Julian A"
},
{
"family": "Reber",
"given": "Justin"
},
{
"family": "Cameron",
"given": "C Daryl"
},
{
"family": "Feinstein",
"given": "Justin S"
},
{
"family": "Tranel",
"given": "Daniel"
}
],
"container-title-short": "Brain",
"volume": "149",
"issue": "5",
"page": "1623-1634",
"DOI": "10.1093/brain/awag074",
"PMID": "41822985",
"PMCID": "PMC13140638",
"ISSN": "0006-8950",
"publisher": "Oxford University Press",
"URL": "https://doi.org/10.1093/brain/awag074",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
1
]
]
}
}

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.3758/s13415-026-01442-0 [code]
Empathy for pain persists across live two-way video interactions and viewing of prerecorded videos.
Journal: Cognitive, affective & behavioral neuroscience
In common: lmerTest, lme4, tidyverse, cognitive, 2 references
[2] doi:10.1038/s41467-026-71415-x [code]
Regional BOLD variability reflects microstructural maturation and neuronal ensheathment in the preterm infant cortex.
Journal: Nature communications
In common: nlme, lmerTest, lme4, 1 other tool, 1 reference
[3] doi:10.1007/s00426-026-02311-8 [code]
The behavioral evidence of processing congruences and incongruences between Self- and Other-perspective-related representations during both perspective judgments.
Journal: Psychological research
In common: nlme, lmerTest, lme4, 1 other tool, cognitive
[4] doi:10.1016/j.isci.2026.116747 [code]
Age and loneliness relate to reduced trust learning and alterations in amygdala function.
Journal: iScience
In common: nlme, lmerTest, lme4, 1 other tool, cognitive
[5] doi:10.1038/s41598-026-41129-7 [code]
Non-linear relationships between auditory mismatch responses and the inharmonicity of complex sounds.
Journal: Scientific reports
In common: nlme, lmerTest, lme4, 1 other tool, cognitive
[6] doi:10.1111/psyp.70265 [code]
Neurocognitive Dynamics of Translating Information From a Spatial Map Into Action.
Journal: Psychophysiology
In common: nlme, lmerTest, lme4, 1 other tool, cognitive
[7] doi:10.1038/s41467-026-76132-z [code]
ATP13A4 gates extracellular polyamine levels to control excitatory synaptogenesis.
Journal: Nature communications
In common: nlme, lmerTest, lme4, 1 other tool
[8] doi:10.1038/s41380-026-03694-1 [code]
Targeting cortico-striatal-amygdalar networks via theta-band frontoparietal synchronization in opioid use disorder: a randomized tACS-fMRI Trial.
Journal: Molecular psychiatry
In common: nlme, lmerTest, lme4, 1 other tool
[9] doi:10.1073/pnas.2606871123 [code]
Oxytocin modulates the neurocomputational mechanisms engaged in learning rank relationships in social networks.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: nlme, lmerTest, lme4, 1 other tool
[10] 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. Clinical
In common: nlme, lmerTest, lme4, 1 other tool

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.

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.