OSCR

Dorso-Ventral and Night-Day Regulation of Extracellular K<sup>+</sup> Dynamics in Mouse Hippocampal Astrocytes.

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] § Methods › Synaptic Stimulation and Field Potential Recordings ↔ Rise_time_R.R, lines 168–213 · score 0.61 · 25–75 %, rise, Master, intensity
  2. [2] § Methods › Isolation of Kir4.1 Currents ↔ Astrocyte_MFA_Barium_R.R, lines 1–41 · score 0.59 · BaCl2, patch clamp, MFA, astrocyte, fitting
  3. [3] § Results › Extracellular K+ Dynamics Exhibit Regional and Circadian Specificity › Ventral Hippocampus Accumulates [K+]o More Rapidly and to Greater Amplitudes, Particularly at Early Light Phase ↔ Rise_time_R.R, lines 168–213 · score 0.55 · 25–75 %, slope, rise
  4. [4] § Results › Cellular Basis of Regional [K+]o Buffering Differences: A Role for Reduced Kir4.1 Function in Ventral Astrocytes › Reduced Kir4.1‐Mediated Conductance in Ventral Versus Dorsal Hippocampal As ↔ Astrocyte_MFA_Barium_R.R, lines 1–41 · score 0.51 · BaCl2, post hoc, ratio, rectification, slope, patched

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 · 272 lines · 8.6 KB · CC-BY-4.0 · 2 matches

  1. #Rise time assessment Script################################################
  2. #Packages
  3. # Core Data Science & Plotting
  4. library(tidyverse)
  5. # Frequentist Modeling & Distribution Fitting
  6. library(fitdistrplus)
  7. library(car)
  8. library(permuco)
  9. # Bayesian Modeling & Post-Hocs
  10. library(brms)
  11. library(emmeans)
  12. ##########################Loading##########################
  13. Master <- read.csv("Rise_time_Norm.CSV", sep = ",")
  14. #Factor Determination##########################
  15. Master <- data.frame(Master)
  16. Master$Region <- as.factor(Master$Region)
  17. Master$ZT <- as.factor(Master$ZT)
  18. #The values in this data set have been normalized to DH, at ZT3.
  19. #Functions##################################################
  20. #For plots
  21. custom_theme <- function() {
  22. theme_bw() +
  23. theme(
  24. panel.border = element_blank(),
  25. panel.grid.major = element_blank(),
  26. panel.grid.minor = element_blank(),
  27. axis.line = element_line(colour = "black", size = 1),
  28. axis.ticks.x = element_line(size = 1.5, colour = "black"),
  29. axis.text.x = element_text(size = 24, color = "black"),
  30. axis.title.x = element_text(size = 22, colour = "black"),
  31. axis.title.y = element_text(size = 24, color = "black"),
  32. axis.text.y = element_text(size = 24, color = "black"),
  33. axis.ticks.y = element_line(size = 1.5, colour = "black"),
  34. legend.text = element_text(size = 24, color = "black"),
  35. legend.title = element_blank(),
  36. legend.position = "right",
  37. strip.background = element_blank(),
  38. strip.text = element_text(size = 24, face = "bold", color = "black"),
  39. strip.placement = "outside", # NEW: place facet strip outside the plot
  40. panel.spacing = unit(1.5, "lines")
  41. )
  42. }
  43. theme_set(custom_theme())
  44. # Automatically fit and compare multiple distributions
  45. auto_fit <- function(data, dist_names = c("norm", "lnorm", "gamma", "weibull", "exp")) {
  46. fits <- list()
  47. for(dist in dist_names) {
  48. tryCatch({
  49. fits[[dist]] <- fitdist(data, dist)
  50. }, error = function(e) NULL)
  51. }
  52. # Compare AIC
  53. aic_vals <- sapply(fits, function(x) if(!is.null(x)) x$aic else NA)
  54. aic_df <- data.frame(Distribution = names(aic_vals), AIC = aic_vals)
  55. aic_df <- aic_df[order(aic_df$AIC), ]
  56. return(list(best_fit = fits[[aic_df$Distribution[1]]], all_fits = fits, comparison = aic_df))
  57. }
  58. #Omega-squared function
  59. calculate_omega_from_anova <- function(anova_df) {
  60. # Extract values from the ANOVA data frame
  61. SS_effects <- anova_df$SS[1:(nrow(anova_df)-1)] # All but last row (residuals)
  62. df_effects <- anova_df$df[1:(nrow(anova_df)-1)]
  63. SS_residual <- anova_df$SS[nrow(anova_df)]
  64. df_residual <- anova_df$df[nrow(anova_df)]
  65. # Get effect names
  66. effect_names <- rownames(anova_df)[1:(nrow(anova_df)-1)]
  67. # Calculate total sum of squares
  68. SS_total <- sum(SS_effects) + SS_residual
  69. MS_residual <- SS_residual / df_residual
  70. # Calculate omega squared for each effect
  71. omega_squared <- (SS_effects - df_effects * MS_residual) / (SS_total + MS_residual)
  72. # Create results data frame
  73. results <- data.frame(
  74. Effect = effect_names,
  75. OmegaSquared = omega_squared
  76. )
  77. return(results)
  78. }
  79. #Summarizing brm analysis
  80. summarize_significant_effects <- function(model, ci_level = 0.95, digits = 2) {
  81. # Extract fixed effect estimates
  82. fixed_effects <- as.data.frame(fixef(model, probs = c((1 - ci_level)/2, 1 - (1 - ci_level)/2)))
  83. # Rename columns
  84. colnames(fixed_effects)[c(3, 4)] <- c("CI_low", "CI_high")
  85. # Add significance flag as logical (TRUE/FALSE)
  86. fixed_effects$Significant <- sign(fixed_effects$CI_low) == sign(fixed_effects$CI_high)
  87. # Round for readability
  88. fixed_effects <- round(fixed_effects, digits)
  89. return(fixed_effects)
  90. }
  91. # Function to test 2-way ANOVA assumptions
  92. test_anova_assumptions <- function(data, dv, iv1, iv2) {
  93. # Ensure the car package is available for Levene's Test
  94. if (!requireNamespace("car", quietly = TRUE)) {
  95. stop("The 'car' package is required. Please run: install.packages('car')")
  96. }
  97. # 1. Construct the formula
  98. formula_str <- paste(dv, "~", iv1, "*", iv2)
  99. form <- as.formula(formula_str)
  100. # 2. Fit the ANOVA model
  101. model <- aov(form, data = data)
  102. resids <- residuals(model)
  103. cat("\n--- 1. Homogeneity of Variance (Levene's Test) ---\n")
  104. # Tests if variance is equal across all groups
  105. levene <- car::leveneTest(form, data = data)
  106. print(levene)
  107. cat("\n--- 2. Normality of Residuals (Shapiro-Wilk Test) ---\n")
  108. # Tests if the errors are normally distributed
  109. # Note: Shapiro-Wilk is sensitive to large sample sizes
  110. shapiro <- shapiro.test(resids)
  111. print(shapiro)
  112. cat("\n--- 3. Visual Diagnostics ---\n")
  113. # Set up a 1x2 plotting area
  114. old_par <- par(mfrow = c(1, 2))
  115. # Residuals vs Fitted: Look for a random "cloud" (no funnel shapes)
  116. plot(model, which = 1, main = "Residuals vs Fitted")
  117. # Normal Q-Q: Points should follow the diagonal line
  118. plot(model, which = 2, main = "Normal Q-Q Plot")
  119. # Reset plotting parameters
  120. par(old_par)
  121. cat("\nInterpretation Guide:\n")
  122. cat("- Levene's p > 0.05: Assumption met (Equal Variance).\n")
  123. cat("- Shapiro's p > 0.05: Assumption met (Normal Distribution).\n")
  124. }
  125. # Example Usage:
  126. # test_anova_assumptions(data = my_data, dv = "Intensity", iv1 = "Region", iv2 = "Time")
  127. ###########################################################################################
  128. #Variable of interest: Slope = 25%-75% rise time
  129. test_anova_assumptions(data = Master, dv = "Slope", iv1 = "Region", iv2 = "ZT")
  130. #Paramteric Estimation
  131. set.seed(123)
  132. model_1 <- aovperm(Slope ~ Region * ZT, data = Master, np = 10000)
  133. anova <- data.frame(summary(model_1))
  134. # SS df F parametric.P..F. resampled.P..F.
  135. #Region 64.69296 1 16.849288 8.327271e-05 0.0002
  136. #ZT 17.76314 2 2.313206 1.042688e-01 0.1023
  137. #Region:ZT 26.02457 2 3.389051 3.770090e-02 0.0365
  138. #Residuals 380.11118 99 NA NA NA
  139. calculate_omega_from_anova(anova)
  140. # Effect OmegaSquared
  141. # Region 0.12357753
  142. # ZT 0.02047823
  143. # Region:ZT 0.03725505
  144. auto_fit(Master$Slope)
  145. # Distribution AIC
  146. #gamma gamma 382.8165 #lowest and most appropriate
  147. #exp exp 383.6992
  148. #weibull weibull 383.8508
  149. #lnorm lnorm 384.5782
  150. #norm norm 461.5250
  151. #Bayesian estimation
  152. fit_rise_time<- brm(
  153. Slope ~ Region * ZT,
  154. data = Master,
  155. family = Gamma(link = 'log'),
  156. iter = 4000, chains = 4, seed = 123
  157. )
  158. summarize_significant_effects(fit_rise_time)
  159. #Post-hoc analyses##################################################
  160. library(emmeans)
  161. #Fixing ZT: pairwise with region
  162. model_int_emmeans <- emmeans(fit_rise_time, ~ ZT |Region )
  163. # 2. Get pairwise comparisons (no Bonferroni needed in Bayesian)
  164. fit_contrasts <- pairs(model_int_emmeans)
  165. summary(fit_contrasts)
  166. #Fixing Region: pairwise with ZT
  167. model_int_emmeans <- emmeans(fit_rise_time, ~ Region|ZT )
  168. # 2. Get pairwise comparisons (no Bonferroni needed in Bayesian)
  169. fit_contrasts <- pairs(model_int_emmeans)
  170. summary(fit_contrasts)
  171. #######################################################################
  172. # Plotting with the analysis#####################################################
  173. # Create new data for predictions
  174. new_data <- expand.grid(
  175. ZT = factor(c("3", "8", "15"), levels = c("3", "8", "15")),
  176. Region = factor(c("DH", "VH"), levels = c("DH", "VH"))
  177. )
  178. #Get fitted values with 95% CI#################################################################
  179. fitted_vals <- fitted(fit_rise_time, newdata = new_data, re_formula = NA, probs = c(0.025, 0.975))
  180. fitted_df <- cbind(new_data, fitted_vals)
  181. # Plot
  182. ggplot(fitted_df, aes(x = ZT, y = Estimate, color = Region, group = Region)) +
  183. geom_point(position = position_dodge(width = 0.3), size = 4) +
  184. geom_line(position = position_dodge(width = 0.3)) +
  185. geom_errorbar(aes(ymin = Q2.5, ymax = Q97.5), width = 0.2, position = position_dodge(width = 0.3)) +
  186. # ADD RAW DATA POINTS (jittered for visibility)
  187. geom_jitter(data = Master,
  188. aes(x = ZT, y = Slope, color = Region),
  189. position = position_jitterdodge(jitter.width = 0.1, dodge.width = 0.5),
  190. alpha = 0.5, size = 3, inherit.aes = FALSE) +
  191. labs(y = "Normalized 25-75 Slope") +
  192. scale_color_manual(values = c("DH" = "red", "VH" = "blue"))
  193. ###########################################################################################

Rise_time_R.R at commit cbe75da, under CC-BY-4.0 · at the source

Overview

  1. Aix Marseille Univ, INSERM, INS, Inst Neurosci Syst, Marseille, France
  2. Department of Human Anatomy, Faculty of Basic Medical Sciences, Federal University of Lafia, Lafia, Nigeria
  3. Department of Physiology and Department of Neuroscience, Croatian Institute for Brain Research, School of Medicine, University of Zagreb, Zagreb, Croatia
  4. Aix Marseille Univ, Inserm, INMED, Institut de Neurobiologie de la Méditerranée, Marseille, France
Journal: Glia, volume 74, issue 9, article e70201
Dates: received 22 January 2026; accepted 1 July 2026; published online 9 July 2026; in print September 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1002/glia.70201 · PMID 42423189 · PMCID PMC13347764 · OpenAlex W7167833357
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: mouse (organism), cellular / molecular (subfield)
Methods: Statistics, Evoked potentials, fMRI & imaging
Keywords: astrocytes, circadian rhythm, hippocampal regions, K+ homeostasis, Kir4.1 channels
MeSH: Astrocytes*, Circadian Rhythm*, Hippocampus*, Potassium*, Animals, Gap Junctions, Kcnj10 Channel, Male, Mice, Mice, Inbred C57BL, Potassium Channels, Inwardly Rectifying, Sodium-Potassium-Exchanging ATPase (* major topic)
Topic: Neuroscience and Neuropharmacology Research (Cellular and Molecular Neuroscience, Neuroscience), according to OpenAlex
Funding: Petroleum Technology Development Fund (PTDF/ED/OSS/PHD/KA/2015/22); Fondation pour la Recherche Médicale (FDT202404018111); Hrvatska Zaklada za Znanost (IP‐2022‐10‐8493, IP-2022-10-8493); European Union's Horizon 2020 Research and Innovation Program (MSCA-ITN-2020-ASTROTECH(GA956325))
Citations: not cited yet (Europe PMC); 67 references in the paper

Abstract

Astrocytes regulate extracellular potassium (K+) through multiple mechanisms operating across distinct spatiotemporal scales, yet whether this regulation exhibits regional and circadian specificity remains unclear. Using real‐time K+ measurements combined with electrophysiology and immunohistochemistry in astrocytes, we characterize K+ buffering by astrocytes across the dorsoventral hippocampal axis at three circadian times. We report that hippocampal CA1 stratum radiatum astrocytes possess different functional K+ buffering capacities depending on both anatomical location and time of day. At the early light phase (ZT3), the ventral hippocampus (VH) exhibits faster K+ accumulation and greater peak amplitudes than the dorsal hippocampus (DH) in response to similar neuronal network activity. This regional divergence is driven by reduced Kir4.1 channel function in VH astrocytes, which persists across all measured time points, and which is partially compensated by enhanced Na+/K+‐ATPase activity specifically at ZT3. Gap junction coupling between astrocytes shows regional and time‐dependent variation, with elevated coupling in VH at ZT3 that subsequently normalizes. Kir4.1 protein expression exhibits circadian dynamics. In contrast to the steady, high levels of Kir4.1 observed in the DH, the VH shows a gradual increase in expression across the light–dark cycle. These findings establish astrocytic K+ buffering as a multiscale phenomenon integrating regional heterogeneity with circadian regulation, with implications for understanding regional and temporal differences in network excitability, particularly in epilepsy.

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

Repositories

Its files are read in the Code ↔ Paper reader above, with 4 matches between paragraphs and lines of code.

Nari-KIANI/Glia_3740732_Data

License: CC-BY-4.0
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Commit: cbe75da955ac24c2aa014e0f2b640034cc6d73d2, 26 June 2026
Languages: R (6)
Size: 111 files, 6 scripts
Software Heritage: not archived
Found in: “Data Availability Statement”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: brms (6 files), car (6 files), emmeans (6 files), permuco (6 files), tidyverse (6 files)
Availability: 1 check, the latest on 26 September 2026: the link answers
  • 26 September 2026: the link answers
8 files

Zenodo 20933397

License: CC-BY-4.0
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Data Availability Statement”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: brms (6 files), car (6 files), emmeans (6 files), permuco (6 files), tidyverse (6 files)
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
  • 26 September 2026: the link answers (HTTP 200)
8 files

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:

  • 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 12 scripts, 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 Statement

The raw electrophysiology data, processed master datasets, and R analysis scripts that support the findings of this study are available on GitHub (https://github.com/Nari‐KIANI/Glia_3740732_Data) and permanently archived on Zenodo (https://doi.org/10.5281/zenodo.20933397).

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

  • Publisher: n/a → Wiley

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 6 authors, 5 keywords, 12 MeSH terms, 4 funders, 66 references.

Cite

This paper

Kiani, N., Abubakar, K., Petanjek, T. L., Esclapez, M., Ivanov, A., & Bernard, C. (2026). Dorso-Ventral and Night-Day Regulation of Extracellular K&lt;sup&gt;+&lt;/sup&gt; Dynamics in Mouse Hippocampal Astrocytes. Glia, 74(9), e70201. https://doi.org/10.1002/glia.70201

BibTeX

@article{kiani2026dorso,
author = {Kiani, Nariman and Abubakar, Kabeer and Petanjek, Tin Luka and Esclapez, Monique and Ivanov, Anton and Bernard, Christophe},
title = {{Dorso-Ventral and Night-Day Regulation of Extracellular K\&lt;sup\&gt;+\&lt;/sup\&gt; Dynamics in Mouse Hippocampal Astrocytes}},
journal = {Glia},
year = {2026},
month = sep,
volume = {74},
number = {9},
pages = {e70201},
publisher = {Wiley},
issn = {0894-1491},
doi = {10.1002/glia.70201},
url = {https://doi.org/10.1002/glia.70201},
pmid = {42423189},
pmcid = {PMC13347764}
}

RIS

TY - JOUR
AU - Kiani, Nariman
AU - Abubakar, Kabeer
AU - Petanjek, Tin Luka
AU - Esclapez, Monique
AU - Ivanov, Anton
AU - Bernard, Christophe
TI - Dorso-Ventral and Night-Day Regulation of Extracellular K&lt;sup&gt;+&lt;/sup&gt; Dynamics in Mouse Hippocampal Astrocytes
T2 - Glia
J2 - Glia
PY - 2026
DA - 2026/09/01
VL - 74
IS - 9
SP - e70201
SN - 0894-1491
PB - Wiley
DO - 10.1002/glia.70201
UR - https://doi.org/10.1002/glia.70201
LA - en
ER -

CSL-JSON

{
"id": "10.1002/glia.70201",
"type": "article-journal",
"title": "Dorso-Ventral and Night-Day Regulation of Extracellular K&lt;sup&gt;+&lt;/sup&gt; Dynamics in Mouse Hippocampal Astrocytes",
"container-title": "Glia",
"author": [
{
"family": "Kiani",
"given": "Nariman"
},
{
"family": "Abubakar",
"given": "Kabeer"
},
{
"family": "Petanjek",
"given": "Tin Luka"
},
{
"family": "Esclapez",
"given": "Monique"
},
{
"family": "Ivanov",
"given": "Anton"
},
{
"family": "Bernard",
"given": "Christophe"
}
],
"container-title-short": "Glia",
"volume": "74",
"issue": "9",
"page": "e70201",
"DOI": "10.1002/glia.70201",
"PMID": "42423189",
"PMCID": "PMC13347764",
"ISSN": "0894-1491",
"publisher": "Wiley",
"URL": "https://doi.org/10.1002/glia.70201",
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
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.1016/j.isci.2026.116695 [code]
The naive brain detects face-to-face biological motion.
Journal: iScience
In common: permuco, car, emmeans, 1 other tool
[2] doi:10.1038/s41467-026-73435-z [code]
Cellular and subcellular heterogeneity of astrocytic Na⁺ homeostasis tuning astrocytes into functionally distinct subgroups in the mouse brain.
Journal: Nature communications
In common: mouse, cellular / molecular, 4 references
[3] doi:10.1016/j.celrep.2026.117505 [code]
Impaired spatial coding and neuronal hyperactivity in the medial entorhinal cortex of aged APP knock-in mice.
Journal: Cell reports
In common: brms, car, emmeans, 1 other tool, mouse
[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: brms, car, emmeans, 1 other tool
[5] doi:10.1162/opmi.a.358 [code]
Tracking Visual Statistical Learning with Steady-State Visual Evoked Potentials: Effects of Exemplar and Category Information.
Journal: Open mind : discoveries in cognitive science
In common: brms, car, emmeans, 1 other tool
[6] doi:10.1038/s41467-026-73865-9 [code]
Histamine shapes the neurocomputational dynamics of human learning.
Journal: Nature communications
In common: brms, car, emmeans, 1 other tool
[7] doi:10.1523/eneuro.0076-26.2026 [code]
Exogenously Driven Neural Reactivation of Spatially Matching Visual Working-Memory Contents.
Journal: eNeuro
In common: brms, car, emmeans, 1 other tool
[8] doi:10.1111/jne.70257 [code]
A symmetric systemic challenge elicits a right-biased response mediated by vasopressin signaling.
Journal: Journal of neuroendocrinology
In common: brms, emmeans, tidyverse, cellular / molecular, 1 reference
[9] doi:10.1162/opmi.a.372 [code]
Broadening the Agent Preference Hypothesis Through Experiencers: Eye-Tracking and EEG Evidence of Proto-Agents and Proto-Patients.
Journal: Open mind : discoveries in cognitive science
In common: brms, car, tidyverse, 1 reference
[10] doi:10.1371/journal.pbio.3003899 [code]
Social interactions between people of same and different generations shape longitudinal changes in interpersonal neural synchrony, loneliness, and social connection.
Journal: PLoS biology
In common: brms, emmeans, tidyverse, 1 reference

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.