OSCR

HIF-1α and HIF-2α Are Upregulated in the Hippocampus but Not in the Medial Prefrontal Cortex in Experimental PTSD.

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 › Behavioral Tests › Elevated Plus Maze ↔ behavioural.py, lines 36–89 · score 0.79 · head dips, closed arms, arm entry, open arm, rotations, distance
  2. [2] § Results › Behavioral Tests › Elevated Plus Maze ↔ behavioural.py, lines 36–89 · score 0.78 · open head dips, closed arm entries, open arm entries, freezing episodes, distance, behavior
  3. [3] § Materials and Methods › Behavioral Tests ↔ behavioural.py, lines 261–314 · score 0.69 · elevated plus maze, dark light box, open field, EPM, Behavioral, Animals
  4. [4] § Statistical Analysis ↔ behavioural.py, lines 261–314 · score 0.51 · dark light box, open field, EPM, behavioral, IQR, outliers

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

Python · 416 lines · 15 KB · MIT · 4 matches

  1. """
  2. Behavioural Statistical Analysis — P1 (Control vs PTSD)
  3. Boxplot + jitter, ggplot2 style. Separate figures for OF, EPM, DLB.
  4. Statistical pipeline:
  5. 1. Outlier removal — IQR 1.5×
  6. 2. Normality — Shapiro-Wilk per group
  7. 3. Two-group test — t-test (if both normal) or Mann-Whitney U (if any non-normal)
  8. 4. No post-hoc needed (only 2 groups)
  9. Usage:
  10. python behav_art1_updated.py
  11. python behav_art1_updated.py --test EPM
  12. python behav_art1_updated.py --no-outliers
  13. Data files in data/ folder:
  14. data/OF_DF_ALL.xlsx
  15. data/EP_DF_ALL.xlsx
  16. data/DL_DF_ALL.xlsx
  17. """
  18. import os, csv, argparse
  19. from datetime import datetime
  20. from collections import defaultdict
  21. import numpy as np
  22. import matplotlib.pyplot as plt
  23. import matplotlib.patches as mpatches
  24. from scipy import stats
  25. import openpyxl
  26. import warnings
  27. warnings.filterwarnings('ignore')
  28. # ── Config ──────────────────────────────────────────────────────────────────────
  29. DATA_FILES = {
  30. 'OF': 'data/OF_DF_ALL.xlsx',
  31. 'EPM': 'data/EP_DF_ALL.xlsx',
  32. 'DLB': 'data/DL_DF_ALL.xlsx',
  33. }
  34. EPM_MAP = {'cont': 'control', 'ptsd': 'ptsd'}
  35. GROUPS = {
  36. 'OF': {'Control': 'control_non', 'PTSD': 'ptsd_non'},
  37. 'EPM': {'Control': 'control_non', 'PTSD': 'ptsd_non'},
  38. 'DLB': {'Control': 'cont_non', 'PTSD': 'ptsd_non'},
  39. }
  40. PARAMS = {
  41. 'OF': {
  42. 'distance': 'Distance (m)',
  43. 'mean_speed': 'Speed (m/s)',
  44. 'freezing_episodes': 'Freezing episodes (n)',
  45. 'time_freezing': 'Freezing time (s)',
  46. 'center_entries': 'Center entries (n)',
  47. 'center_time': 'Center time (s)',
  48. 'corners_entries': 'Corner entries (n)',
  49. 'corners_time': 'Corner time (s)',
  50. 'sides_entries': 'Side entries (n)',
  51. 'sides_time': 'Side time (s)',
  52. },
  53. 'EPM': {
  54. 'distance': 'Distance (m)',
  55. 'time_freezing': 'Freezing time (s)',
  56. 'freezing_episodes': 'Freezing episodes (n)',
  57. 'open_entries': 'Open arm entries (n)',
  58. 'open_time': 'Open arm time (s)',
  59. 'open_head_entries': 'Open head dips (n)',
  60. 'closed_entries': 'Closed arm entries (n)',
  61. 'closed_time': 'Closed arm time (s)',
  62. 'rotations': 'Rotations (n)',
  63. },
  64. 'DLB': {
  65. 'entries': 'Light zone entries (n)',
  66. 'total_out': 'Time in light (s)',
  67. 'total_in': 'Time in dark (s)',
  68. 'curiosity': 'Curiosity (n)',
  69. },
  70. }
  71. CTRL_COLOR = '#388E3C'
  72. PTSD_COLOR = '#7B1FA2'
  73. plt.rcParams.update({
  74. 'font.family': 'DejaVu Sans',
  75. 'pdf.fonttype': 42,
  76. 'ps.fonttype': 42,
  77. })
  78. # ── Data loading ────────────────────────────────────────────────────────────────
  79. def load_data(filepath, test_name):
  80. wb = openpyxl.load_workbook(filepath)
  81. ws = wb.active
  82. cols = [c.value for c in ws[1]]
  83. data = defaultdict(list)
  84. for row in ws.iter_rows(min_row=2, values_only=True):
  85. if not row[0]: continue
  86. g = str(row[1]).lower()
  87. t = str(row[2]).lower()
  88. if test_name == 'EPM' and g in EPM_MAP:
  89. g = EPM_MAP[g]
  90. data[f'{g}_{t}'].append(row)
  91. return cols, data
  92. def get_vals(data, cols, group_key, param):
  93. if param not in cols: return []
  94. ci = cols.index(param)
  95. return [float(r[ci]) for r in data.get(group_key, [])
  96. if r[ci] is not None and isinstance(r[ci], (int, float))]
  97. def remove_iqr(vals, factor=1.5):
  98. if len(vals) < 4: return vals
  99. q1, q3 = np.percentile(vals, 25), np.percentile(vals, 75)
  100. iqr = q3 - q1
  101. return [v for v in vals if q1 - factor*iqr <= v <= q3 + factor*iqr]
  102. # ── Statistics ──────────────────────────────────────────────────────────────────
  103. def shapiro_wilk(v):
  104. if len(v) < 3: return False, None
  105. _, p = stats.shapiro(v)
  106. return p >= 0.05, round(p, 4)
  107. def run_stats(groups: dict) -> dict:
  108. """
  109. For 2-group comparison (Control vs PTSD):
  110. - Check normality for each group
  111. - Use t-test if both normal
  112. - Use Mann-Whitney U if any group non-normal
  113. - No post-hoc needed (only 2 groups)
  114. """
  115. group_names = list(groups.keys())
  116. if len(group_names) != 2:
  117. raise ValueError("This script is designed for 2-group comparisons only")
  118. v1, v2 = groups[group_names[0]], groups[group_names[1]]
  119. normality = {}
  120. for name, vals in groups.items():
  121. is_norm, p_sw = shapiro_wilk(vals)
  122. normality[name] = {'normal': is_norm, 'p': p_sw}
  123. both_normal = normality[group_names[0]]['normal'] and normality[group_names[1]]['normal']
  124. # Perform appropriate test for 2 groups
  125. if both_normal:
  126. stat, p_value = stats.ttest_ind(v1, v2)
  127. test_name = 't-test'
  128. else:
  129. stat, p_value = stats.mannwhitneyu(v1, v2, alternative='two-sided')
  130. test_name = 'Mann-Whitney U'
  131. return {
  132. 'normality': normality,
  133. 'both_normal': both_normal,
  134. 'test': test_name,
  135. 'statistic': round(stat, 4),
  136. 'p': round(p_value, 6),
  137. }
  138. def sig_label(p):
  139. if p is None: return ''
  140. if p < 0.001: return '***'
  141. if p < 0.01: return '**'
  142. if p < 0.05: return '*'
  143. return 'ns'
  144. def print_stats(param_label, sr, n_rm1=0, n_rm2=0):
  145. print(f"\n {param_label}:")
  146. if n_rm1 or n_rm2:
  147. print(f" ⚠ Outliers removed: Control={n_rm1}, PTSD={n_rm2}")
  148. print(f" Normality (Shapiro-Wilk):")
  149. for grp, v in sr['normality'].items():
  150. status = '✅ normal' if v['normal'] else '❌ non-normal'
  151. p_str = f"p={v['p']}" if v['p'] is not None else 'n/a'
  152. print(f" {grp:<12} {p_str:<12} {status}")
  153. print(f" Comparison: {sr['test']} stat={sr['statistic']} p={sr['p']}")
  154. sl = sig_label(sr['p'])
  155. if sl != 'ns' and sl != '':
  156. print(f" *** Significant (p={sr['p']}) ***")
  157. # ── Plot ─────────────────────────────────────────────────────────────────────────
  158. def plot_param(ax, v1, v2, label, test_result, show_ylabel=False):
  159. bp = ax.boxplot(
  160. [v1, v2],
  161. positions=[0, 1],
  162. widths=0.45,
  163. patch_artist=True,
  164. notch=False,
  165. medianprops=dict(color='#212121', linewidth=2.0),
  166. whiskerprops=dict(color='#424242', linewidth=1.2),
  167. capprops=dict(color='#424242', linewidth=1.2),
  168. flierprops=dict(marker='', markersize=0),
  169. boxprops=dict(linewidth=1.2),
  170. zorder=3,
  171. )
  172. for patch, color in zip(bp['boxes'], [CTRL_COLOR, PTSD_COLOR]):
  173. patch.set_facecolor(color)
  174. patch.set_alpha(0.55)
  175. patch.set_edgecolor('#424242')
  176. np.random.seed(42)
  177. for xi, vals in [(0, v1), (1, v2)]:
  178. jitter = np.random.uniform(-0.13, 0.13, len(vals))
  179. ax.scatter(xi + jitter, vals,
  180. color='#212121', s=28, alpha=0.75,
  181. linewidths=0, zorder=5)
  182. ax.text(0, 0, f'n={len(v1)}', ha='center', va='top', fontsize=7,
  183. color='#757575', transform=ax.get_xaxis_transform())
  184. ax.text(1, 0, f'n={len(v2)}', ha='center', va='top', fontsize=7,
  185. color='#757575', transform=ax.get_xaxis_transform())
  186. data_max = max(v1 + v2)
  187. top = data_max * 1.35
  188. bottom = -1 if min(v1 + v2) >= 0 else min(v1 + v2) * 1.1
  189. ax.set_ylim(bottom, top)
  190. ax.set_xlim(-0.6, 1.6)
  191. # Add significance bracket if p < 0.05
  192. p = test_result['p']
  193. sl = sig_label(p)
  194. if sl not in ('ns', ''):
  195. y = top * 0.84
  196. h = top * 0.04
  197. ax.plot([0, 0, 1, 1], [y, y+h, y+h, y],
  198. lw=1.2, color='#212121', clip_on=False)
  199. ax.text(0.5, y + h*1.1, sl, ha='center', va='bottom',
  200. fontsize=11, color='#212121', fontweight='bold', clip_on=False)
  201. ax.set_xticks([0, 1])
  202. ax.set_xticklabels(['Control', 'PTSD'], fontsize=10, color='#212121')
  203. ax.set_title(label, fontsize=10, fontweight='bold', color='#212121', pad=6)
  204. if show_ylabel:
  205. ax.set_ylabel('Mean', fontsize=9, color='#424242', labelpad=4)
  206. ax.set_facecolor('#EBEBEB')
  207. ax.yaxis.grid(True, color='white', linewidth=1.0, zorder=0)
  208. ax.xaxis.grid(False)
  209. ax.set_axisbelow(True)
  210. ax.spines['top'].set_visible(False)
  211. ax.spines['right'].set_visible(False)
  212. ax.spines['left'].set_visible(False)
  213. ax.spines['bottom'].set_color('#BDBDBD')
  214. ax.spines['bottom'].set_linewidth(0.8)
  215. ax.tick_params(axis='x', length=0, pad=4)
  216. ax.tick_params(axis='y', length=0, labelsize=8)
  217. def make_figure(test_name, param_data, stats_dict, output_prefix):
  218. params = PARAMS[test_name]
  219. n = len(params)
  220. if n <= 5:
  221. nrows, ncols = 1, n
  222. figsize = (n * 4.2, 5.5)
  223. else:
  224. ncols = 5
  225. nrows = -(-n // ncols)
  226. figsize = (ncols * 4.2, nrows * 5.5)
  227. fig, axes = plt.subplots(nrows, ncols, figsize=figsize)
  228. fig.patch.set_facecolor('white')
  229. axes_flat = np.array(axes).flatten() if n > 1 else [axes]
  230. for i, (param, label) in enumerate(params.items()):
  231. ax = axes_flat[i]
  232. if param not in param_data:
  233. ax.set_visible(False)
  234. continue
  235. v1 = param_data[param]['ctrl']
  236. v2 = param_data[param]['ptsd']
  237. sr = stats_dict[param]
  238. plot_param(ax, v1, v2, label, sr, show_ylabel=(i % ncols == 0))
  239. for idx in range(n, len(axes_flat)):
  240. axes_flat[idx].set_visible(False)
  241. patches = [
  242. mpatches.Patch(facecolor=CTRL_COLOR, edgecolor='white', label='Control'),
  243. mpatches.Patch(facecolor=PTSD_COLOR, edgecolor='white', label='PTSD'),
  244. ]
  245. fig.legend(handles=patches, loc='lower center', ncol=2,
  246. fontsize=10, frameon=True, fancybox=False, edgecolor='#E0E0E0',
  247. bbox_to_anchor=(0.5, -0.04), handlelength=1.5, handleheight=1.0)
  248. titles = {'OF': 'Open Field Test', 'EPM': 'Elevated Plus Maze', 'DLB': 'Dark-Light Box'}
  249. fig.suptitle(f'{titles[test_name]} — Control vs PTSD',
  250. fontsize=13, fontweight='bold', color='#212121', y=1.02)
  251. fig.text(0.5, -0.08,
  252. 'Boxplot: median, IQR, whiskers = 1.5×IQR. '
  253. 'Dots = individual animals (outliers removed, IQR 1.5×). '
  254. 'Normality: Shapiro–Wilk. '
  255. 'Comparison: independent t-test (if both normal) or Mann–Whitney U (if any non-normal). '
  256. '* p<0.05, ** p<0.01, *** p<0.001.',
  257. ha='center', fontsize=8, color='#9E9E9E', style='italic')
  258. plt.tight_layout(rect=[0, 0.06, 1, 1])
  259. plt.subplots_adjust(wspace=0.38, hspace=0.55)
  260. fig.savefig(f'{output_prefix}.png', dpi=300, bbox_inches='tight', facecolor='white')
  261. fig.savefig(f'{output_prefix}.pdf', bbox_inches='tight', facecolor='white')
  262. plt.close(fig)
  263. print(f" Figure → {output_prefix}.png / .pdf")
  264. def save_csv(rows, filepath):
  265. if not rows: return
  266. fields = list(rows[0].keys())
  267. with open(filepath, 'w', newline='', encoding='utf-8') as f:
  268. w = csv.DictWriter(f, fieldnames=fields)
  269. w.writeheader()
  270. w.writerows(rows)
  271. print(f" CSV → {filepath}")
  272. # ── Main ─────────────────────────────────────────────────────────────────────────
  273. def run_test(test_name, out_dir, apply_iqr=True):
  274. filepath = DATA_FILES[test_name]
  275. params = PARAMS[test_name]
  276. print(f"\n{'='*60}")
  277. print(f" {test_name} | Outlier removal: {'ON (IQR 1.5×)' if apply_iqr else 'OFF'}")
  278. print(f"{'='*60}")
  279. cols, data = load_data(filepath, test_name)
  280. param_data = {}
  281. stats_dict = {}
  282. csv_rows = []
  283. for param, label in params.items():
  284. raw1 = get_vals(data, cols, GROUPS[test_name]['Control'], param)
  285. raw2 = get_vals(data, cols, GROUPS[test_name]['PTSD'], param)
  286. if not raw1 or not raw2:
  287. continue
  288. v1 = remove_iqr(raw1) if apply_iqr else raw1
  289. v2 = remove_iqr(raw2) if apply_iqr else raw2
  290. n_rm1 = len(raw1) - len(v1)
  291. n_rm2 = len(raw2) - len(v2)
  292. param_data[param] = {'ctrl': v1, 'ptsd': v2}
  293. sr = run_stats({'Control': v1, 'PTSD': v2})
  294. stats_dict[param] = sr
  295. print_stats(label, sr, n_rm1, n_rm2)
  296. m1, m2 = np.mean(v1), np.mean(v2)
  297. s1, s2 = np.std(v1, ddof=1), np.std(v2, ddof=1)
  298. csv_rows.append({
  299. 'test': test_name,
  300. 'parameter': label,
  301. 'normality_ctrl_p': sr['normality']['Control']['p'],
  302. 'normality_ctrl': 'normal' if sr['normality']['Control']['normal'] else 'non-normal',
  303. 'normality_ptsd_p': sr['normality']['PTSD']['p'],
  304. 'normality_ptsd': 'normal' if sr['normality']['PTSD']['normal'] else 'non-normal',
  305. 'test': sr['test'],
  306. 'test_statistic': sr['statistic'],
  307. 'p_value': sr['p'],
  308. 'significance': sig_label(sr['p']),
  309. 'mean_ctrl': round(m1, 4),
  310. 'sd_ctrl': round(s1, 4),
  311. 'sem_ctrl': round(s1/np.sqrt(len(v1)), 4),
  312. 'n_ctrl': len(v1),
  313. 'mean_ptsd': round(m2, 4),
  314. 'sd_ptsd': round(s2, 4),
  315. 'sem_ptsd': round(s2/np.sqrt(len(v2)), 4),
  316. 'n_ptsd': len(v2),
  317. 'outliers_removed_ctrl': n_rm1,
  318. 'outliers_removed_ptsd': n_rm2,
  319. })
  320. prefix = os.path.join(out_dir, f'Art1_{test_name}')
  321. make_figure(test_name, param_data, stats_dict, prefix)
  322. save_csv(csv_rows, os.path.join(out_dir, f'Art1_{test_name}_stats.csv'))
  323. def main():
  324. parser = argparse.ArgumentParser(
  325. description='Behavioural analysis — Article 1 (Control vs PTSD)')
  326. parser.add_argument('--test', choices=['OF', 'EPM', 'DLB', 'ALL'],
  327. default='ALL', help='Which test to run')
  328. parser.add_argument('--no-outliers', action='store_true',
  329. help='Skip IQR outlier removal')
  330. args = parser.parse_args()
  331. ts = datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
  332. out_dir = os.path.join('results', ts)
  333. os.makedirs(out_dir, exist_ok=True)
  334. print(f"Output → {out_dir}/")
  335. tests = ['OF', 'EPM', 'DLB'] if args.test == 'ALL' else [args.test]
  336. for t in tests:
  337. run_test(t, out_dir, apply_iqr=not args.no_outliers)
  338. print(f"\nDone! All results → {out_dir}/")
  339. if __name__ == '__main__':
  340. main()

behavioural.py at commit a2fe99b, under MIT · at the source

Overview

Authors: Denys Porkhalo1, Denis Pashevin1, Yana Naumenko2, Victor Dosenko1
  1. Department of General and Molecular Pathophysiology Bogomoletz Institute of Physiology of NAS of Ukraine Kyiv Ukraine
  2. Department of Biophysics of Sensory Signalling Bogomoletz Institute of Physiology of NAS of Ukraine Kyiv Ukraine
Institutions: Bogomoletz Institute of Physiology (Ukraine)
Journal: Brain and behavior, volume 16, issue 8, article e71654
Dates: received 31 March 2026; accepted 20 July 2026; published online 5 August 2026; in print August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1002/brb3.71654 · PMID 42552943 · PMCID PMC13439218 · OpenAlex W7172526365
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: behavior only (modality), rat (organism), other condition (population)
Methods: Statistics, Graphs
Keywords: hippocampus, hypoxia‐inducible factors, pituitary adenylate cyclase‐activating peptide, PTSD, single prolonged stress
MeSH: Basic Helix-Loop-Helix Proteins*, Hippocampus*, Hypoxia-Inducible Factor 1, alpha Subunit*, Prefrontal Cortex*, Stress Disorders, Post-Traumatic*, Animals, Disease Models, Animal, Endothelial PAS Domain-Containing Protein 1, Male, Pituitary Adenylate Cyclase-Activating Polypeptide, Rats, Rats, Sprague-Dawley, Up-Regulation (* major topic)
Topic: Cancer, Stress, Anesthesia, and Immune Response (Psychiatry and Mental health, Medicine), according to OpenAlex
Citations: not cited yet (Europe PMC); 30 references in the paper

Abstract

Background: Post‐traumatic stress disorder (PTSD) is a psychiatric disorder characterized by anxiety, abnormal stress responses, and pathological memory formation. Research indicates that hypoxia‐inducible pathways might influence the neurobiology of PTSD. However, the specific relationship between hypoxia‐inducible factors (HIFs), neuropeptides, and brain regions remains unclear. This study investigated behavioral and molecular alterations in a rat model of PTSD, with a particular focus on the expression of HIF‐1α, HIF‐2α, HIF‐3α, PACAP, and PAI‐1 in the hippocampus and medial prefrontal cortex (mPFC).

Methods: PTSD was modelled in adult male rats using the single prolonged stress (SPS) protocol, consisting of 2‐h immobilization, 15‐min forced swimming, and diethyl ether anesthesia. Behavioral assessment was performed 7 days post‐SPS using the open field test, elevated plus maze (EPM), and dark‐light box. Gene expression in the hippocampus and mPFC was quantified by RT‐qPCR using the 2(−ΔΔCt) method with β‐actin as a reference gene.

Results: SPS‐exposed rats exhibited significant anxiety‐like behavior. In the elevated plus maze, they showed increased freezing time (p = 0.0001), more freezing episodes (p = 0.002), fewer open‐arm head dips (p = 0.002), reduced open‐arm time (p = 0.027), and shorter total distance travelled (p = 0.026) compared to controls, whereas the reduction in open‐arm entries did not reach significance (p = 0.051). In the dark‐light box, PTSD animals made significantly fewer entries into the light zone (p = 0.009). No significant differences were detected in the open field test. At the molecular level, hippocampal HIF‐1α and HIF‐2α mRNA expression was significantly elevated in PTSD animals relative to controls (2.05‐ and 2.18‐fold, respectively; p < 0.05). No significant changes were detected for HIF‐3α, PACAP, or PAI‐1 in either brain region. No significant differences in gene expression were found in the mPFC.

Conclusions: PTSD is associated with selective upregulation of HIF‐1α and HIF‐2α in the hippocampus, suggesting region‐specific activation of hypoxia‐inducible signaling pathways in the context of traumatic stress.

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.

DotardOneClick/PTSD_hypoxia_markers

License: MIT
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Commit: a2fe99b642a8b771f78bd5d2494513078da809b0, 8 July 2026
Languages: Python (3)
Size: 8 files, 3 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: NumPy (3 files), SciPy (3 files), Matplotlib (2 files), pandas (1 file)
Availability: 1 check, the latest on 26 September 2026: the link answers
  • 26 September 2026: the link answers
5 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:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 3 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

Datasets cited

Data Availability Statement

The data used for this study are available at Zenodo using the link https://zenodo.org/records/19283737 (https://doi.org/10.5281/zenodo.19283737). The repository additionally includes the per‐sample Ct values for every gene and animal, together with a script that recomputes all reported expression values from these raw data by normalizing each target gene to the β‐actin reference gene (the standard ΔCt/relative‐expression method), so that every value in the manuscript can be reproduced directly from the measurements. Code used for statistical analysis is available at https://github.com/DotardOneClick/PTSD_hypoxia_markers.

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

Recorded: type, language, journal, volume, issue, pages, dates, 4 authors, 5 keywords, 13 MeSH terms, 30 references.

Cite

This paper

Porkhalo, D., Pashevin, D., Naumenko, Y., & Dosenko, V. (2026). HIF-1α and HIF-2α Are Upregulated in the Hippocampus but Not in the Medial Prefrontal Cortex in Experimental PTSD. Brain and behavior, 16(8), e71654. https://doi.org/10.1002/brb3.71654

BibTeX

@article{porkhalo2026hif,
author = {Porkhalo, Denys and Pashevin, Denis and Naumenko, Yana and Dosenko, Victor},
title = {{HIF-1α and HIF-2α Are Upregulated in the Hippocampus but Not in the Medial Prefrontal Cortex in Experimental PTSD}},
journal = {Brain and behavior},
year = {2026},
month = aug,
volume = {16},
number = {8},
pages = {e71654},
publisher = {Wiley},
issn = {2162-3279},
doi = {10.1002/brb3.71654},
url = {https://doi.org/10.1002/brb3.71654},
pmid = {42552943},
pmcid = {PMC13439218}
}

RIS

TY - JOUR
AU - Porkhalo, Denys
AU - Pashevin, Denis
AU - Naumenko, Yana
AU - Dosenko, Victor
TI - HIF-1α and HIF-2α Are Upregulated in the Hippocampus but Not in the Medial Prefrontal Cortex in Experimental PTSD
T2 - Brain and behavior
J2 - Brain Behav
PY - 2026
DA - 2026/08/01
VL - 16
IS - 8
SP - e71654
SN - 2162-3279
PB - Wiley
DO - 10.1002/brb3.71654
UR - https://doi.org/10.1002/brb3.71654
LA - en
ER -

CSL-JSON

{
"id": "10.1002/brb3.71654",
"type": "article-journal",
"title": "HIF-1α and HIF-2α Are Upregulated in the Hippocampus but Not in the Medial Prefrontal Cortex in Experimental PTSD",
"container-title": "Brain and behavior",
"author": [
{
"family": "Porkhalo",
"given": "Denys"
},
{
"family": "Pashevin",
"given": "Denis"
},
{
"family": "Naumenko",
"given": "Yana"
},
{
"family": "Dosenko",
"given": "Victor"
}
],
"container-title-short": "Brain Behav",
"volume": "16",
"issue": "8",
"page": "e71654",
"DOI": "10.1002/brb3.71654",
"PMID": "42552943",
"PMCID": "PMC13439218",
"ISSN": "2162-3279",
"publisher": "Wiley",
"URL": "https://doi.org/10.1002/brb3.71654",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
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.7554/elife.105528 [code]
Functional specialization of mPFC-BLA and mPFC-NAc pathways in affective state representation.
Journal: eLife
In common: pandas, SciPy, Matplotlib, 1 other tool, 1 reference
[2] doi:10.64898/2026.03.09.710596 [code]
Infant gut microbiomes contribute to metabolic states that impact brain function
Journal: bioRxiv (preprint)
In common: pandas, SciPy, Matplotlib, 1 other tool, 1 reference
[3] doi:10.1167/jov.26.8.1 [code]
MAME: Multidimensional adaptive metamer exploration with human perceptual feedback.
Journal: Journal of vision
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[4] doi:10.1186/s13229-026-00730-3 [code]
Predicting emotional valence in autism: a preregistered study in the Bayesian Brain framework.
Journal: Molecular autism
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[5] doi:10.1162/imag.a.1292 [code]
Assessing adverse effects and unspecific effects of transcutaneous spinal direct current stimulation (tsDCS).
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[6] doi:10.1038/s41467-026-74227-1 [code]
Age-related changes in behavioural and neural variability in a decision-making task.
Journal: Nature communications
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[7] doi:10.1038/s41467-026-74768-5 [code]
Parallel cholinergic circuit in oculomotor nucleus to control eye movements and REM sleep.
Journal: Nature communications
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[8] doi:10.3758/s13414-026-03289-6 [code]
Saccade length consistency during reading and shape-scanning.
Journal: Attention, perception & psychophysics
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[9] doi:10.7554/elife.107423 [code]
A context-free model of savings in motor learning.
Journal: eLife
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only
[10] doi:10.1016/j.crmeth.2026.101421 [code]
EthoPy provides an accessible platform for reproducible behavioral neuroscience.
Journal: Cell reports methods
In common: pandas, SciPy, Matplotlib, 1 other tool, behavior only

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.