Innervated human cardiac muscle model reveals sympathetic drivers of KCNH2-associated arrhythmias.
The 3 matches
- [1] § Methods › Orientation analysis of axons and vessels in iEHM ↔ bio_image_unet/siam_unet/train.py, lines 17–51 · score 0.57 · BCE Dice, neural network, convolutional, trained, loss, models
- [2] § Results › Generation and characterization of innervated human cardiac muscle (iEHM) ↔ src/iehm/analysis.py, lines 97–176 · score 0.57 · orientation correlation, Scale bar, angles, axons, CM, vascular
- [3] § Methods › Orientation analysis of axons and vessels in iEHM ↔ src/iehm/analysis.py, lines 69–95 · score 0.54 · Hough, Pearson, angles, orientation, histogram, probabilistic
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 · 299 lines · 11 KB · MIT · 2 matches
- import pickle
- from pathlib import Path
- import matplotlib
- import matplotlib as mpl
- import os.path
- from bio_image_unet import unet # pip install bio-image-unet
- import numpy as np
- import matplotlib.pyplot as plt
- import tifffile
- from matplotlib.ticker import MultipleLocator, FormatStrFormatter
- from matplotlib_scalebar.scalebar import ScaleBar
- from skimage.transform import probabilistic_hough_line
- from skimage.morphology import skeletonize
- from scipy.stats import pearsonr
- MODELS_DIR = Path(__file__).resolve().parents[2] / "models"
- class iEHM_Analysis:
- def __init__(self, filename, pixelsize=0.2076):
- self.filename = filename
- self.pixelsize = pixelsize
- self.folder = os.path.splitext(filename)[0] + '/'
- os.makedirs(self.folder, exist_ok=True)
- self.filename_nf = self.folder + 'nf.tif'
- self.filename_vs = self.folder + 'vs.tif'
- self.filename_nc = self.folder + 'nc.tif'
- self.filename_pc = self.folder + 'pc.tif'
- self.filename_mask_nf = self.folder + 'mask_nf.tif'
- self.filename_mask_vs = self.folder + 'mask_vs.tif'
- self.data = {}
- self.load_data()
- def save_data(self):
- with open(self.folder + 'data.pk', 'wb') as handle:
- pickle.dump(self.data, handle, protocol=pickle.HIGHEST_PROTOCOL)
- def load_data(self):
- if os.path.exists(self.folder + 'data.pk'):
- with open(self.folder + 'data.pk', 'rb') as handle:
- self.data = pickle.load(handle)
- def maxproj(self):
- data = tifffile.imread(self.filename)
- # split channels (neurofil, vasculature, nuclei, pericytes)
- data_nf, data_vs, data_nc, data_pc = data[:, 0], data[:, 1], data[:, 2], data[:, 3]
- # save mips
- tifffile.imwrite(self.filename_nf, np.max(data_nf, axis=0))
- tifffile.imwrite(self.filename_vs, np.max(data_vs, axis=0))
- tifffile.imwrite(self.filename_nc, np.max(data_nc, axis=0))
- tifffile.imwrite(self.filename_pc, np.max(data_pc, axis=0))
- def predict_NF_VS(self, model_nf_path=None, model_vs_path=None):
- model_NF = model_nf_path or str(MODELS_DIR / 'model_NF.pth')
- model_VS = model_vs_path or str(MODELS_DIR / 'model_VS.pth')
- unet.Predict(self.filename_nf, self.filename_mask_nf, model_params=model_NF, resize_dim=(2048, 2048),
- network='Unet_v0')
- unet.Predict(self.filename_vs, self.filename_mask_vs, model_params=model_VS, resize_dim=(2048, 2048),
- network='Unet_v0')
- def orientation_analysis(self):
- # hough line transform
- img_mask_vs = tifffile.imread(self.filename_mask_vs) > 255 * 0.5
- img_mask_nf = tifffile.imread(self.filename_mask_nf) > 255 * 0.5
- img_mask_vs_skel = skeletonize(img_mask_vs)
- lines_vs = np.asarray(probabilistic_hough_line(img_mask_vs_skel, line_gap=50))
- img_mask_nf_skel = skeletonize(img_mask_nf)
- lines_nf = np.asarray(probabilistic_hough_line(img_mask_nf_skel, line_gap=50))
- angles_lines_vs = np.asarray([np.arctan(np.diff(line.T[0]) / np.diff(line.T[1])) for line in lines_vs])[:,
- 0] + np.pi / 2
- angles_lines_nf = np.asarray([np.arctan(np.diff(line.T[0]) / np.diff(line.T[1])) for line in lines_nf])[:,
- 0] + np.pi / 2
- hist_vs, hist_nf = np.histogram(angles_lines_vs, density=True, bins=20), np.histogram(angles_lines_nf,
- density=True, bins=20)
- R, p = pearsonr(hist_vs[0], hist_nf[0])
- _dict = {'lines_vs': lines_vs, 'lines_nf': lines_nf, 'angles_lines_vs': angles_lines_vs,
- 'angles_lines_nf': angles_lines_nf, 'hist_nf': hist_nf, 'hist_vs': hist_vs, 'corr_R': R}
- self.data.update(_dict)
- self.save_data()
- def plot(self):
- mosaic = """
- abcd
- eghi
- """
- fig, axs = plt.subplot_mosaic(mosaic, figsize=(width_2cols, width_2cols / 2), constrained_layout=True,
- dpi=900, per_subplot_kw={'i': {'projection': 'polar'}})
- img_vs = tifffile.imread(self.filename_vs)
- img_vs = np.clip(img_vs, np.percentile(img_vs, 0.5), np.percentile(img_vs, 99.5))
- axs['a'].imshow(img_vs, cmap='gray')
- img_nf = tifffile.imread(self.filename_nf)
- img_nf = np.clip(img_nf, np.percentile(img_nf, 0.5), np.percentile(img_nf, 99.5))
- axs['c'].imshow(img_nf, cmap='gray')
- img_mask_vs = tifffile.imread(self.filename_mask_vs) > 255 * 0.5
- img_mask_nf = tifffile.imread(self.filename_mask_nf) > 255 * 0.5
- axs['b'].imshow(img_mask_vs, cmap='gray')
- axs['d'].imshow(img_mask_nf, cmap='gray')
- rgb = np.dstack((img_mask_vs * 255, img_mask_nf * 255, np.zeros_like(img_mask_vs))).astype('uint8')
- axs['e'].imshow(rgb)
- remove_ticks(axs['a'])
- remove_ticks(axs['b'])
- remove_ticks(axs['c'])
- remove_ticks(axs['d'])
- remove_ticks(axs['e'])
- remove_ticks(axs['g'])
- remove_ticks(axs['h'])
- axs['a'].set_title('Vasculature', weight='semibold')
- axs['b'].set_title('Mask vasculature', weight='semibold')
- axs['c'].set_title('Axons', weight='semibold')
- axs['d'].set_title('Mask axons', weight='semibold')
- axs['e'].set_title('Mask overlay', weight='semibold')
- norm = matplotlib.colors.Normalize(vmin=0, vmax=180, clip=True)
- mapper = matplotlib.cm.ScalarMappable(norm=norm, cmap='hsv')
- axs['g'].imshow(img_mask_vs, cmap='gray')
- for line, angle in zip(self.data['lines_vs'], self.data['angles_lines_vs']):
- p0, p1 = line
- axs['g'].plot((p0[0], p1[0]), (p0[1], p1[1]), c=mapper.to_rgba(angle / np.pi * 180))
- plt.colorbar(mapper, ax=axs['g'], label='Orientation vasculature [°]', orientation='horizontal')
- axs['h'].imshow(img_mask_nf, cmap='gray')
- for line, angle in zip(self.data['lines_nf'], self.data['angles_lines_nf']):
- p0, p1 = line
- axs['h'].plot((p0[0], p1[0]), (p0[1], p1[1]), c=mapper.to_rgba(angle / np.pi * 180))
- plt.colorbar(mapper, ax=axs['h'], label='Orientation axons [°]', orientation='horizontal')
- axs['i'].hist([self.data['angles_lines_vs'], self.data['angles_lines_nf']], density=True, bins=20,
- label=['VS', 'NF'])
- axs['i'].set_thetamax(180)
- R = self.data['corr_R']
- axs['i'].set_title(f'Orientational correlation (R={R.round(3)})', pad=-20)
- axs['i'].legend(loc=5)
- for k in axs.keys():
- if k != 'i':
- axs[k].add_artist(ScaleBar(self.pixelsize, units='µm', frameon=False, color='w', sep=1,
- height_fraction=0.03, location='lower right', scale_loc='top',
- font_properties={'size': fontsize - 1, 'weight': 'bold'}))
- plt.show()
- fig.savefig(self.folder + 'result.pdf')
- # plot params
- fontsize = 8
- markersize = 3
- labelpad = 1
- dpi = 600
- save_format = 'png'
- mpl.rcParams['pdf.fonttype'] = 42
- mpl.rcParams['ps.fonttype'] = 42
- width_1cols = 3.5
- width_1p5cols = 5
- width_2cols = 7.1
- plt.rcParams.update({'font.size': fontsize, 'axes.labelpad': labelpad, 'font.family': 'arial'})
- plt.style.use('seaborn-v0_8-paper')
- def label_all_panels(axs, offset=(-0.1, 1.1), color='k'):
- """
- Labels all panels in a given dictionary of Axes objects.
- Parameters:
- axs (dict): A dictionary of Axes objects.
- offset (tuple, optional): The x and y offset for the labels. Defaults to (-0.1, 1.1).
- color (str, optional): The color of the labels. Defaults to 'k' (black).
- """
- for key in axs.keys():
- label_panel(axs[key], key, offset=offset, color=color)
- def label_panel(ax, label, offset=(-0.1, 1.1), color='k'):
- """
- Labels a single panel with the specified label.
- Parameters:
- ax (matplotlib.axes.Axes): The Axes object representing the panel to be labeled.
- label (str): The label to be displayed.
- offset (tuple, optional): The x and y offset for the label. Defaults to (-0.1, 1.1).
- color (str, optional): The color of the label. Defaults to 'k' (black).
- """
- ax.text(offset[0], offset[1], label, transform=ax.transAxes,
- fontsize=fontsize + 1, fontweight='bold', va='top', ha='right', color=color)
- def remove_all_spines(axs):
- """
- Removes the spines from all panels in a given dictionary of Axes objects.
- Parameters:
- axs (dict): A dictionary of Axes objects.
- """
- for key in axs.keys():
- remove_spines(axs[key])
- def remove_spines(ax):
- """
- Removes the spines from a single panel.
- Parameters:
- ax (matplotlib.axes.Axes): The Axes object representing the panel.
- """
- ax.spines['right'].set_visible(False)
- ax.spines['top'].set_visible(False)
- def change_color_spines(ax, c='w'):
- """
- Changes the color of the spines (borders) of a single panel.
- Parameters:
- ax (matplotlib.axes.Axes): The Axes object representing the panel.
- c (str, optional): The color of the spines. Defaults to 'w' (white).
- """
- ax.spines['bottom'].set_color(c)
- ax.spines['top'].set_color(c)
- ax.spines['right'].set_color(c)
- ax.spines['left'].set_color(c)
- def remove_ticks(ax):
- """
- Removes the ticks (markings) from both x-axis and y-axis of a single panel.
- Parameters:
- ax (matplotlib.axes.Axes): The Axes object representing the panel.
- """
- ax.set_xticks([])
- ax.set_yticks([])
- def polish_xticks(ax, major, minor, pad=3):
- """
- Formats and polishes the x-ticks (markings) of a single panel.
- Parameters:
- ax (matplotlib.axes.Axes): The Axes object representing the panel.
- major (float): The major tick spacing.
- minor (float): The minor tick spacing.
- pad (float, optional): The padding between the x-axis and the tick labels. Defaults to 3.
- """
- ax.xaxis.set_major_locator(MultipleLocator(major))
- ax.xaxis.set_major_formatter(FormatStrFormatter('%g'))
- ax.xaxis.set_minor_locator(MultipleLocator(minor))
- ax.tick_params(axis='x', pad=pad)
- def polish_yticks(ax, major, minor, pad=3):
- """
- Formats and polishes the y-ticks (markings) of a single panel.
- Parameters:
- ax (matplotlib.axes.Axes): The Axes object representing the panel.
- major (float): The major tick spacing.
- minor (float): The minor tick spacing.
- pad (float, optional): The padding between the y-axis and the tick labels. Defaults to 3.
- """
- ax.yaxis.set_major_locator(MultipleLocator(major))
- ax.yaxis.set_major_formatter(FormatStrFormatter('%g'))
- ax.yaxis.set_minor_locator(MultipleLocator(minor))
- ax.tick_params(axis='y', pad=pad)
analysis.py at commit 871cb79, under MIT · at the source
Overview
13 affiliations
- Institute of Pharmacology and Toxicology, University Medical Center Göttingen,Göttingen, Germany
- DZHK (German Center for Cardiovascular Research), partner site Lower Saxony,Göttingen, Germany
- MBExC (Multi-Scale Bioimaging Excellence Cluster), Göttingen, Germany
- German Center for Neurodegenerative Diseases,Göttingen, Germany
- Department of Clinical Pharmacology, University Medical Center Göttingen,Göttingen, Germany
- Max Delbrück Center for Molecular Medicine in the Helmholtz Association (MDC), Technology Platform Pluripotent Stem Cells,Berlin, Germany
- Department of Cardiology and Pneumology, University Medical Center,Göttingen, Germany
- Fraunhofer Institute for Translational Medicine and Pharmacology (ITMP),Göttingen, Germany
- German Center for Child and Adolescent Health (DZKJ), partner site Lower Saxony, Göttingen, Germany
- Campus-Institute Data Science (CIDAS),Göttingen, Germany
- Else Kröner Fresenius Center for Optogenetic Therapies (EKFZ L2T),Göttingen, Germany
- Clinic for Pediatric and Adolescent Medicine, University Medical Center Göttingen,Göttingen, Germany
- Collaborative Research Center 1690, University of Göttingen,Göttingen, Germany
Abstract
Cardiac autonomic neurons regulate contractility. Autonomic nervous system dysregulation can cause sympathetic overdrive, leading to heart failure, and fatal arrhythmias. Here, we introduce innervated engineered human myocardium (iEHM), a model of neuro-cardiac junctions, constructed by fusing sympathetic neuronal organoids (SNO) and engineered human myocardium (EHM). Projections of sympathetic neurons formed presynaptic terminals in close proximity to cardiomyocytes and to the extensive vascular network co-developing in iEHM. Contractile responses to optogenetic stimulation of the accordingly engineered neuronal component demonstrated functional neuro-cardiac junctions. Modeling long-QT 2 in iEHM revealed sympathetic neuron hyperactivity and after depolarizations, underscoring a central role for sympathetic drive in KCNH2-associated arrhythmias. β-adrenoreceptor blockade was insufficient to rescue the pro-arrhythmic phenotype, while mexiletine targeting both neurons and cardiomyocytes, proved to be more effective. Collectively, our data establishes iEHM as a New Approach Methodology that provides a human-relevant, physiologically integrated model for mechanistic investigations and pharmacological testing.
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 3 matches between paragraphs and lines of code.
danihae/bio-image-unet
ec8a04a93849963e3c76a64f538dc1761ce79b63, 17 August 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
63 files
- bio_image_unet/
__init__.py , Python, 2 lines - bio_image_unet/
multi_output_unet/ , Python, 11 lines__init__.py - bio_image_unet/
multi_output_unet/ , Python, 349 linesdata.py - bio_image_unet/
multi_output_unet/ , Python, 189 lineslosses.py - bio_image_unet/
multi_output_unet/ , Python, 269 linesmulti_output_nested_unet .py - bio_image_unet/
multi_output_unet/ , Python, 134 linesmulti_output_unet.py - bio_image_unet/
multi_output_unet/ , Python, 335 linespredict.py - bio_image_unet/
multi_output_unet/ , Python, 407 linestrain.py - bio_image_unet/
multi_output_unet3d/ , Python, 10 lines__init__.py - bio_image_unet/
multi_output_unet3d/ , Python, 267 linesdata.py - bio_image_unet/
multi_output_unet3d/ , Python, 298 lineslosses.py - bio_image_unet/
multi_output_unet3d/ , Python, 170 linesmulti_output_unet3d.py - bio_image_unet/
multi_output_unet3d/ , Python, 325 linespredict.py - bio_image_unet/
multi_output_unet3d/ , Python, 273 linestrain.py - bio_image_unet/
progress/ , Python, 1 line__init__.py - bio_image_unet/
progress/ , Python, 138 linesprogressnotifier.py - bio_image_unet/
siam_unet/ , Python, 17 lines__init__.py - bio_image_unet/
siam_unet/ , Python, 289 linesdata.py - bio_image_unet/
siam_unet/ , Python, 7 lineshelpers/ __cpu_count__.py - bio_image_unet/
siam_unet/ , Python, 24 lineshelpers/ __md5sum__.py - bio_image_unet/
siam_unet/ , Python, 43 lineshelpers/ average_tifs.py - bio_image_unet/
siam_unet/ , Python, 46 lineshelpers/ create_pixel_value_histo gram.py - bio_image_unet/
siam_unet/ , Python, 13 lineshelpers/ cuda_test.py - bio_image_unet/
siam_unet/ , Python, 42 lineshelpers/ extract_frame_of_movie.p y - bio_image_unet/
siam_unet/ , Python, 93 lineshelpers/ find_frame_of_image.py - bio_image_unet/
siam_unet/ , Python, 19 lineshelpers/ generate_plain_image.py - bio_image_unet/
siam_unet/ , Python, 127 lineshelpers/ generate_siam_unet_input _imgs.py - bio_image_unet/
siam_unet/ , Python, 45 lineshelpers/ low_mem_tif_utils.py - bio_image_unet/
siam_unet/ , Python, 37 lineshelpers/ threshold_images.py - bio_image_unet/
siam_unet/ , Python, 74 lineshelpers/ tif_to_mp4.py - bio_image_unet/
siam_unet/ , Python, 104 lineshelpers/ util.py - bio_image_unet/
siam_unet/ , Python, 286 lineslosses.py - bio_image_unet/
siam_unet/ , Python, 242 linespredict.py - bio_image_unet/
siam_unet/ , Python, 148 linessiam_unet.py - bio_image_unet/
siam_unet/ , Python, 172 lines, 1 matchtrain.py - bio_image_unet/
unet/ , Python, 12 lines__init__.py - bio_image_unet/
unet/ , Python, 181 linesattention_unet.py - bio_image_unet/
unet/ , Python, 93 linesbaby_unet.py - bio_image_unet/
unet/ , Python, 266 linesdata.py - bio_image_unet/
unet/ , Python, 240 lineslosses.py - bio_image_unet/
unet/ , Python, 231 linespredict.py - bio_image_unet/
unet/ , Python, 198 linestrain.py - bio_image_unet/
unet/ , Python, 104 linesunet.py - bio_image_unet/
unet/ , Python, 106 linesunet_v0.py - bio_image_unet/
unet3d/ , Python, 10 lines__init__.py - bio_image_unet/
unet3d/ , Python, 260 linesdata.py - bio_image_unet/
unet3d/ , Python, 240 lineslosses.py - bio_image_unet/
unet3d/ , Python, 197 linespredict.py - bio_image_unet/
unet3d/ , Python, 217 linestrain.py - bio_image_unet/
unet3d/ , Python, 99 linesunet3d.py - bio_image_unet/
utils/ , Python, 1 line__init__.py - bio_image_unet/
utils/ , Python, 162 linesimage_annotator.py - bio_image_unet/
utils/ , Python, 104 linesmodel_cache.py - bio_image_unet/
utils/ , Python, 137 linestest.py - bio_image_unet/
utils/ , Python, 450 linestiling.py - bio_image_unet/
utils/ , Python, 80 linesutils.py - tests/
test_package_api.py , Python, 68 lines - tests/
test_predict_shapes.py , Python, 245 lines - tests/
test_tiling.py , Python, 335 lines - using_siam_unet.ipynb, Jupyter, 322 lines
- using_unet.ipynb, Jupyter, 210 lines
- LICENSE, License, 21 lines
- README.md, Text, 16 lines
danihae/iEHM-analysis
871cb79f2c35ee83fc461e0eb2b35f5674582521, 9 July 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
8 files
- notebooks/
analysis.ipynb , Jupyter, 46 lines - notebooks/
data_download.ipynb , Jupyter, 110 lines - notebooks/
training.ipynb , Jupyter, 111 lines - notebooks/
training_data_generation , Jupyter, 80 lines.ipynb - src/
iehm/ , Python, 23 lines__init__.py - src/
iehm/ , Python, 299 lines, 2 matchesanalysis.py - LICENSE, License, 21 lines
- README.md, Text, 141 lines
Code availability
Custom Python scripts for deep learning and image analysis were used. The U-Net implementation is publicly available at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
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;
- 67 scripts, each with its path and the digest of its content;
- 3 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
- arrayexpress:E-MTAB-1623
2 , at ArrayExpress; found in “Data availability” - geo:GSE313106, at NCBI GEO; found in “Data availability”
- zenodo:21268390, at Zenodo; found in “Code availability”
Data availability
The single-nucleus RNA sequencing data generated in this study have been deposited in the NCBI Gene Expression Omnibus database under accession code GSE313106 (https://
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, 21 authors, 3 keywords, 9 MeSH terms, 2 funders, 100 references.
Cite
This paper
Schneider, L. V., Setya, M. G., Bao, G., Härtter, D., Methi, A., Krüger, D., Schreiber, M. K., Jensen, O., Kanari, E., Schmoll, K. A., Telugu, N. S., Sakib, S., Kim, E. S., Fahud, A. L., Novin, M., Seedorf, A., Diecke, S., Fischer, A., Liaw, N. Y., . . . Zafeiriou, M.-P. (2026). Innervated human cardiac muscle model reveals sympathetic drivers of KCNH2-associated arrhythmias. Nature communications, 17(1), 9404. https://
BibTeX
@article{schneider2026in
author = {Schneider, Lennart Valentin and Setya, Michael Gani and Bao, Guobin and Härtter, Daniel and Methi, Aditi and Krüger, Dennis and Schreiber, Marie Kristin and Jensen, Ole and Kanari, Elisavet and Schmoll, Kea Aline and Telugu, Narasimha Swamy and Sakib, Sadman and Kim, Eun Seo and Fahud, Aminath Luveysa and Novin, Maham and Seedorf, Aylin and Diecke, Sebastian and Fischer, André and Liaw, Norman Y. and Zimmermann, Wolfram-Hubertus and Zafeiriou, Maria-Patapia},
title = {{Innervated human cardiac muscle model reveals sympathetic drivers of KCNH2-associated arrhythmias}},
journal = {Nature communications},
year = {2026},
month = sep,
volume = {17},
number = {1},
pages = {9404},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/
url = {https://
pmid = {42686760},
pmcid = {PMC13538559}
}
RIS
TY - JOUR
AU - Schneider, Lennart Valentin
AU - Setya, Michael Gani
AU - Bao, Guobin
AU - Härtter, Daniel
AU - Methi, Aditi
AU - Krüger, Dennis
AU - Schreiber, Marie Kristin
AU - Jensen, Ole
AU - Kanari, Elisavet
AU - Schmoll, Kea Aline
AU - Telugu, Narasimha Swamy
AU - Sakib, Sadman
AU - Kim, Eun Seo
AU - Fahud, Aminath Luveysa
AU - Novin, Maham
AU - Seedorf, Aylin
AU - Diecke, Sebastian
AU - Fischer, André
AU - Liaw, Norman Y.
AU - Zimmermann, Wolfram-Hubertus
AU - Zafeiriou, Maria-Patapia
TI - Innervated human cardiac muscle model reveals sympathetic drivers of KCNH2-associated arrhythmias
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/
VL - 17
IS - 1
SP - 9404
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Innervated human cardiac muscle model reveals sympathetic drivers of KCNH2-associated arrhythmias",
"container-title": "Nature communications",
"author": [
{
"family": "Schneider",
"given": "Lennart Valentin"
},
{
"family": "Setya",
"given": "Michael Gani"
},
{
"family": "Bao",
"given": "Guobin"
},
{
"family": "Härtter",
"given": "Daniel"
},
{
"family": "Methi",
"given": "Aditi"
},
{
"family": "Krüger",
"given": "Dennis"
},
{
"family": "Schreiber",
"given": "Marie Kristin"
},
{
"family": "Jensen",
"given": "Ole"
},
{
"family": "Kanari",
"given": "Elisavet"
},
{
"family": "Schmoll",
"given": "Kea Aline"
},
{
"family": "Telugu",
"given": "Narasimha Swamy"
},
{
"family": "Sakib",
"given": "Sadman"
},
{
"family": "Kim",
"given": "Eun Seo"
},
{
"family": "Fahud",
"given": "Aminath Luveysa"
},
{
"family": "Novin",
"given": "Maham"
},
{
"family": "Seedorf",
"given": "Aylin"
},
{
"family": "Diecke",
"given": "Sebastian"
},
{
"family": "Fischer",
"given": "André"
},
{
"family": "Liaw",
"given": "Norman Y."
},
{
"family": "Zimmermann",
"given": "Wolfram-Hubertus"
},
{
"family": "Zafeiriou",
"given": "Maria-Patapia"
}
],
"container-title-short":
"volume": "17",
"issue": "1",
"page": "9404",
"DOI": "10.1038/
"PMID": "42686760",
"PMCID": "PMC13538559",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
2
]
]
}
}
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/s41586-026-10679-1 [code]
- Cortical development dynamics across autism spectrum disorder mouse models.Journal: NatureIn common: tifffile, OpenCV, scikit-image, 3 other tools, 7 references
- [2] doi:10.1002/advs.202522762 [code]
- Enhancing Maturation of Human Neuromuscular Organoids via Electrical Stimulation.Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)In common: tifffile, scikit-image, Pillow, 3 other tools, 4 references
- [3] doi:10.1038/s41467-026-74320-5 [code]
- Spatial architecture of autism pathogenesis reveals mosaic structural disarray during early development.Journal: Nature communicationsIn common: tifffile, OpenCV, scikit-image, 4 other tools, 4 references
- [4] doi:10.1371/journal.pcbi.1014571 [code]
- SynAPSeg: A novel dataset and image analysis framework for deep learning-based synapse detection and quantification.Journal: PLoS computational biologyIn common: napari, tifffile, OpenCV, 6 other tools
- [5] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: tifffile, OpenCV, scikit-image, 4 other tools, 4 references
- [6] doi:10.1038/s41467-026-73045-9 [code]
- Aberration-aware 3D localization microscopy via self-supervised neural-physics learning.Journal: Nature communicationsIn common: napari, tifffile, OpenCV, 6 other tools
- [7] doi:10.1038/s41586-026-10323-y [code]
- Genetically encoded assembly recorder temporally resolves cellular history.Journal: NatureIn common: napari, tifffile, OpenCV, 5 other tools
- [8] doi: [code]
- Real-time closed-loop feedback system for mouse mesoscale cortical signal and movement controlJournal: eLifeIn common: napari, tifffile, OpenCV, 5 other tools
- [9] doi:10.64898/2026.03.12.711239 [code]
- Back-illumination Phase Imaging Enables Nanoscale Drift Stabilization in Non-transparent Biological TissuesJournal: bioRxiv (preprint)In common: napari, tifffile, OpenCV, 5 other tools
- [10] doi:10.1038/s41467-026-71458-0 [code]
- Early differential impact of MeCP2 mutations on functional networks in Rett syndrome patient-derived human cortical organoids.Journal: Nature communicationsIn common: tifffile, OpenCV, scikit-image, 4 other tools, 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.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 67 scripts, and 3 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:bcc9fac6b2cfa991…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
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.
