OSCR

Brain structure and function in Homo naledi.

Code ↔ Paper

4 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 4 matches
  1. [1] § Materials and methods › Multiple reconstructions ↔ Lesedi_Endocast_R_publication.R, lines 1–79 · score 0.86 · fixLMtps, missing surfaces, missing landmarks, LES1 reconstruction, fossil hominins, declared
  2. [2] § Materials and methods › Comparative sample ↔ Lesedi_Endocast_R_publication.R, lines 1–79 · score 0.77 · KNM WT, recent humans, KNM ER, fossil hominins, human adults, LES1 endocast
  3. [3] § Results ↔ Lesedi_Endocast_R_publication.R, lines 201–251 · score 0.70 · KNM WT, adult sample, full human, KNM ER, Homo erectus, OH
  4. [4] § Materials and methods › Multiple reconstructions ↔ Lesedi_Endocast_R_publication.R, lines 129–199 · score 0.62 · meshDist, Procrustes distance, morphotypes, pairwise, UPGMA, modern human

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 · 291 lines · 14 KB · CC-BY-4.0 · 4 matches

  1. # R code for "Brain structure and function in Homo naledi"
  2. # (Cofran et al., Brain Structure & Function)
  3. # Estimate missing landmarks for LES1 endocast
  4. # geometric morphometric analyses
  5. # comparing LES1 to recent humans and fossil hominins
  6. # First, download landmark data Neubauer et al. 2018 dataset: < https://edmond.mpg.de/file.xhtml?fileId=102415&version=1.0 >
  7. # Also download "Lesedi_Virtual_Endocast.csv" from Zenodo. DOI: 10.5281/zenodo.20136569
  8. # Save these in the default working directory
  9. library(geomorph); library(Morpho); library(abind); library(Rvcg); library(Arothron); library(dendextend)
  10. #################### #########################
  11. # Landmark data input
  12. #################### #########################
  13. #----Read and prep Neubauer et al. 2018 landmark data
  14. d <- read.table('NeubauerEtAl2018-ER42700-endolmdata.txt', header=T)
  15. # extract individual IDs and convert landmarks array
  16. id <- d[,1]
  17. dl <- d[,2:2806]
  18. dd <- matrix(t(dl), ncol=3, byrow=T)
  19. da <- arrayspecs(dd, 935, 3)
  20. # Omit non-adult humans and extra fossil reconstructions
  21. da <- da[,,c(7:98)]
  22. id <- id[7:98]
  23. #----Read and symmetrize Sts 5 & LES1 landmark data
  24. e <- read.csv("LES1_Sts5_endocast_landmarks_Cofran&al2026.csv")
  25. ea <- arrayspecs(as.matrix(e[,3:5]), 935, 3)
  26. eid <- unique(e[,1])
  27. # symmetrize - vectors for L + R then symmetrize()
  28. l <- c(9:18,64:101,140:537); r <- c(19:28,102:139, 538:935)
  29. pairedLM <- cbind(l,r)
  30. ea <- symmetrize(ea, pairedLM)
  31. #----Combine and cull landmark datasets to only human adults and fossils
  32. all <- abind(da,ea)
  33. ids <- c(id,eid)
  34. # vectorize fossil and human numbers for subsequent analysis and plots
  35. f <- c(1,82:94)
  36. h <- c(2:81)
  37. ######## ###########
  38. # Multiple LES1 reconstructions (missing LM estimation)
  39. ######## ###########
  40. #----Specify the landmarks missing from the mirrored LES1 endocast
  41. lmf <- c(1,4:15,17:25,27:29) # missing fixed
  42. lmc <- c(45:72,77,85:91,100:110,115,123:129,138:139) # missing curve
  43. # missing surface, left & right sides separate
  44. lmsl <- c(150,151,152,153,154,156,157,158,204,209,210,211,214,217,218,220,221,225,229,237,238,239,240,245,246,247,247,248,249,250,251,252,254,259,263,264,265,267,270,273,283,284,296,299,300,306,312,313,317,318,322,352,353,356,358,360,365,381,382,383,385,386,387,388,389,390,393,394,414,424,426,430,431,432,433,434,435,436,439,440,441,442,443,444,444,445,446,447,447,448,449,450,452,455,456,457,458,459,460,461,462,463,464,465,466,468,469,470,471,473,475,479,480,482,483,484,485,488,489,490,491,495,498,499,500,501,502,503,505,506,508,510,513,514,516,517,537)
  45. lmsr <- c(lmsl+398)
  46. #----declare missing data as NA
  47. all[c(lmf,lmc,lmsl,lmsr),,f[14]] <- NA
  48. #----estimate missing LMs from fossils
  49. les.fm <- fixLMtps(all[,,f],weight=T)$out[,,14] # all fossils, weighted by PD
  50. les.sts <- fixLMtps(all[,,f[13:14]])$out[,,2] # Sts 5 reference
  51. les.1470 <- fixLMtps(all[,,f[c(11,14)]])$out[,,2] # KNM-ER 1470 reference
  52. les.1813 <- fixLMtps(all[,,f[c(10,14)]])$out[,,2] # KNM-ER 1813 reference
  53. les.4270 <- fixLMtps(all[,,f[c(1,14)]])$out[,,2] # KNM-ER 42700 reference
  54. les.3733 <- fixLMtps(all[,,f[c(2,14)]])$out[,,2] # KNM-ER 3733 reference
  55. les.3883 <- fixLMtps(all[,,f[c(3,14)]])$out[,,2] # KNM-ER 3883 reference
  56. les.wt15 <- fixLMtps(all[,,f[c(4,14)]])$out[,,2] # KNM-WT 15000 reference
  57. les.oh9 <- fixLMtps(all[,,f[c(5,14)]])$out[,,2] # OH9 reference
  58. les.ng14 <- fixLMtps(all[,,f[c(6,14)]])$out[,,2] # Ngandong 14 reference
  59. les.ngaw <- fixLMtps(all[,,f[c(7,14)]])$out[,,2] # Ngawi 1 reference
  60. les.sm3 <- fixLMtps(all[,,f[c(8,14)]])$out[,,2] # Sambungmacan 3 reference
  61. les.sg2 <- fixLMtps(all[,,f[c(9,14)]])$out[,,2] # Sangiran 2 reference
  62. les.mojo <- fixLMtps(all[,,f[c(12,14)]])$out[,,2] # Mojokerto reference
  63. # Estimate missing LMs from humans
  64. les.hs <- fixLMtps(all[,,c(h,f[14])],weight=T)$out[,,81] # all human adults as reference
  65. ################ #########################
  66. # Shape analyses & Figures 5-7
  67. ################ #########################
  68. #----Procrustes alignment of 80 humans, 13 fossils, 15 recons of LES1 in order of ids[f]
  69. gpa <- gpagen(abind(all[,,1:93],les.fm,les.4270,les.3733,les.3883, les.wt15,les.oh9,les.ng14,les.ngaw,les.sm3,les.sg2,les.1813,les.1470,les.mojo,les.sts,les.hs))
  70. #------------------------------------------------------
  71. # Compare Procrustes distance bw groups (FIG 5, left)
  72. #------------------------------------------------------
  73. # Function to calc Procrustes distance between pairs of individuals
  74. PD <- function(x,y){sqrt(sum((gpa$coords[,,x]-gpa$coords[,,y])^2))}
  75. # Adult humans first
  76. pdh <- NA
  77. for (i in 1:5000) {
  78. x <- sample(h,2, replace=F) # randomly pick 2
  79. pdh[i] <- PD(x[1],x[2])
  80. }
  81. # Homo erectus adults (excluding Mojo & ER 42700)
  82. pde <- NA; e1 <- NA; e2 <- NA
  83. for (i in 1:1000) {
  84. ee <- sample(f[2:9], 2, replace=F); e1[i] <- min(ee); e2[i] <- max(ee)
  85. pde[i] <- PD(e1[i],e2[i])
  86. }
  87. pex <- data.frame(unique(cbind(ids[e1],ids[e2],pde)))
  88. # Lesedi (fossil mean recon.) vs. other fossils
  89. pdi <- NA #; pdi.2 <- NA
  90. for (i in 1:13) {
  91. pdi[i] <- PD(94,f[i])
  92. #pdi.2[i] <- PD(94+i,f[i])
  93. }
  94. # pdi.2 compares fossils with fossil-specific LES1 recons
  95. # Results are similar whether fossil-specific or avg. recon,
  96. # but Mojokerto- and 42700-specific PDs are much lower
  97. # Lesedi reconstructions compared to one another
  98. pdl <- NA
  99. for (i in 1:500) {
  100. x <- sample(c(95:108),2)
  101. pdl[i] <- PD(x[1],x[2])
  102. }
  103. pdl <- unique(pdl)
  104. #----------------------------------------------------
  105. # Hierarchical cluster analysis (UPGMA, FIG 5, right)
  106. #----------------------------------------------------
  107. # cluster dendrogram with human average and fossil adults only
  108. clusts <- c(18,f[c(2:11,13:14)]) # individual 18 closest to sample avg
  109. x <- two.d.array(gpa$coords[,,clusts])
  110. row.names(x) <- ids[clusts]
  111. endro <- as.dendrogram(hclust(dist(x), method="average"))
  112. labels_colors(endro) <- c(cola[c(5,3,1,4,2)],"deeppink",cola[rep(2,7)])
  113. # FIGURE 5
  114. # Plot comparison of PD, labeling fossil comparisons
  115. # 1=human, 2=erectus, 3=ER 1813, 4=ER 1470, 5=Sts 5, 6=LES1
  116. groups <- c(2, rep(1,80), rep(2,8), 3, 4, 2, 5, 6)
  117. cola <- c(hcl.colors(5,"Zissou"), "deeppink")
  118. pchs <- c(15:18,1,8)
  119. par(mar=c(3,4.5,1,2), mfrow=c(1,2))
  120. boxplot(pdh, pde, pdi, ylab="Procrustes distance", border=c(1,1,0), col=0, names=c("Modern humans", "Homo erectus","LES1"), lty=1, cex=0.5, lwd=c(2,2,2), range=0, cex.lab=1.5, cex.axis=1, main="Pairwise Shape Differences", ylim=c(min(pdl), max(pdi)))
  121. points(rnorm(91,3,0.01), pdl, col="deeppink", cex=0.5) # LES1 recons
  122. gx <- rnorm(13,3,0.15)
  123. points(gx, pdi, col=cola[groups[f]], cex=4, pch=pchs[groups[f]])
  124. text(gx,pdi, labels=seq(1:13))
  125. #text(rnorm(13,3,0.05), pdi, labels=ids[f[1:13]], cex=0.8, col=cola[groups[f]]) # color-coded fossil ID labels
  126. par(mar=c(10,2,2,0))
  127. plot(as.dendrogram(endro), lwd=2, main="UPGMA cluster analysis", , nodePar = list(lab.cex = 1, pch = NA))
  128. #-------------------------------------------------
  129. # Compare LES1 and Aust/Homo morphotypes (FIG 6)
  130. #-------------------------------------------------
  131. # Make Human and Homo erectus group averages
  132. havg <- mshape(gpa$coords[,,h]) # human adult average
  133. ham <- mshape(gpa$coords[,,f[2:9]]) # all erectus
  134. # Make triangle meshes for morphotypes
  135. lem <- vcgBallPivoting(mesh3d(gpa$coords[,,94])) # LES1
  136. hamm <- vcgBallPivoting(mesh3d(ham)) # erectus average
  137. hhmm <- vcgBallPivoting(mesh3d(gpa$coords[,,f[10]])) # ER 1813
  138. hrmm <- vcgBallPivoting(mesh3d(gpa$coords[,,f[11]])) # ER 1470
  139. amm <- vcgBallPivoting(mesh3d(gpa$coords[,,93])) # sts5
  140. hsm <- vcgBallPivoting(mesh3d(havg)) # human average
  141. cold <- c(hcl.colors(3,"Cividis")[1],"white",hcl.colors(3,"Cividis")[3])
  142. les.st5 <- meshDist(lem,amm, from=-0.00623, to=0.00623, rampcolors = cold)
  143. les.hab <- meshDist(lem,hhmm, from=-0.00623, to=0.00623, rampcolors = cold)
  144. les.rud <- meshDist(lem,hrmm, from=-0.00623, to=0.00623, rampcolors = cold)
  145. les.ere <- meshDist(lem,hamm, from=-0.00623, to=0.00623, rampcolors = cold)
  146. les.hsa <- meshDist(lem,hsm, from=-0.00623, to=0.00623, rampcolors = cold)
  147. mfrow3d(2,5, sharedMouse=T)
  148. shade3d(lem, col='whitesmoke', specular="black")
  149. shade3d(amm, col=cola[5], alpha=0.4, specular="black")
  150. next3d()
  151. shade3d(lem, col='whitesmoke', specular="black")
  152. shade3d(hhmm, col=cola[3], alpha=0.4, specular="black")
  153. next3d()
  154. shade3d(lem, col='whitesmoke', specular="black")
  155. shade3d(hrmm, col=cola[4], alpha=0.4, specular="black")
  156. next3d()
  157. shade3d(lem, col='whitesmoke', specular="black")
  158. shade3d(hamm, col=cola[2], alpha=0.4, specular="black")
  159. next3d()
  160. shade3d(lem, col='whitesmoke', specular="black")
  161. shade3d(hsm, col=cola[1], alpha=0.4, specular="black")
  162. next3d()
  163. shade3d(lem, col='whitesmoke', specular="black")
  164. spheres3d(gpa$coords[,,95], col=les.st5$cols, r=0.0015, specular="black")
  165. next3d()
  166. shade3d(lem, col='whitesmoke', specular="black")
  167. spheres3d(gpa$coords[,,95], col=les.hab$cols, r=0.0015, specular="black")
  168. next3d()
  169. shade3d(lem, col='whitesmoke', specular="black")
  170. spheres3d(gpa$coords[,,95], col=les.rud$cols, r=0.0015, specular="black")
  171. next3d()
  172. shade3d(lem, col='whitesmoke', specular="black")
  173. spheres3d(gpa$coords[,,95], col=les.ere$cols, r=0.0015, specular="black")
  174. next3d()
  175. shade3d(lem, col='whitesmoke', specular="black")
  176. spheres3d(gpa$coords[,,95], col=les.hsa$cols, r=0.0015, specular="black")
  177. # (can also color-code triangles rather than landmarks if preferred)
  178. #mfrow3d(1,5, sharedMouse=T)
  179. # shade3d(les.st5$colMesh, specular="black"); next3d()
  180. # shade3d(les.hab$colMesh, specular="black"); next3d()
  181. # shade3d(les.rud$colMesh, specular="black"); next3d()
  182. # shade3d(les.ere$colMesh, specular="black"); next3d()
  183. # shade3d(les.hsa$colMesh, specular="black")
  184. #-----------------------------------------------------
  185. # Compare cerebrum vs. cerebellum (PCF) size (FIG 7)
  186. #-----------------------------------------------------
  187. # PCF landmarks
  188. c1 <- c(6,7,15,17,18,25,27,28,29,55:62,64:69,91:101,102:107,129:139)
  189. c2 <- c(111,144,308,374:376,381,95,382,129,338,94,314,299,96,155,315,333,335,105,332,312,104,97,316,113,310,313,98,309,324,105,312,332,339,328,337,103,168,109,336,334,102,320,329,327,108,331,295,99,323,319,317,291,101,322,321,100,330,157,318,124,326,107,106,325,311,292,214,300,294,112,293,301)+139
  190. c3 <- c2+398
  191. pcf <- sort(unique(c(c1,c2,c3)))
  192. # cerebrum GPA
  193. cgpa <- gpagen(abind(all[-pcf,,1:93],les.fm[-pcf,]))
  194. # cerebellum GPA
  195. pgpa <- gpagen(abind(all[pcf,,1:93],les.fm[pcf,]))
  196. par(mar=c(4.5,4.5,1,1))
  197. plot(log10(cgpa$Csize)~log10(pgpa$Csize), col=cola[groups], cex=2, pch=pchs[groups], xlab="log(Cerebellum size)", ylab="log(Cerebrum size)", cex.lab=1.25)
  198. text(log10(cgpa$Csize)[94]~log10(pgpa$Csize)[94], labels="H. naledi", cex=2, pos=4, col=cola[6])
  199. legend('topleft',legend=c("Modern human","Homo erectus","KNM-ER 1813","KNM-ER 1470","Australopithecus"), text.col=cola, bty='n', pch=(pchs), col=(cola), cex=1.25)
  200. abline(lm(log10(cgpa$Csize[h])~log10(pgpa$Csize[h])), col=cola[1], lty=2)
  201. #shade3d(vcgBallPivoting(mesh3d(les.fm)), col="whitesmoke")
  202. spheres3d(les.fm[-pcf,],r=1.5,col="pink")
  203. spheres3d(les.fm[pcf,],r=1.5,col="deeppink")
  204. #################### ########################
  205. # SUPPORTING INFORMATION
  206. #################### ########################
  207. #----------------------------------------------------------
  208. # Figure S1: Cluster dendrogram with full human adult sample
  209. #----------------------------------------------------------
  210. clusts <- c(h,f[c(2:11,13:14)])
  211. x <- two.d.array(gpa$coords[,,clusts])
  212. #row.names(x) <- ids[clusts] # original IDs
  213. # row.names(x)[17] <- "HumanAdult"
  214. row.names(x) <- c(rep("Modern human", 80), "KNM-ER 3733", "KNM-ER 3883", "KNM-WT 15000", "OH 9", "Ngandong 14", "Ngawi", "Sambungmacan 3", "Sangiran 2", "KNM-ER 1813", "KNM-ER 1470", "Sts 5", "LES1")
  215. endro <- as.dendrogram(hclust(dist(x), method="average"))
  216. labels_colors(endro) <- c(cola[c(5, rep(1, 80), 3, 2,2,2,2, 4, 2)],"deeppink",cola[rep(2,3)])
  217. labels_cex(endro) <- 0.75#c(1, rep(0.75,80), rep(1,7))
  218. par(mar=c(6,3,2,0))
  219. plot(as.dendrogram(endro), main="UPGMA cluster analysis")
  220. #--------------------------------------------
  221. # Figure S2: PCA of fossil sample
  222. #--------------------------------------------
  223. pca <- gm.prcomp(gpa$coords[,,c(1:94)])
  224. # includes all fossils + LES1 fossil average recon (les.fm)
  225. par(mfrow=c(1,1), mar=c(4,4,1,1))
  226. plot(pca, col = cola[groups], pch=pchs[groups], cex=c(2, rep(1.5,80), rep(2,13)), lty=0)
  227. # text(pca$x[f[-c(10:11,13:14)],1:2], labels=seq(1:10), cex=1, col='white')
  228. text(pca$x[f[-c(10:11,13:14)],1:2], labels=ids[f[-c(10:11,13:14)]], cex=0.5, pos=c(1,4,4,3,2,1,1,1,1,3))
  229. legend('topleft', pch=c(pchs,1), col=c(cola,"deeppink"), text.col=c(cola,"deeppink"), legend=c("Modern human", "H. erectus", "H. habilis (ER1813)", "H. rudolfensis (ER1470)", "A. africanus (Sts 5)", "LES1 average"), bty='n')
  230. # PC shape warps
  231. pcshape <- pca$shapes
  232. avg <- vcgBallPivoting(mesh3d(mshape(gpa$coords))) # sample average triangle mesh
  233. pc1min <- pcshape$shapes.comp1$min
  234. pc1max <- pcshape$shapes.comp1$max
  235. pc2min <- pcshape$shapes.comp2$min
  236. pc2max <- pcshape$shapes.comp2$max
  237. min1 <- warpRefMesh(avg, mshape(gpa$coords), pc1min)
  238. max1 <- warpRefMesh(avg, mshape(gpa$coords), pc1max)
  239. min2 <- warpRefMesh(avg, mshape(gpa$coords), pc2min)
  240. max2 <- warpRefMesh(avg, mshape(gpa$coords), pc2max)
  241. mfrow3d(2,2, sharedMouse=T)
  242. shade3d(min1, col="white", specular='black'); next3d()
  243. shade3d(max1, col='darkgrey', specular='black'); next3d()
  244. shade3d(min2, col="white", specular='black'); next3d()
  245. shade3d(max2, col='darkgrey', specular='black')
  246. #################### #####################
  247. # Just for fun, LES1 vs human average
  248. # No size scaling and aligned by basicranium fixed and curve LMs
  249. #################### #####################
  250. # just for fun, make a pretty picture of
  251. bgpa <- procSym(abind(all[,,1:93], les.fm), use.lm=c(1:2,5:29,54:139), CSinit=F, scale=F)
  252. shade3d(vcgBallPivoting(mesh3d(mshape(bgpa$rotated[,,h]))), col='whitesmoke', alpha=0.2, specular='black')
  253. shade3d(vcgBallPivoting(mesh3d(bgpa$rotated[,,94]), radius=0), col="#D7FF04", alpha=1, specular='black')

Lesedi_Endocast_R_publication.R, under CC-BY-4.0 · at the source

Overview

  1. Anthropology Department, Vassar College,Poughkeepsie, New York USA
  2. Department of Biology, University of Indianapolis,Indianapolis, Indiana USA
  3. Department of Anthropology, University of Wisconsin-Madison,Madison, Wisconsin USA
Institutions: Vassar College (United States); University of Indianapolis (United States); University of Wisconsin–Madison (United States)
Journal: Brain structure & function, volume 231, issue 6, article 89
Dates: received 16 March 2026; accepted 13 May 2026; published online 15 June 2026; in print 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1007/s00429-026-03129-1 · PMID 42295457 · PMCID PMC13269317 · OpenAlex W7164831474
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: structural MRI / diffusion (modality), human (organism), cognitive (subfield)
Keywords: Endocast, Geometric morphometrics, Cognition, Life history, Cerebellum
MeSH: Brain*, Hominidae*, Animals, Biological Evolution, Fossils, Humans, Skull (* major topic)
Topic: Pleistocene-Era Hominins and Archaeology (Anthropology, Social Sciences), according to OpenAlex
Funding: Jane Rosenthal Helmerdinger Fund from Vassar College; Anne McNiff Tatlock ‘61 Fund from Vassar College
Citations: not cited yet (Europe PMC); 185 references in the paper

Abstract

Endocasts are casts of the internal surface of skull bones created by the brain and surrounding tissues. These fossil phantoms provide the most direct evidence of the brains of extinct organisms, and are one of the many puzzle pieces that help paleoneurologists reconstruct brain evolution. The recent discovery of a small-brained, recently-extinct human species, Homo naledi, creates a timely opportunity to review what endocasts can and cannot tell us about ancient brains. We first review published evidence about the brain and behavior of H. naledi, including the suggestion that the species may have practiced mortuary behaviors over 230,000 years ago. We next use geometric morphometric methods to reconstruct and the most complete H. naledi endocast and compare it to those of modern humans and Pleistocene hominins. Our results corroborate previous evidence that the brain of H. naledi presents a unique combination of ancestral and modern human-like characteristics, specifically displaying a derived frontal lobe while retaining ancestral sizes, morphology, and cerebro-cerebellar proportions. Finally, we discuss these results in the context of recent paleoanthropological data, advances in neuroimaging, and theoretical frameworks linking brain morphology, structure, and function.

Supplementary Information: The online version contains supplementary material available at 10.1007/s00429-026-03129-1.

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 4 matches between paragraphs and lines of code.

Zenodo 20136569

License: CC-BY-4.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Languages: R (1)
Size: 2 files, 1 script
Software Heritage: not checked
Found in: “Data availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
1 file

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;
  • 1 script, each with its path and the digest of its content;
  • 4 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

We used landmark data from Neubauer, Simon, 2018, “KNM-ER 42700: endocranial data”, accessible at https://doi.org/10.17617/3.18. Landmark data and R code novel to this study are available in the Zenodo repository, accessible at https://zenodo.org/records/20136569.

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 2, 28 September 2026

  • Publisher: n/a → Springer Science+Business Media

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 5 keywords, 7 MeSH terms, 2 funders, 174 references.

Cite

This paper

Cofran, Z., Hurst, S., & Hawks, J. (2026). Brain structure and function in Homo naledi. Brain structure & function, 231(6), 89. https://doi.org/10.1007/s00429-026-03129-1

BibTeX

@article{cofran2026brain,
author = {Cofran, Zachary and Hurst, Shawn and Hawks, John},
title = {{Brain structure and function in Homo naledi}},
journal = {Brain structure \& function},
year = {2026},
month = jun,
volume = {231},
number = {6},
pages = {89},
publisher = {Springer Science+Business Media},
issn = {1863-2653},
doi = {10.1007/s00429-026-03129-1},
url = {https://doi.org/10.1007/s00429-026-03129-1},
pmid = {42295457},
pmcid = {PMC13269317}
}

RIS

TY - JOUR
AU - Cofran, Zachary
AU - Hurst, Shawn
AU - Hawks, John
TI - Brain structure and function in Homo naledi
T2 - Brain structure & function
J2 - Brain Struct Funct
PY - 2026
DA - 2026/06/15
VL - 231
IS - 6
SP - 89
SN - 1863-2653
PB - Springer Science+Business Media
DO - 10.1007/s00429-026-03129-1
UR - https://doi.org/10.1007/s00429-026-03129-1
LA - en
ER -

CSL-JSON

{
"id": "10.1007/s00429-026-03129-1",
"type": "article-journal",
"title": "Brain structure and function in Homo naledi",
"container-title": "Brain structure & function",
"author": [
{
"family": "Cofran",
"given": "Zachary"
},
{
"family": "Hurst",
"given": "Shawn"
},
{
"family": "Hawks",
"given": "John"
}
],
"container-title-short": "Brain Struct Funct",
"volume": "231",
"issue": "6",
"page": "89",
"DOI": "10.1007/s00429-026-03129-1",
"PMID": "42295457",
"PMCID": "PMC13269317",
"ISSN": "1863-2653",
"publisher": "Springer Science+Business Media",
"URL": "https://doi.org/10.1007/s00429-026-03129-1",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
15
]
]
}
}

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.1038/s41467-026-75582-9 [code]
Biophysical modeling of anatomically realistic prenatal cortical folding development.
Journal: Nature communications
In common: structural MRI / diffusion, 7 references
[2] doi:10.1038/s41467-026-74739-w
Evolutionary drivers of encephalization and facial reduction in the genus Homo.
Journal: Nature communications
In common: 6 references
[3] doi:10.1016/j.isci.2026.115766 [code]
RNA-binding protein family diversification correlates with neural complexity across metazoan evolution.
Journal: iScience
In common: 3 references
[4] doi:10.1002/hipo.70124 [code]
Association Between Anterior Hippocampal Gyrification and Episodic Memory Performance in Neurotypical Young Adults.
Journal: Hippocampus
In common: structural MRI / diffusion, cognitive, 2 references
[5] doi:10.1016/j.ynirp.2026.100360 [code]
CIVET-Chimp: An automated pipeline for MRI-based cortical surface extraction in chimpanzees.
Journal: Neuroimage. Reports
In common: structural MRI / diffusion, 2 references
[6] doi:10.1186/s12888-026-08071-4 [code]
Cerebellar gray matter volume difference in first-episode bipolar and unipolar depression.
Journal: BMC psychiatry
In common: structural MRI / diffusion, 2 references
[7] doi:10.1093/molbev/msag157 [code]
Severe bottleneck of ancient Homo populations: insights from computational modeling and relevant fossil evidence.
Journal: Molecular biology and evolution
In common: 2 references
[8] doi:10.1073/pnas.2610646123
GPIHBP1 on oligodendrocytes binds lipoprotein lipase within the human brain.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: 2 references
[9] doi:10.1371/journal.pbio.3003773
An anatomical and connectivity atlas of the tree shrew brain to bridge rodent and primate neuroanatomy.
Journal: PLoS biology
In common: structural MRI / diffusion, 2 references
[10] doi:10.1038/s41467-026-75661-x [code]
A neural signature of sleep deprivation in the human brain.
Journal: Nature communications
In common: cognitive, 2 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.

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.