OSCR

Offspring genetic diversity regulates rearing experiences that predict differential susceptibility to Chd8 haploinsufficiency.

Code ↔ Paper

7 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 7 matches
  1. [1] § Results › Offspring genetic background shapes individual differences in litter survival, B6-Chd8+/− maternal care, and nest quality ↔ data_visualization.ipynb, lines 270–282 · score 0.98 · B6 CC13, B6 CC16, B6 CC24, B6 CC28, B6 CC32, B6 CC44
  2. [2] § Results › Genetic background impacts the age to reach developmental milestones and pup activity levels during the third postnatal week ↔ data_visualization.ipynb, lines 270–282 · score 0.98 · B6 CC13, B6 CC16, B6 CC24, B6 CC28, B6 CC32, B6 CC44
  3. [3] § Results › Variation in the preweaning environment predicts postweaning traits and differential susceptibility to Chd8 haploinsufficiency ↔ data_visualization.ipynb, lines 25–38 · score 0.84 · adult body weights, fear extinction, pup crawl, DSI aggression, brain weight, fear expression
  4. [4] § Methods › Litter observations ↔ data_visualization.ipynb, lines 284–395 · score 0.83 · pup crawling, eye opening, Passive nursing, Active nursing, eating solid, dam resting
  5. [5] § Methods › Postweaning behavioral tests and weights ↔ data_visualization.ipynb, lines 199–225 · score 0.72 · Fear extinction, brain weights, body weights, Fear expression, Fear acquisition, room
  6. [6] § Methods › Statistics and reproducibility ↔ data_visualization.ipynb, lines 284–395 · score 0.69 · dam passive nursing, active nursing, Dam lick, Nest quality, nest build, outliers
  7. [7] § Results › Genetic background impacts the age to reach developmental milestones and pup activity levels during the third postnatal week ↔ data_visualization.ipynb, lines 172–196 · score 0.67 · pup eyes open, pup autogrooming, pup crawling, eating solid, R2, digging

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

Jupyter notebook · 441 lines · 15 KB · no license · 7 matches

  1. # %% [markdown]
  2. # # SHAP Modeling
  3. # ## "Offspring genetic diversity regulates rearing experiences that predict differential susceptibility to Chd8 haploinsufficiency"
  4. # %%
  5. # Required Import Statements
  6. import pandas as pd
  7. import numpy as np
  8. import shap
  9. from sklearn.tree import DecisionTreeRegressor
  10. from sklearn.metrics import r2_score
  11. import matplotlib.pyplot as plt
  12. from matplotlib.ticker import FuncFormatter
  13. import matplotlib.image as mpimg
  14. import seaborn as sns
  15. from matplotlib.lines import Line2D
  16. # %% [markdown]
  17. # ## Data Cleaning
  18. # %%
  19. # Import Data
  20. chd8_het_effect = pd.read_excel('chd8_het_effect.xlsx')
  21. # %%
  22. # Rename Columns for chd8 het effects dataframe
  23. chd8_het_effect = chd8_het_effect.rename(columns={'Weaning body weight': 'Weaning Body Weight', 'Adolescent body weight':'Adolescent Body Weight',
  24. 'Adult body weight':'Adult Body Weight', 'Terminal body weight':'Terminal Body Weight', 'Brain weight':'Brain Weight',
  25. 'DOF distance':'DOF Distance', 'DSI aggression':'DSI Aggression', 'DSI sniffing':'DSI Sniffing',
  26. 'BOF % center distance': 'BOF % Center Distance', 'Fear acquisition':'Fear Acquisition', 'Fear expression':'Fear Expression',
  27. 'Fear extinction': 'Fear Extinction'})
  28. chd8_het_effect = chd8_het_effect.rename(columns={'Nest quality':'Nest Quality', 'dam_active_nurse': 'Dam Active Nurse', 'dam run': 'Dam Run',
  29. 'dam_eat':'Dam Eat', 'dam_lick': 'Dam Lick', 'dam_nest_build': 'Dam Nest Build', 'dam_outnest': 'Dam Out of Nest',
  30. 'dam_pass nurse': 'Dam Passive Nurse', 'dam_rest':'Dam Rest', 'total nurse': 'Total Nurse',
  31. 'Pup_climb': 'Pup Climb', 'Pup_crawl/run': 'Pup Crawl/Run', 'Pup dig': 'Pup Dig', 'Pup autogroom':'Pup Autogroom',
  32. 'pup_eat solid':'Pup Eat Solid', 'pup_eyes open':'Pup Eyes Open', 'pup jump': 'Pup Jump', 'pup L/G':'Pup L/G',
  33. 'pup nest build':'Pup Nest Build', 'Litter size':'Litter Size'})
  34. # %%
  35. # List of target variables
  36. target_variables = ['Weaning Body Weight', 'Adolescent Body Weight',
  37. 'Adult Body Weight', 'Terminal Body Weight', 'Brain Weight',
  38. 'DOF Distance', 'DSI Aggression', 'DSI Sniffing',
  39. 'BOF % Center Distance', 'Fear Acquisition', 'Fear Expression',
  40. 'Fear Extinction']
  41. # %% [markdown]
  42. # ## Compute SHAP Models
  43. # %%
  44. def get_shap_tree(x, y):
  45. # Step 1: Fit a decision tree
  46. tree = DecisionTreeRegressor(random_state=42, max_depth=5)
  47. tree.fit(x, y)
  48. # Step 2: Compute SHAP values
  49. explainer = shap.TreeExplainer(tree)
  50. shap_values = explainer.shap_values(x)
  51. # Step 3: Get mean absolute SHAP values for feature importance
  52. shap_importance = np.abs(shap_values).mean(axis=0)
  53. shap_df = pd.DataFrame({
  54. 'feature': x.columns,
  55. 'importance': shap_importance
  56. }).sort_values(by='importance', ascending=False)
  57. # Step 4: Filter features with SHAP < 0.01 and keep top 5 (plus 'Sex')
  58. filtered_features = shap_df[shap_df['importance'] > 0.01].head(6)['feature'].tolist()
  59. if 'Sex' not in filtered_features:
  60. filtered_features.append('Sex')
  61. x_filtered = x[filtered_features]
  62. # Step 5: Refit the decision tree with filtered features
  63. tree_filtered = DecisionTreeRegressor(random_state=42, max_depth=5)
  64. tree_filtered.fit(x_filtered, y)
  65. # Step 6: Compute SHAP values again for the filtered model
  66. explainer_filtered = shap.TreeExplainer(tree_filtered)
  67. shap_values_filtered = explainer_filtered.shap_values(x_filtered)
  68. return shap_values_filtered, x_filtered, tree_filtered
  69. # %% [markdown]
  70. # ## SHAP Plotting
  71. # %%
  72. def graph_with_r2_and_clustering_sex_shaded(shap_vals, x, y, title, grad_boost):
  73. """
  74. Generate SHAP bar plot with sex cohorts and display R^2 value.
  75. Parameters:
  76. shap_vals: SHAP values
  77. x: Features dataframe
  78. y: Target variable series
  79. title: Title for the plot
  80. grad_boost: Trained model
  81. """
  82. ############## SHAP CALCULATIONS ##############
  83. # Calculate R2
  84. r2 = r2_score(y, grad_boost.predict(x))
  85. # Define sex cohorts for shading
  86. sex = ['Male' if x.iloc[i]['Sex'] == 0 else 'Female' for i in range(x.shape[0])]
  87. # Exclude 'Sex' column from features
  88. x_no_sex = x.drop(columns=['Sex'])
  89. # Filter SHAP values to exclude 'Sex'
  90. feature_names = x.columns.tolist()
  91. valid_features = [name for name in feature_names if name != 'Sex']
  92. feature_indices = [x.columns.get_loc(name) for name in valid_features]
  93. shap_vals_no_sex = shap_vals[:, feature_indices]
  94. shap_values_explanation = shap.Explanation(values=shap_vals_no_sex,
  95. data=x_no_sex,
  96. feature_names=x_no_sex.columns)
  97. clustering = shap.utils.hclust(x_no_sex, y)
  98. ############## PLOTTING ##############
  99. fig = plt.figure(figsize=[12,8]) # Explicit figure size
  100. ax = fig.add_subplot(111)
  101. ax.xaxis.set_major_formatter(FuncFormatter(lambda x, pos: f"{x:.2f}"))
  102. # Create the SHAP bar plot with sex cohorts
  103. shap.plots.bar(
  104. shap_values_explanation.cohorts(sex).abs.mean(0),
  105. clustering=clustering,
  106. clustering_cutoff=1,
  107. max_display=10,
  108. show=False,
  109. ax=ax,
  110. )
  111. ############## MANAGE LABEL FORMATTING ##############
  112. for text in ax.get_xticklabels() + ax.get_yticklabels():
  113. text.set_fontsize(24)
  114. for text in ax.get_xticklabels():
  115. text.set_text
  116. xlabel = ax.get_xlabel()
  117. if xlabel:
  118. ax.set_xlabel("Mean |SHAP|", fontsize=24)
  119. for child in ax.get_children():
  120. if hasattr(child, 'set_fontsize'):
  121. child.set_fontsize(24)
  122. legend = ax.get_legend()
  123. if legend is not None:
  124. if legend.get_title() is not None:
  125. legend.get_title().set_fontsize(20)
  126. for text in legend.get_texts():
  127. text.set_fontsize(20)
  128. ax.set_title(f'{title}\nR² = {r2:,.2f}', y=1, fontsize=24)
  129. ############## FINAL PLOTTING ##############
  130. # Save the plot with lower dpi to reduce file size
  131. plt.savefig(f'Images/{title}.png', bbox_inches='tight')
  132. # Display the plot
  133. plt.show()
  134. # %% [markdown]
  135. # ## Display SHAP Plots
  136. # %%
  137. for target in target_variables:
  138. # Define target variable
  139. y = chd8_het_effect[target]
  140. x = chd8_het_effect[['Nest Quality', 'Dam Active Nurse', 'Dam Run',
  141. 'Dam Eat', 'Dam Lick', 'Dam Nest Build', 'Dam Out of Nest',
  142. 'Dam Passive Nurse', 'Dam Rest', 'Total Nurse', 'Dam_PC1', 'Dam_PC2',
  143. 'Pup Climb', 'Pup Crawl/Run', 'Pup Dig', 'Pup Autogroom',
  144. 'Pup Eat Solid', 'Pup Eyes Open', 'Pup Jump', 'Pup L/G',
  145. 'Pup Nest Build', 'Litter Size', '% Chd8 Hets', '% Males', 'Sex']]
  146. # Delete parts of SHAP tree with values of ~0
  147. x_filtered = x
  148. zeros = True
  149. while zeros:
  150. shap_values_filtered, x_filtered, tree_filtered = get_shap_tree(x_filtered, y)
  151. if np.all(np.abs(shap_values_filtered).mean(axis=0) >= 0.01):
  152. zeros = False
  153. # Call the graphing function
  154. graph_with_r2_and_clustering_sex_shaded(shap_values_filtered, x_filtered, y, title=target, grad_boost=tree_filtered)
  155. plt.show()
  156. # %%
  157. ################## COMBINE PLOTS ##################
  158. fig, axes = plt.subplots(4, 3, figsize=(16, 12))
  159. images = [['Weaning Body Weight', 'Adolescent Body Weight',
  160. 'Adult Body Weight'], ['Terminal Body Weight', 'Brain Weight',
  161. 'DOF Distance'], ['DSI Aggression', 'DSI Sniffing',
  162. 'BOF % Center Distance'], ['Fear Acquisition', 'Fear Expression',
  163. 'Fear Extinction']]
  164. # Loop over the rows and columns to display images
  165. for row in [0, 1, 2, 3]:
  166. for column in [0, 1, 2]:
  167. ax = axes[row, column]
  168. ax.axis('off')
  169. image_name = images[row][column]
  170. img = mpimg.imread(f'Images/{image_name}.png')
  171. ax.imshow(img)
  172. # Adjust layout to make room for the figure title
  173. plt.tight_layout()
  174. # Save the figure with higher resolution
  175. plt.savefig('Images/decision_tree_shap.png', dpi=300, bbox_inches='tight')
  176. plt.rc('font', size=14)
  177. # Display the plot
  178. plt.show()
  179. # %% [markdown]
  180. # ## Distribution Plots
  181. # %%
  182. def get_final_cohort_df(cohorts, valid_features):
  183. # Create initial lists/dicts
  184. data = {feat: [] for feat in valid_features}
  185. data['Sex'] = []
  186. sexes = [k for k in cohorts.cohorts.keys() if k in ("Male", "Female")]
  187. # Add features and values to lists/dicts
  188. for sex in sexes:
  189. rows = cohorts.cohorts[sex].values
  190. for pup in rows:
  191. length = len(pup)
  192. for idx, feat in enumerate(valid_features):
  193. if idx < length:
  194. data[feat].append(pup[idx])
  195. data['Sex'].append(sex)
  196. return pd.DataFrame(data)
  197. # %%
  198. def get_cohorts(x_filtered, shap_values_filtered):
  199. # Define sex cohorts for shading
  200. sex = ['Male' if x_filtered.iloc[i]['Sex'] == 0 else 'Female' for i in range(x_filtered.shape[0])]
  201. # Exclude 'Sex' column from features
  202. x_no_sex = x_filtered.drop(columns=['Sex'])
  203. # Filter SHAP values to exclude 'Sex'
  204. feature_names = x_filtered.columns.tolist()
  205. valid_features = [name for name in feature_names if name != 'Sex']
  206. feature_indices = [x_filtered.columns.get_loc(name) for name in valid_features]
  207. shap_vals_no_sex = shap_values_filtered[:, feature_indices]
  208. shap_values_explanation = shap.Explanation(values=shap_vals_no_sex,
  209. data=x_no_sex,
  210. feature_names=x_no_sex.columns)
  211. return shap_values_explanation.cohorts(sex).abs
  212. # %%
  213. all_strains = ['B6-B6', 'B6-CC1', 'B6-CC2', 'B6-CC7', 'B6-CC10', 'B6-CC12',
  214. 'B6-CC13', 'B6-CC16', 'B6-CC22', 'B6-CC24', 'B6-CC25',
  215. 'B6-CC28', 'B6-CC32', 'B6-CC44', 'B6-CC57', 'B6-CC75']
  216. color_palette = ['#8ebaee', '#b3efee', '#5879a3', '#bec0bf', '#ac2e32',
  217. '#cc615d', '#e98733', '#5a8d53', '#e49fb6', '#c5905e',
  218. '#f5db7a', '#0b195d', '#726967', '#955fea', '#d5cea5',
  219. '#7cb872']
  220. # Same palette used earlier
  221. palette = dict(zip(
  222. all_strains,
  223. sns.color_palette(color_palette)
  224. ))
  225. # %%
  226. for target in target_variables:
  227. y = chd8_het_effect[target]
  228. x = chd8_het_effect[['Nest Quality', 'Dam Active Nurse', 'Dam Run',
  229. 'Dam Eat', 'Dam Lick', 'Dam Nest Build', 'Dam Out of Nest',
  230. 'Dam Passive Nurse', 'Dam Rest', 'Total Nurse', 'Dam_PC1', 'Dam_PC2',
  231. 'Pup Climb', 'Pup Crawl/Run', 'Pup Dig', 'Pup Autogroom',
  232. 'Pup Eat Solid', 'Pup Eyes Open', 'Pup Jump', 'Pup L/G',
  233. 'Pup Nest Build', 'Litter Size', '% Chd8 Hets', '% Males', 'Sex']]
  234. # --- Ensure Strain is present (add it to cohort_df if it's in the original x) ---
  235. # If chd8_het_effect contains 'Strain', grab it before dropping/transforming
  236. # Delete parts of SHAP tree with values of ~0
  237. x_filtered = x
  238. zeros = True
  239. while zeros:
  240. shap_values_filtered, x_filtered, tree_filtered = get_shap_tree(x_filtered, y)
  241. if np.all(np.abs(shap_values_filtered).mean(axis=0) >= 0.01):
  242. zeros = False
  243. # Get cohorts
  244. cohorts = get_cohorts(x_filtered, shap_values_filtered)
  245. feature_names = x_filtered.columns.tolist()
  246. valid_features = [name for name in feature_names if name != 'Sex']
  247. cohort_df = get_final_cohort_df(cohorts, valid_features)
  248. if 'Strain' in chd8_het_effect.columns and 'Strain' not in cohort_df.columns:
  249. # assume cohort_df index aligns with chd8_het_effect index; adjust merge as needed
  250. cohort_df = cohort_df.merge(chd8_het_effect[['Strain']], left_index=True, right_index=True, how='left')
  251. # Make dataframe long-format and keep Strain as an id_var
  252. long_df = cohort_df.melt(id_vars=['Sex','Strain'],
  253. value_vars=valid_features,
  254. var_name='Feature',
  255. value_name='Value')
  256. # Helper to extract outliers by Feature using IQR rule
  257. def find_outliers(df):
  258. def _outliers(group):
  259. q1 = group['Value'].quantile(0.25)
  260. q3 = group['Value'].quantile(0.75)
  261. iqr = q3 - q1
  262. lower = q1 - 1.5 * iqr
  263. upper = q3 + 1.5 * iqr
  264. return group[(group['Value'] < lower) | (group['Value'] > upper)]
  265. return df.groupby('Feature', group_keys=False).apply(_outliers)
  266. # Plot: one column per Sex so box grouping remains by Feature but outliers are colored by Strain
  267. sexes = sorted(long_df['Sex'].unique())
  268. ncols = 2
  269. fig, axes = plt.subplots(1, ncols, figsize=(6 * ncols, 6), sharey=True)
  270. # Store legend handles once
  271. legend_handles = None
  272. for ax, sex in zip(axes, sexes):
  273. subset = long_df[long_df['Sex'] == sex]
  274. sns.boxplot(
  275. data=subset,
  276. x='Feature',
  277. y='Value',
  278. showfliers=False,
  279. ax=ax,
  280. color='gray'
  281. )
  282. outliers = find_outliers(subset)
  283. strain_order = all_strains
  284. sns.stripplot(
  285. data=outliers,
  286. x='Feature',
  287. y='Value',
  288. hue='Strain',
  289. hue_order=strain_order,
  290. dodge=False,
  291. jitter=0.25,
  292. ax=ax,
  293. size=6,
  294. marker='o',
  295. edgecolor='gray',
  296. linewidth=0.3
  297. )
  298. # Grab handles only once (from first axis)
  299. if legend_handles is None:
  300. legend_handles, legend_labels = ax.get_legend_handles_labels()
  301. # Remove axis-level legend
  302. if ax.legend_:
  303. ax.legend_.remove()
  304. ax.set_title(f'{target} — Sex: {sex}')
  305. ax.set_xlabel('')
  306. ax.tick_params(axis='x', rotation=45)
  307. plt.ylabel('|SHAP Value|')
  308. # ✅ Add ONE legend to the full figure
  309. if legend_handles:
  310. legend = fig.legend(
  311. legend_handles,
  312. legend_labels,
  313. title='Strain',
  314. loc='center right',
  315. bbox_to_anchor=(1.02, 0.5)
  316. )
  317. legend.remove()
  318. plt.tight_layout(rect=[0, 0, 0.88, 1]) # leave space for legend
  319. plt.savefig(f'Images/boxplot_{target}_outliers_by_strain.png', bbox_inches='tight')
  320. plt.show()
  321. # %%
  322. legend_elements = [
  323. Line2D([0], [0],
  324. marker='o',
  325. color='w',
  326. label=strain,
  327. markerfacecolor=palette[strain],
  328. markeredgecolor='gray',
  329. markersize=8)
  330. for strain in all_strains
  331. ]
  332. # %%
  333. ################## COMBINE PLOTS ##################
  334. fig, axes = plt.subplots(6, 2, figsize=(14, 24))
  335. images = [['Weaning Body Weight', 'Adolescent Body Weight'],
  336. ['Adult Body Weight', 'Terminal Body Weight'], ['Brain Weight',
  337. 'DOF Distance'], ['DSI Aggression', 'DSI Sniffing'],
  338. ['BOF % Center Distance', 'Fear Acquisition'], ['Fear Expression',
  339. 'Fear Extinction']]
  340. plt.subplots_adjust(wspace=0.01)
  341. # Loop over the rows and columns to display images
  342. for row in [0, 1, 2, 3, 4, 5]:
  343. for column in [0, 1]:
  344. ax = axes[row, column]
  345. ax.axis('off')
  346. image_name = images[row][column]
  347. img = mpimg.imread(f'Images/boxplot_{image_name}_outliers_by_strain.png')
  348. ax.imshow(img)
  349. plt.subplots_adjust(right=0.90)
  350. plt.rc('font', size=14)
  351. fig.legend(
  352. handles=legend_elements,
  353. title='Strain',
  354. loc='center right',
  355. bbox_to_anchor=(1.02, 0.5)
  356. )
  357. # Save the figure with higher resolution
  358. plt.savefig('Images/boxplot_shap.png', dpi=300, bbox_inches='tight')
  359. # Display the plot
  360. plt.show()

data_visualization.ipynb at commit 840aae5, no license · at the source

Overview

Authors: Manal Tabbaa1,2, Alexis Gamez1, A’di Dust3, Maja Matarić3, Pat Levitt1,2
  1. Division of Neurology, Department of Pediatrics and Developmental Neuroscience and Neurogenetics Program, Children’s Hospital Los Angeles, The Saban Research Institute,Los Angeles, CA USA
  2. Keck School of Medicine of the University of Southern California,Los Angeles, CA USA
  3. Department of Computer Science, University of Southern California,Los Angeles, CA USA
Institutions: Saban Research Institute (United States); University of Southern California (United States)
Journal: Communications biology, volume 9, issue 1, article 1028
Dates: received 27 June 2025; accepted 10 March 2026; published online 11 May 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1038/s42003-026-09908-0 · PMID 42115306 · PMCID PMC13424357 · OpenAlex W4408096176
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: mouse (organism), other condition (population), autism (population), developmental (subfield)
Methods: Statistics, Smoothing, state filtering, decompositions, Preprocessing, Connectivity, Physiology & signal measures
Keywords: Autism spectrum disorders, Behavioural genetics, Disease model
MeSH: DNA-Binding Proteins*, Genetic Predisposition to Disease*, Genetic Variation*, Haploinsufficiency*, Neurodevelopmental Disorders*, Animals, Behavior, Animal, Female, Male, Maternal Behavior, Mice, Phenotype (* major topic)
Topic: Autism Spectrum Disorder Research (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: National Institute of Mental Health (R21MH118685); NSF (DBI2011039); Saban Research Institute, Children's Hospital Los Angeles
Citations: cited by 1 paper (Europe PMC); 41 references in the paper

Abstract

The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.

Repository

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

adidust4/Offspring-genetic-diversity-Chd8-haploinsufficiency

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 840aae596ae66870d0703c15dc195c65305732ac, 21 February 2026
Languages: Jupyter (1)
Size: 43 files, 1 script
Software Heritage: not archived
Found in: “Code availability”
Holds: README, 1 notebook
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (1 file), NumPy (1 file), pandas (1 file), scikit-learn (1 file), seaborn (1 file), SHAP (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
2 files

Code availability statement

The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

Read it in the paper: doi.org/10.1038/s42003-026-09908-0.

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;
  • 7 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 paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

  • it points to a dataset: figshare 31395966
  • it says that the data are available on request

Read it in the paper: doi.org/10.1038/s42003-026-09908-0.

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, 3 keywords, 12 MeSH terms, 3 funders, 39 references.

Cite

This paper

Tabbaa, M., Gamez, A., Dust, A., Matarić, M., & Levitt, P. (2026). Offspring genetic diversity regulates rearing experiences that predict differential susceptibility to Chd8 haploinsufficiency. Communications biology, 9(1), 1028. https://doi.org/10.1038/s42003-026-09908-0

BibTeX

@article{tabbaa2026offspring,
author = {Tabbaa, Manal and Gamez, Alexis and Dust, A’di and Matarić, Maja and Levitt, Pat},
title = {{Offspring genetic diversity regulates rearing experiences that predict differential susceptibility to Chd8 haploinsufficiency}},
journal = {Communications biology},
year = {2026},
month = may,
volume = {9},
number = {1},
pages = {1028},
publisher = {Nature Publishing Group},
issn = {2399-3642},
doi = {10.1038/s42003-026-09908-0},
url = {https://doi.org/10.1038/s42003-026-09908-0},
pmid = {42115306},
pmcid = {PMC13424357}
}

RIS

TY - JOUR
AU - Tabbaa, Manal
AU - Gamez, Alexis
AU - Dust, A’di
AU - Matarić, Maja
AU - Levitt, Pat
TI - Offspring genetic diversity regulates rearing experiences that predict differential susceptibility to Chd8 haploinsufficiency
T2 - Communications biology
J2 - Commun Biol
PY - 2026
DA - 2026/05/11
VL - 9
IS - 1
SP - 1028
SN - 2399-3642
PB - Nature Publishing Group
DO - 10.1038/s42003-026-09908-0
UR - https://doi.org/10.1038/s42003-026-09908-0
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s42003-026-09908-0",
"type": "article-journal",
"title": "Offspring genetic diversity regulates rearing experiences that predict differential susceptibility to Chd8 haploinsufficiency",
"container-title": "Communications biology",
"author": [
{
"family": "Tabbaa",
"given": "Manal"
},
{
"family": "Gamez",
"given": "Alexis"
},
{
"family": "Dust",
"given": "A’di"
},
{
"family": "Matarić",
"given": "Maja"
},
{
"family": "Levitt",
"given": "Pat"
}
],
"container-title-short": "Commun Biol",
"volume": "9",
"issue": "1",
"page": "1028",
"DOI": "10.1038/s42003-026-09908-0",
"PMID": "42115306",
"PMCID": "PMC13424357",
"ISSN": "2399-3642",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s42003-026-09908-0",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
11
]
]
}
}

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-73416-2 [code]
Defective ventral neurogenesis due to midfetal Chd8 mutation drives autistic-like behavior in mice.
Journal: Nature communications
In common: seaborn, pandas, Matplotlib, 1 other tool, autism, developmental, mouse, 4 references
[2] doi:10.1126/sciadv.adq6577 [code]
Autism-like phenotypes and increased NMDAR2D expression in mice with KDM5B histone lysine demethylase deficiency.
Journal: Science advances
In common: seaborn, pandas, Matplotlib, 1 other tool, autism, mouse, 3 references
[3] doi:10.3389/fgene.2026.1799530 [code]
Sex-dependent prediction of autism.
Journal: Frontiers in genetics
In common: SHAP, seaborn, scikit-learn, 3 other tools, autism
[4] doi:10.1017/s0033291726104103 [code]
Linking brain structure to stress reactivity: cingulate surface area predicts acute cortisol responses.
Journal: Psychological medicine
In common: SHAP, seaborn, scikit-learn, 3 other tools, developmental
[5] doi:10.1038/s41467-026-76837-1 [code]
Drug screen and machine learning predict neuroprotective agents in a preclinical human model of childhood dementia.
Journal: Nature communications
In common: SHAP, seaborn, scikit-learn, 3 other tools, other condition
[6] doi:10.1371/journal.pone.0345854 [code]
Shedding light on neural learning to rank models for anticancer drug prioritization.
Journal: PloS one
In common: SHAP, seaborn, scikit-learn, 3 other tools, other condition
[7] doi:10.3389/fonc.2026.1816015 [code]
Modality-level attribution and redundancy-aware radiomics for MRI-based differentiation of melanoma and NSCLC brain metastases.
Journal: Frontiers in oncology
In common: SHAP, seaborn, scikit-learn, 3 other tools, other condition
[8] doi:10.3390/medicina62061169 [code]
Survival Outcomes and Machine Learning-Based Prediction of 12-Month Mortality in Glioblastoma Before and During the COVID-19 Pandemic: A SEER Population-Based Study.
Journal: Medicina (Kaunas, Lithuania)
In common: SHAP, seaborn, scikit-learn, 3 other tools, other condition
[9] 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: SHAP, seaborn, scikit-learn, 3 other tools, other condition
[10] doi:10.1038/s42003-026-10205-z [code]
Source-space EEG alpha activity reveals brain age gaps due to neurodegeneration and disparity.
Journal: Communications biology
In common: SHAP, seaborn, scikit-learn, 3 other tools, other condition

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.