Synthetic lumen rounding directs neural progenitor division mode
The 1 match
- [1] § Methods › Image analysis › Organoid 2D analysis ↔ Thickness-masks-measurements/Thickness-measurements-updated.py.R, lines 46–108 · score 0.57 · MajorAxis, largest, thickness, Fiji, circularity, masks
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
R · 152 lines · 4.5 KB · no license · 1 match
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- Created on Fri Mar 20 16:00:42 2026
- @author: marchenk
- """
- import math
- import numpy as np
- import tifffile as tif
- from skimage.measure import label, regionprops
- from skimage.morphology import remove_small_objects
- from scipy.ndimage import binary_fill_holes
- import os
- import pandas as pd
- from skimage.measure import regionprops_table
- def analyze_thickness_tiff(
- tiff_path,
- min_object_size=50,
- connectivity=2
- ):
- img = tif.imread(tiff_path).astype(float)
- mask = img > 0
- mask = remove_small_objects(mask, min_size=min_object_size)
- labeled = label(mask, connectivity=connectivity)
- measurements = []
- for region in regionprops(labeled, intensity_image=img):
- # -----------------------------
- # Thickness statistics
- # -----------------------------
- thickness = region.intensity_image[region.intensity_image > 0]
- if thickness.size == 0:
- continue
- mean_thickness = thickness.mean()
- std_thickness = thickness.std()
- cv_thickness = std_thickness / mean_thickness if mean_thickness > 0 else np.nan
- # -----------------------------
- # Area, perimeter & Roundness (FIJI MATCHING)
- # -----------------------------
- # 1. Area: The actual pixels of the ring (as you defined in Fiji)
- area = region.area
- # 2. Perimeter: Use standard perimeter (better Fiji match than Crofton)
- perimeter = region.perimeter_crofton
- # 3. Major Axis: To match Fiji, we find the axis of the FILLED shape
- # region.image is the ring; region.filled_image is the ring + lumen
- filled_label = label(region.filled_image.astype(int))
- filled_props = regionprops(filled_label)
- if filled_props:
- # We take the major axis of the solid version of this object
- fiji_major_axis = filled_props[0].major_axis_length
- else:
- fiji_major_axis = region.major_axis_length
- # Fiji Roundness: 4 * Area / (pi * (MajorAxis of filled shape)^2)
- circularity = (4 * area) / (np.pi * (fiji_major_axis**2)) if fiji_major_axis > 0 else np.nan
- # -----------------------------
- # Lumen (hole) perimeter
- # -----------------------------
- object_mask = region.image # binary mask in bounding box
- filled = binary_fill_holes(object_mask)
- holes = filled & (~object_mask)
- lumen_perimeter = np.nan
- if holes.any():
- hole_labels = label(holes, connectivity=connectivity)
- hole_regions = regionprops(hole_labels)
- if hole_regions:
- # Select largest hole = lumen
- lumen = max(hole_regions, key=lambda r: r.area)
- # Using standard perimeter for lumen too for consistency
- lumen_perimeter = lumen.perimeter
- measurements.append({
- "mean_thickness": mean_thickness,
- "std_thickness": std_thickness,
- "cv_thickness": cv_thickness,
- "area_pixels": area,
- "perimeter_pixels": perimeter,
- "circularity": circularity,
- "lumen_perimeter": lumen_perimeter
- })
- return measurements
- def process_folder(
- input_folder,
- output_folder,
- output_csv_name="thickness_measurements.csv",
- min_object_size=50,
- connectivity=2
- ):
- all_results = []
- # Filter for tiff files
- files = [f for f in os.listdir(input_folder) if f.lower().endswith((".tif", ".tiff"))]
- if not files:
- print(f"No TIFF files found in {input_folder}")
- return pd.DataFrame()
- for file_name in files:
- file_path = os.path.join(input_folder, file_name)
- object_measurements = analyze_thickness_tiff(
- file_path,
- min_object_size=min_object_size,
- connectivity=connectivity
- )
- for idx, obj in enumerate(object_measurements, start=1):
- all_results.append({
- "file_name": file_name,
- "object_id": idx,
- **obj
- })
- os.makedirs(output_folder, exist_ok=True)
- df = pd.DataFrame(all_results)
- output_path = os.path.join(output_folder, output_csv_name)
- df.to_csv(output_path, index=False)
- return df
- # --- Execution ---
- input_folder = r"" # Set your input path
- output_folder = r"" # Set your output path
- df = process_folder(
- input_folder=input_folder,
- output_folder=output_folder,
- output_csv_name="thickness_results.csv",
- )
- if not df.empty:
- print(df.head())
Thickness-measurements-updated.py.R at commit 20c58ed, no license · at the source
Overview
- Cluster of Excellence Physics of Life, TU Dresden, Dresden, Germany
- European Molecular Biology Laboratory, EMBL Barcelona, C/ Dr. Aiguader, 88, PRBB Building, 08003, Barcelona, Spain
- Department of Computational and Systems Biology, School of Medicine, University of Pittsburgh, Pittsburgh, PA, USA
- Max Planck Institute of Molecular Cell Biology and Genetics, Dresden, Germany
Abstract
Although function often follows form, the causal role of tissue geometry is difficult to disentangle in complex embryonic development. Brain organoids generated using diverse protocols and species display striking morphological variability, particularly in lumen shape; however, whether and how lumen geometry influences neural development remains unclear. Here, we manipulate lumen sphericity in human cerebral organoids by acutely inducing apical constriction and reveal its impact on the division orientation of apical progenitors. Rapid protein stabilization or optogenetic reconstitution of the apical constriction regulator Shroom3 induces pronounced lumen rounding accompanied by a reduction in apical surface area. In organoids with rounded lumens, apical progenitor divisions shift toward horizontal cleavage planes compared with control organoids, consistent with geometric constraints from the reduced apical surface. Accordingly, rounded-lumen organoids exhibit increased cell delamination and an earlier emergence of basal progenitors in the abventricular region. These findings identify lumen geometry as an instructive regulator of progenitor division mode and lineage progression during early brain development.
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 1 match between paragraphs and lines of code.
mebisuya/BrainOrganoidShape
20c58ed341040a7d110ce214901f9cbf4de4f928, 22 March 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
7 files
- Angle-fusion-tif-main/
Fuse-images.ipynb , Jupyter, 152 lines - Lumen&
Organoid segmentation& , R, 259 linesmeasurements/ LumenAndOrganoidSegmenta tion-ver1.py.R - Lumen&
Organoid segmentation& , R, 240 linesmeasurements/ LumenSegmentation-basedo nAI.py.R - Lumen&
Organoid segmentation& , Jupyter, 449 linesmeasurements/ ModelTraining-Copy1.ipyn b - Lumen&
Organoid segmentation& , Jupyter, 102 linesmeasurements/ Newmesh-measurements.ipy nb - Lumen&
Organoid segmentation& , R, 77 linesmeasurements/ ToMakeImagesIsotropic-up dated.py.R - Thickness-masks-measurem
ents/ , R, 152 lines, 1 matchThickness-measurements-u pdated.py.R
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;
- 7 scripts, each with its path and the digest of its content;
- 1 match 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
No dataset and no data link were found in the paper.
Data and materials availability
The custom scripts used are available from Github [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 2, 28 September 2026
- Authors: added Marina Marchenko (0000-0002-0473-9430); Guillermo Martínez Ara (0000-0002-7480-5595); removed Marina Marchenko; Guillermo Martínez Ara
Version 1, 28 September 2026: the first record
Recorded: type, journal, dates, 5 authors, 47 references.
Cite
This paper
Marchenko, M., Martínez Ara, G., Pulikkal, J., Ishihara, K., & Ebisuya, M. (2026). Synthetic lumen rounding directs neural progenitor division mode. bioRxiv (preprint). https://
BibTeX
@article{marchenko2026sy
author = {Marchenko, Marina and Martínez Ara, Guillermo and Pulikkal, Juslina and Ishihara, Keisuke and Ebisuya, Miki},
title = {{Synthetic lumen rounding directs neural progenitor division mode}},
journal = {bioRxiv (preprint)},
year = {2026},
month = apr,
publisher = {bioRxiv},
issn = {2692-8205},
doi = {10.64898/
url = {https://
}
RIS
TY - JOUR
AU - Marchenko, Marina
AU - Martínez Ara, Guillermo
AU - Pulikkal, Juslina
AU - Ishihara, Keisuke
AU - Ebisuya, Miki
TI - Synthetic lumen rounding directs neural progenitor division mode
T2 - bioRxiv (preprint)
J2 - bioRxiv
PY - 2026
DA - 2026/
SN - 2692-8205
PB - bioRxiv
DO - 10.64898/
UR - https://
ER -
CSL-JSON
{
"id": "10.64898/
"type": "article",
"title": "Synthetic lumen rounding directs neural progenitor division mode",
"container-title": "bioRxiv (preprint)",
"author": [
{
"family": "Marchenko",
"given": "Marina"
},
{
"family": "Martínez Ara",
"given": "Guillermo"
},
{
"family": "Pulikkal",
"given": "Juslina"
},
{
"family": "Ishihara",
"given": "Keisuke"
},
{
"family": "Ebisuya",
"given": "Miki"
}
],
"container-title-short":
"DOI": "10.64898/
"ISSN": "2692-8205",
"publisher": "bioRxiv",
"URL": "https://
"issued": {
"date-parts": [
[
2026,
4,
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.1038/s41467-026-76569-2 [code]
- Self-organization of vascularized muscle from bovine embryonic stem cells.Journal: Nature communicationsIn common: tifffile, scikit-image, PyTorch, 6 other tools, author Miki Ebisuya
- [2] doi:10.1002/adhm.202504889 [code]
- Mapping the Cerebral Organoid Landscape: A Systematic Review of Preclinical 3D Models in Neuroscience.Journal: Advanced healthcare materialsIn common: pandas, SciPy, Matplotlib, 1 other tool, developmental, 6 references
- [3] 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: tifffile, OpenCV, scikit-image, 7 other tools, 1 reference
- [4] doi:10.1016/j.isci.2026.117010 [code]
- Deep learning-assisted mapping of dendritic spines using sequential 2D two-photon calcium imaging.Journal: iScienceIn common: tifffile, OpenCV, scikit-image, 7 other tools, 1 reference
- [5] doi:10.1016/j.isci.2026.116206 [code]
- Gut distension evokes rapid neural dynamics in vagal and hindbrain populations of larval zebrafish.Journal: iScienceIn common: tifffile, OpenCV, scikit-image, 7 other tools, 1 reference
- [6] doi:10.7554/elife.100880 [code]
- An applicable and efficient retrograde monosynaptic circuit mapping tool for larval zebrafish.Journal: eLifeIn common: tifffile, OpenCV, scikit-image, 6 other tools, 1 reference
- [7] doi:10.1371/journal.pbio.3003960 [code]
- Brachyury expression levels predict lineage potential and axis-forming ability of in vitro-derived neuromesodermal progenitors.Journal: PLoS biologyIn common: tifffile, OpenCV, scikit-image, 6 other tools, 1 reference
- [8] doi:10.1371/journal.pcbi.1013441 [code]
- Large vision model framework for automated C. elegans analysis: From static morphometry to dynamic neural activity.Journal: PLoS computational biologyIn common: tifffile, OpenCV, scikit-image, 5 other tools, 2 references
- [9] doi:10.21037/qims-2026-0792 [code]
- An nnU-Net-based framework with adaptive feature representation for 3D brain tumor segmentation.Journal: Quantitative imaging in medicine and surgeryIn common: tifffile, OpenCV, scikit-image, 7 other tools
- [10] doi:10.1364/boe.605322 [code]
- Generalized plaque digitization framework for multi-dimensional mesoscopic images.Journal: Biomedical optics expressIn common: tifffile, OpenCV, scikit-image, 7 other tools
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: 1 repository of the authors' code, each at its verified commit and with its license, 7 scripts, and 1 match 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:7f7b06cc07e46f2e…
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.
