Computationally-informed point of departure evaluation for proarrhythmic cardiotoxicity assessment using 3D engineered cardiac microtissues from human iPSC-derived cardiomyocytes
Data files
Jun 25, 2025 version files 2.29 MB
-
POD_simul_data.py
20.86 KB
-
PoD-Estimation-ExpData-v1.py
27.81 KB
-
README.md
5.02 KB
-
Simul-population-APD90-vs-hERGblock.dat
1.12 MB
-
Simul-population-APDtri-vs-hERGblock.dat
1.12 MB
Abstract
Human induced pluripotent stem cell-derived cardiomyocytes (hiPSC-CMs) are a promising new approach for in vitro proarrhythmic cardiotoxicity assessment. However, variation due to differentiation batch, individual sample variation, and non-linear responses to test drugs complicate prediction of proarrhythmic drug concentrations. This study combines a computational human action potential (AP) model of hERG channel block with experimental data from three-dimensional hiPSC-CM engineered microtissues to optimize point of departure (POD) estimation of drug-induced prolongation of AP duration (APD). Computer simulations predicted that APD prolongation from hERG block follows a logistic curve and that >81% hERG block induced early afterdepolarizations (EADs) which significantly shifted the APD response curve. Curve fitting of APD response by logistic, bilinear breakpoint, and maximal curvature was more accurate prior to EAD onset. Goodness-of-fit testing indicated that logistic regression with ≥6 test concentrations was sufficient to accurately estimate PODs. Power analysis, based on experimental variations between batches (n=14), molds (n=57), and microtissues (n=1701) predicted that PODs from 2~3 batches with 10 microtissues per mold using a 5% threshold for APD prolongation detected proarrhythmic cardiotoxicity with a negligible false positive rate. We then applied this POD analysis to hiPSC‑CM microtissue data after treatment with well characterized drugs (i.e., cisapride, ranolazine, quinidine, and verapamil). Using bootstrapping, we estimated PODs and confidence intervals that matched concentrations known to cause proarrhythmic effects in patients. This study identified a robust method for calculating PODs for proarrhythmic cardiotoxicity risk in vitro and developed a framework for experimental design in this and other in vitro platforms.
Dataset DOI: 10.5061/dryad.wh70rxx15
Description of the data and file structure
POD calculation and plotting from the human AP (ToRORd) population simulation data (APD90 or APDtriangulation) or experimental data
Simulation to generate data in simulation files:
The simulation was run with the Tomek et al. (PMID: 31868580) human action potential model. hERG block was represented as a gradient of IKr conductance from 100% to 0% (100 cells along the x axis), and cell population variability was represented by normally distributed random variation of INa, ICa, IKr, and IKs conductances (± 20%) (200 cells along the y axis). APD90 or APDtri were calculated for each cell in the matrix (see data files below).
Data Files:
Simulation data
Simul-population-APD90-vs-hERGblock.dat
Simul-population-APDtri-vs-hERGblock.dat
Experimental data
The experimental data was previously published with its ReadMe file on:
Dryad Digital Repository at doi: https://datadryad.org/dataset/doi:10.5061/dryad.sqv9s4nbn
Data Filename Description:
Simul-population = Indicates data from human AP simulation with a distribution of APs generated by randomly varying INa, ICa, IKr, and IKs conductances by 20%.
APD90 = Action potential duration (APD) at maximum 90% repolarization data calculated from simulation data
APDtri = Action potential triangulation (APD90 – APD at 50% repolarization) data calculated from simulation data
hERGblock = Degree of simulated hERG block in human AP simulation
Description of data file column names:
Ind: Index number for output matrix from simulation (200 rows x 100 columns) representing 1 AP condition. IKr (hERG) conductance varied along x (columns) from 100 to 0, and INa, ICa, IKr, and IKs conductance varied along y (rows).
xloc: x coordinate of data point
yloc: y coordinate of data point
value: APD90 or APDtri (ms)
Description of code files:
POD_simul_data.py: Algorithm for calculating point of departure (PoD) from concentration response curves (action potential duration vs. %block) of simulated data from hERG block within a human action potential model (Tomek, J et al. PMID:31868580)
PoD-Estimation-ExpData-v1.py: Algorithm for calculating point of departure (PoD) from dose response curves (action potential duration vs. concentration) of hiPSC-derived cardiac 3D microtissues in response to cardiotoxic drugs. PoD is calculated by resampling data using bootstrapping.
Software Requirements:
Python version 3.11.7
Anaconda version 29.9.0
To run the POD calculation and the plotting computer code of the simulation data:
- Open the Python file “PoD_simul_data.py” from the folder with the sample data
- Need to change file directory name in “read_simul_data()” function to your folder containing simulation data
- Compile the file (play button)
- Type “plot_fits_APD90()” into the command line and hit “return” (also works for APDtri data)
Before running: Need to enter fit_type: 0=logistic fit, 1=bilinear fit, 2=softplus fit, 3=maximal curvature. Also, adjust the xrange and number of samples (up to 100). If using maximal curvature, adjust dx and nroll parameters according to the comments just above the "plot_fits_APD90()" function in the code. - Depending on which fit method, range, and number of samples, the mean APD90 and standard deviation with be plotted in green overlaid with the fitted curve (blue) with a star at the mean POD value.
- Example: plot_fits_APD90(fit_type=0, xrange=99,samples=100)
- To plot the POD probability distributions, type “plot_PoD_Logistic()” or “plot_PoD_Piecewise()”, etc. (full list of functions in the header comments of the Python code).
To run the POD estimation and plotting computer code of experimental data:
- Download experimental data from the “DataDryad” site listed above
- Open the Python file “PoD-Estimation-ExpData-v1.py” from the folder with the sample data
- Compile the file (play button)
- Type routine name: calc_plot_PoD_distribution_all_fit_types in the command line
- Parameters:
drugname: string values for 'Cisapride', 'Ranolazine', 'Quinidine', or 'Verapamil'
APDtype: string values for 'mxr' or 'tri', default is 'mxr'
num_bootstrap: number of bootstrap, default is 1000
bootstrap_type: set different bootstrap type, default is 2. 0: individual, 1:pooled, 2: individual equal weight, 3: pooled equal weight, additional parameters for maximal curvature dx, nroll to adjust the steps and average to avoid errors in curvature calculation if maximal curvature shows sharp peak, increase dx and nroll - Example: calc_plot_PoD_distribution_all_fit_types(drugname = 'Cisapride')
