Specialized cortical ER architecture modulates Ca<sup>2+</sup> signaling dynamics.
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
MATLAB · 172 lines · 6.9 KB · CC-BY-4.0
- %% Mesh Generation for the Less Tunnelling Calcium Model with 2 Subdomains (Cytoplasm and ER)
- % This is the code that generates the mesh of the Calcium Model (with
- % interior boundary). This mesh generation code follows MATLAB's
- % PDE Modeler User Guide.
- % Clear everything to ensure an empty environment before running
- clear all
- close all
- clc
- % Set Hmax, Hmin and Hgrad values (parameters that determine mesh size and
- % growth rate)
- Hmax_par = 70; % Maximum triangular mesh edge
- Hmin_par = 5; % Minimum triangular mesh edge
- Hgrad_par = 1.5; %Specify how fast the mesh size grow (between 1 and 2)
- Hedge_par = 5; %Specify how fine the mesh size is, override Hmin_par (use in cortical region)
- Hvertex_par = Hedge_par;
- %% Create geometry objects
- % Create an ER polygon as the base
- ER_geom = [2; 16; 900; 2150; 2150; 930; 930; 1850; 1850; 500; 470; 550; 550; 350; 350; 440; 500; 900;
- 200; 200; 400; 400; 770; 770; 800; 800; 860; 860; 885; 885; 860; 860; 770; 770;];
- % Full cell geom
- Full_geom = [2; 4; 0; 2350; 2350; 0;
- 0; 0; 900; 900;];
- Full_geom = [Full_geom; zeros(length(ER_geom) - length(Full_geom),1)];
- % Create a matrix to store the ER polygon
- ER_geom_matrix = ER_geom;
- % Create name for the ER geometry
- ER_geom_name = char('ER');
- ER_geom_name = ER_geom_name';
- % The formula for the resultant ER geometry
- ER_geom_formula = 'ER';
- % Create the ER geometry object
- [ER_dl,ER_bt] = decsg(ER_geom_matrix,ER_geom_formula,ER_geom_name);
- % Create ER PDE object
- ER_model = createpde();
- % Set the ER geometry into the ER PDE model
- geometryFromEdges(ER_model,ER_dl);
- % Generate the mesh of the ER geometry
- ER_mesh = generateMesh(ER_model,'Hmax',Hmax_par,...
- 'Hmin',Hmin_par,'Hedge',{[5 6 7 8 9 10 11 13 14 15 16],Hedge_par},...
- 'Hgrad',Hgrad_par,'GeometricOrder','linear');
- % Create a matrix to store the ER polygon and the full cell polygon
- geom_mat = [ER_geom, Full_geom];
- % Create name for the stored polygon
- geom_name = char('ER','Full');
- geom_name = geom_name';
- % The formula to get the cytoplasm geometry by deducting the ER poylgon
- % from the full cell polygon
- Cyto_geom = 'Full-ER';
- % Create the ER-PM junction cytoplasm geometry object
- [Cyto_dl,Cyto_bt] = decsg(geom_mat,Cyto_geom,geom_name);
- % Create ER-PM junction cytoplasm PDE object
- Cyto_model = createpde();
- % Set the ER-PM junction cytoplasm geometry into the ER PDE model
- geometryFromEdges(Cyto_model,Cyto_dl);
- % Generate the mesh of the ER-PM junction cytoplasm geometry
- Cyto_mesh = generateMesh(Cyto_model,'Hmax',Hmax_par,...
- 'Hmin',Hmin_par,'Hedge',{[4 5 6 7 8 9 10 13 14 15 16],Hedge_par},...
- 'Hgrad',Hgrad_par,'GeometricOrder','linear');
- %% Plot the resultant geometry object
- % Plot the resultant geometry object to view its edges and subdomains.
- % Great to check which edge is the interior boundary.
- figure(1)
- pdegplot(ER_dl,"EdgeLabels","on","VertexLabels","off")
- hold on
- pdegplot(Cyto_dl,"EdgeLabels","off","VertexLabels","off")
- xlim([-50 2500])
- ylim([-50 900])
- figure(2)
- pdegplot(ER_dl,"EdgeLabels","off","VertexLabels","off")
- hold on
- pdegplot(Cyto_dl,"EdgeLabels","on","VertexLabels","off")
- xlim([-50 2500])
- ylim([-50 950])
- % Plot the resultant geometry with the generated mesh
- figure(3)
- pdeplot(ER_model,NodeLabels="off");
- hold on
- pdeplot(Cyto_model,NodeLabels="off");
- xlim([-50 2500])
- ylim([-50 900])
- %% Extract the Point, Edge, and Connectivity matrix of the resultant geometric object
- [ER_p,ER_e,ER_t] = meshToPet(ER_model.Mesh);
- [Cyto_p,Cyto_e,Cyto_t] = meshToPet(Cyto_model.Mesh);
- % Round up the coordinates to 8 decimal points for easier match of the interior
- % shared boundaries/edges
- ER_p = round(ER_p,6);
- Cyto_p = round(Cyto_p,6);
- %% Extracting nodal info from Cytoplasm and ER regions which share the same edge
- for i = 1:size(Cyto_p,2)
- Cyto_p(3,i) = i;
- end
- for i = 1:size(ER_p,2)
- ER_p(3,i) = i;
- end
- % Extract the nodal info of the interior boundaries from ER
- inter_bound_ER_e_pointer = (ER_e(5,:) == 1 | ER_e(5,:) == 2 | ER_e(5,:) == 3 |...
- ER_e(5,:) == 6 | ER_e(5,:) == 7 | ER_e(5,:) == 8 | ER_e(5,:) == 9 |...
- ER_e(5,:) == 10 | ER_e(5,:) == 11 | ER_e(5,:) == 13 |...
- ER_e(5,:) == 14 | ER_e(5,:) == 15);
- inter_bound_ER_e = ER_e(1:2,inter_bound_ER_e_pointer);
- inter_bound_ER_e = reshape(inter_bound_ER_e,1,[]);
- inter_bound_ER_e = unique(inter_bound_ER_e);
- inter_bound_ER_p = zeros(3,size(inter_bound_ER_e,2));
- for i = 1:size(inter_bound_ER_e,2)
- inter_bound_ER_p(:,i) = ER_p(:,inter_bound_ER_e(1,i));
- end
- % Extract the nodal info of the interior boundaries from cytoplasm
- inter_bound_Cyto_e_pointer = (Cyto_e(5,:) == 1 | Cyto_e(5,:) == 2 | Cyto_e(5,:) == 17 |...
- Cyto_e(5,:) == 5 | Cyto_e(5,:) == 6 | Cyto_e(5,:) == 7 | Cyto_e(5,:) == 8 |...
- Cyto_e(5,:) == 9 | Cyto_e(5,:) == 10 | Cyto_e(5,:) == 13 |...
- Cyto_e(5,:) == 14 | Cyto_e(5,:) == 15);
- inter_bound_Cyto_e = Cyto_e(1:2,inter_bound_Cyto_e_pointer);
- inter_bound_Cyto_e = reshape(inter_bound_Cyto_e,1,[]);
- inter_bound_Cyto_e = unique(inter_bound_Cyto_e);
- inter_bound_Cyto_p = zeros(3,size(inter_bound_Cyto_e,2));
- for i = 1:size(inter_bound_Cyto_e,2)
- inter_bound_Cyto_p(:,i) = Cyto_p(:,inter_bound_Cyto_e(1,i));
- end
- % Check to ensure the all nodal info of the interior boundaries between ER and
- % cytoplasm match. If not, choose a different Hmax, Hmin, and Hgrad
- % parameter values to redefine the mesh in both ER and cytoplasm domains.
- inter_bound_p = inter_bound_Cyto_p;
- for i = 1:size(inter_bound_Cyto_p,2)
- inter_bound_p_pointer = (inter_bound_ER_p(1,:) == inter_bound_Cyto_p(1,i)) & ...
- (inter_bound_ER_p(2,:) == inter_bound_Cyto_p(2,i));
- inter_bound_p(4,i) = inter_bound_ER_p(3,inter_bound_p_pointer);
- end
- % Locate the nodal info where the cortical IP3R is placed
- n_nodal_cor_IPR_pointer = (Cyto_p(1,:) >= 1250 & Cyto_p(1,:) <= 1650 &...
- Cyto_p(2,:) == 800);
- n_nodal_cor_IPR = sum(n_nodal_cor_IPR_pointer);
- % Locate the nodal info where the SOCE is placed
- n_nodal_cor_SOCE_pointer = (Cyto_p(2,:) == 900 & ...
- Cyto_p(1,:) >= 400 & Cyto_p(1,:) <= 500);
- n_nodal_cor_SOCE = sum(n_nodal_cor_SOCE_pointer);
- % Locate the nodal info where the SERCA pumps are placed
- n_nodal_cor_SERCA_pointer = ((Cyto_p(1,:) >= 350 & Cyto_p(1,:) <= 800 &...
- Cyto_p(2,:) >= 770 & Cyto_p(2,:) < 885)) | ((Cyto_p(1,:) >= 350 &...
- Cyto_p(1,:) <= 400 & Cyto_p(2,:) == 885)) | ((Cyto_p(1,:) >= 500 &...
- Cyto_p(1,:) <= 550 & Cyto_p(2,:) == 885));
- n_nodal_cor_SERCA = sum(n_nodal_cor_SERCA_pointer);
- % Locate the nodal info where the PMCA is placed
- n_nodal_cor_PM_pointer = (Cyto_p(1,:) >= 0 & Cyto_p(1,:) <= 2350 &...
- Cyto_p(2,:) == 900);
- n_nodal_cor_PM = sum(n_nodal_cor_PM_pointer);
- % Locate the nodal info where the deep IP3R is placed
- n_nodal_deep_IPR_pointer = ((Cyto_p(1,:) >= 930 & Cyto_p(1,:) <= 2150 &...
- Cyto_p(2,:) == 200)) | ((Cyto_p(1,:) >= 930 & Cyto_p(1,:) <= 2150 &...
- Cyto_p(2,:) == 400)) | ((Cyto_p(1,:) == 2150 & Cyto_p(2,:) >= 200 &...
- Cyto_p(2,:) <= 400));
- n_nodal_deep_IPR = sum(n_nodal_deep_IPR_pointer);
- %% Important info to use
- % [ER_p,ER_e,ER_t], [Cyto_p,Cyto_e,Cyto_t], inter_bound_p
- save("Mesh_less_tunnel.mat")
Geom_Mesh_Less_Tunnel_v01.m, under CC-BY-4.0 · at the source
Overview
- Ca2+ Signaling Group, Research Department, Weill Cornell Medicine Qatar, Qatar Foundation, Education City, Doha, Qatar
- Department of Physiology and Biophysics, Weill Cornell Medicine, New York, NY, USA
- Department of Mathematics, University of Auckland, Auckland Central, Auckland 1142, New Zealand
- College of Health and Life Science, Hamad bin Khalifa University, Doha, Qatar
- Department of Cell Biology, UConn Health, Farmington, CT, USA
- Department of Pharmacology and Physiology, University of Rochester Medical Center, Rochester, NY, USA
Abstract
Ca2+ signaling is ubiquitous and supports a multitude of cellular events. Specificity in Ca2+ signaling is encoded in its spatial and temporal dynamics. Ca2+ tunneling regulates the dynamics of Ca2+ signals downstream of store operated Ca2+ entry (SOCE). Here, we describe a novel cortical ER (cER) architectural feature, that we call the cER-basket, which underpins Ca2+ tunneling. We discovered the cER-basket through a combination of 3D reconstructions of the cortical ER at the ultrastructural level coupled to mathematical modeling of Ca2+ tunneling. Using insights from the modeling to inform experimental approaches and vice versa, we show that the detailed structural features of the cER-basket support Ca2+ tunneling. Therefore, we report a specific cortical ER structure, the cER-basket, which modulates cellular Ca2+ dynamics.
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above.
Zenodo 20699141
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
- 27 September 2026: the link answers (HTTP 200)
9 files
- Less Tunnelling Code/
Geom_Mesh_Less_Tunnel_v0 , MATLAB, 172 lines1.m - Less Tunnelling Code/
Plot_TS_Less_Tunnel_v01. , MATLAB, 118 linesm - Less Tunnelling Code/
Sim_Less_Tunnel_v01.m , MATLAB, 530 lines - No Tunnelling Code/
Geom_Mesh_No_Tunnel_v01. , MATLAB, 162 linesm - No Tunnelling Code/
Plot_TS_No_Tunnel_v01.m , MATLAB, 126 lines - No Tunnelling Code/
Sim_No_Tunnel_v01.m , MATLAB, 518 lines - Tunnelling Code/
Geom_Mesh_Tunnel_v01.m , MATLAB, 166 lines - Tunnelling Code/
Plot_TS_Tunnel_v01.m , MATLAB, 126 lines - Tunnelling Code/
plot_tunnel_movie.m , MATLAB, 121 lines
Zenodo 20699140
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
- 27 September 2026: the link answers (HTTP 200)
9 files
- Less Tunnelling Code/
Geom_Mesh_Less_Tunnel_v0 , MATLAB, 172 lines1.m - Less Tunnelling Code/
Plot_TS_Less_Tunnel_v01. , MATLAB, 118 linesm - Less Tunnelling Code/
Sim_Less_Tunnel_v01.m , MATLAB, 530 lines - No Tunnelling Code/
Geom_Mesh_No_Tunnel_v01. , MATLAB, 162 linesm - No Tunnelling Code/
Plot_TS_No_Tunnel_v01.m , MATLAB, 126 lines - No Tunnelling Code/
Sim_No_Tunnel_v01.m , MATLAB, 518 lines - Tunnelling Code/
Geom_Mesh_Tunnel_v01.m , MATLAB, 166 lines - Tunnelling Code/
Plot_TS_Tunnel_v01.m , MATLAB, 126 lines - Tunnelling Code/
plot_tunnel_movie.m , MATLAB, 121 lines
jsneyd/courjaret-et-al--2025
307130068a0be27e0716ebd47468c1e57a9857c6, 15 June 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
9 files
- Less Tunnelling Code/
Geom_Mesh_Less_Tunnel_v0 , MATLAB, 172 lines1.m - Less Tunnelling Code/
Plot_TS_Less_Tunnel_v01. , MATLAB, 118 linesm - Less Tunnelling Code/
Sim_Less_Tunnel_v01.m , MATLAB, 530 lines - No Tunnelling Code/
Geom_Mesh_No_Tunnel_v01. , MATLAB, 162 linesm - No Tunnelling Code/
Plot_TS_No_Tunnel_v01.m , MATLAB, 126 lines - No Tunnelling Code/
Sim_No_Tunnel_v01.m , MATLAB, 518 lines - Tunnelling Code/
Geom_Mesh_Tunnel_v01.m , MATLAB, 166 lines - Tunnelling Code/
Plot_TS_Tunnel_v01.m , MATLAB, 126 lines - Tunnelling Code/
plot_tunnel_movie.m , MATLAB, 121 lines
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:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 27 scripts, each with its path and the digest of its content;
- no match between paragraphs and code yet;
- 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 and code availability
All data reported in this paper are included in the manuscript. Additional reasonable data requests should be directed to the lead contact.
All original code has been deposited at https://
Any additional information required is available from the lead contact upon request.
Reproduced under the paper's license (CC BY-NC), 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
- Authors: added Khaled Machaca (0000-0001-6215-2411); removed Khaled Machaca
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 10 authors, 5 keywords, 4 funders, 35 references, 4 RRIDs.
Cite
This paper
Courjaret, R. J., Lee, L., Mohamed, H., Yu, F., Assaf, L., Fisher, M., Yule, D. I., Terasaki, M., Sneyd, J., & Machaca, K. (2026). Specialized cortical ER architecture modulates Ca&
BibTeX
@article{courjaret2026sp
author = {Courjaret, Raphael J and Lee, Lloyd and Mohamed, Hana and Yu, Fang and Assaf, Lama and Fisher, Melanie and Yule, David I and Terasaki, Mark and Sneyd, James and Machaca, Khaled},
title = {{Specialized cortical ER architecture modulates Ca\&
journal = {iScience},
year = {2026},
month = aug,
volume = {29},
number = {8},
pages = {116955},
publisher = {Elsevier},
issn = {2589-0042},
doi = {10.1016/
url = {https://
pmid = {42604072},
pmcid = {PMC13476580}
}
RIS
TY - JOUR
AU - Courjaret, Raphael J
AU - Lee, Lloyd
AU - Mohamed, Hana
AU - Yu, Fang
AU - Assaf, Lama
AU - Fisher, Melanie
AU - Yule, David I
AU - Terasaki, Mark
AU - Sneyd, James
AU - Machaca, Khaled
TI - Specialized cortical ER architecture modulates Ca&
T2 - iScience
J2 - iScience
PY - 2026
DA - 2026/
VL - 29
IS - 8
SP - 116955
SN - 2589-0042
PB - Elsevier
DO - 10.1016/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1016/
"type": "article-journal",
"title": "Specialized cortical ER architecture modulates Ca&
"container-title": "iScience",
"author": [
{
"family": "Courjaret",
"given": "Raphael J"
},
{
"family": "Lee",
"given": "Lloyd"
},
{
"family": "Mohamed",
"given": "Hana"
},
{
"family": "Yu",
"given": "Fang"
},
{
"family": "Assaf",
"given": "Lama"
},
{
"family": "Fisher",
"given": "Melanie"
},
{
"family": "Yule",
"given": "David I"
},
{
"family": "Terasaki",
"given": "Mark"
},
{
"family": "Sneyd",
"given": "James"
},
{
"family": "Machaca",
"given": "Khaled"
}
],
"container-title-short":
"volume": "29",
"issue": "8",
"page": "116955",
"DOI": "10.1016/
"PMID": "42604072",
"PMCID": "PMC13476580",
"ISSN": "2589-0042",
"publisher": "Elsevier",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
7
]
]
}
}
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.1111/jnc.70551 [code]
- Synaptobrevin-2 Containing Extracellular Vesicles Are Rapidly Incorporated Into Mammalian Neurons via a Dynamin-Dependent Pathway.Journal: Journal of neurochemistryIn common: cellular / molecular, 2 references
- [2] doi:10.1126/sciadv.aec7705 [code]
- Mitotic Cdc42 waves encode PI(3,4)P&
lt;sub& gt;2& lt;/ sub& gt; signaling and Golgi morphological state to control spindle scaling. Journal: Science advancesIn common: cellular / molecular, 2 references - [3] doi:10.1038/s41380-026-03592-6
- Pyrazole-derived TRPC3 antagonist ameliorates synaptic dysfunctions and memory deficits in Alzheimer's disease models.Journal: Molecular psychiatryIn common: cellular / molecular, 2 references
- [4] doi:10.1126/sciadv.adu3955 [code]
- Defective EV-mediated transport of SHH alters neural fate specification in EPM1 epilepsy.Journal: Science advancesIn common: cellular / molecular, 2 references
- [5] doi:10.1016/j.isci.2026.117309 [code]
- Intracellular regulation of a serotonin-gated ion channel links receptor trafficking to memory.Journal: iScienceIn common: cellular / molecular, 2 references
- [6] doi:10.1016/j.isci.2026.117228 [code]
- Single-nucleus transcriptomics reveals cell type-specific remodeling and epilepsy-associated microglia.Journal: iScienceIn common: cellular / molecular, 2 references
- [7] doi:10.1016/j.isci.2026.115209
- Ether phospholipids modulate somatosensory responses by tuning multiple receptor functions in &
lt;i& gt;Drosophila& lt;/ i& gt;. Journal: iScienceIn common: cellular / molecular, 2 references - [8] doi:10.1038/s43587-026-01154-7
- Spatial mapping and senolytic targeting of senescent and disease-associated microglia in aged mouse brain white matter.Journal: Nature agingIn common: cellular / molecular, 1 reference
- [9] doi:10.1038/s41467-026-73192-z [code]
- Chromatin- and actin-mediated mitochondrial streaming leads to patterning of mitochondrial distribution in oocytes.Journal: Nature communicationsIn common: cellular / molecular, 1 reference
- [10] doi:10.1242/jcs.264353
- Alternatively spliced STIM2.3 is an evolutionarily late store-operated Ca2+ entry regulator expressed in brain.Journal: Journal of cell scienceIn common: cellular / molecular, 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.
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: 3 repositories of the authors' code, each at its verified commit and with its license, 27 scripts, and 0 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:5602317ffadd8ec4…
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.
