Skip to content
PointillViz
PointillViz

© 2026 PointillViz

Tissue Permeability

by PointillViz community tools

Which cells one cell type seals off from the rest of the tissue.

Verifiedv1.0.0
  • cell types
  • geometry
  • barrier
  • connectivity
  • summary
  • cells
  • series
  • table
Sealed-compartment map: pockets of tissue with no route to the surface, strung along the smooth-muscle layers of a rolled colon section
Sealed-compartment map: pockets of tissue with no route to the surface, strung along the smooth-muscle layers of a rolled colon sectionArtwork from the tool’s bundle

Readme

Answers the question: Which cells does one population seal off from the tissue surface or from another population?

The tool lets the user select one population as a potential barrier and choose a destination for the remaining cells: either the exposed tissue surface or another population. It then identifies which cells can no longer reach it when the barrier is impassable.

To identify possible routes through the tissue, the tool first connects the cells in each section using a Delaunay triangulation. Three cells form such a triangle if a circle can pass through all three centers without enclosing another cell center.

Multi-source Dijkstra routing calculates the shortest network distance to a source with the selected population passable, d(open)(i), and with it treated as impassable, d(barrier)(i). d(straight)(i) is the straight-line distance from cell i to the nearest source cell, ignoring the network.

A cell is sealed if it loses its route when the selected population becomes impassable. For cells that remain reachable, extra(i) measures the added network distance in median cell spacings s, while τ(i) compares the remaining route with the straight-line distance:

Map. The user can choose between three display modes:

  • Sealed compartments colors only sealed cells. Dark colors indicate smaller compartments, while bright yellow indicates compartments containing more cells.
  • Extra path colors only reachable cells whose route becomes longer. Dark colors indicate a small additional distance, while bright yellow indicates that the barrier adds many cell spacings.
  • Detour factor colors only reachable cells with a valid τ(i)>1. Dark colors indicate a route close to the direct distance, while bright yellow indicates a much longer detour.

Plot. The x-axis shows cell percentiles after ranking by τ(i); at percentile q, the curve gives the detour factor that q% of the evaluated cells do not exceed. The y-axis shows τ(i), the network distance divided by the straight-line distance.

The red curve shows detour factors when the selected population is impassable, while the dashed curve shows the same tissue with it passable. The grey band shows the results when the same number of randomly selected cells are treated as barriers. If the red curve stops before the right edge, the missing percentage corresponds to sealed cells; their detour factors are non-finite and therefore not shown.

Table. Each row summarizes one population with at least 25 eligible cells, and Cells gives its total cell count. For the selected barrier and destination, Enclosed and % enclosed show the number and proportion of eligible cells that lose their route. Among cells that remain reachable, % detoured shows how often the route becomes longer, while Extra path where detoured gives the median number of cell spacings added to those longer routes. % enclosed, random barrier gives the average expected with equally large random barriers.

Parameters

ParameterTypeDefaultWhat it does
Grouping columnfield categorical_field optional Selects the annotation used to define the barrier and source populations. Defaults to the dataset’s cell-type column.
Barrier cell typebarrier category_value — Selects the population treated as an impassable barrier.
Route towardssource select, 2 options The tissue’s exposed surface Selects the routing destination: the exposed tissue surface or another cell population. Surface cells are identified along the section boundary and beside sufficiently large gaps.
Source cell typesource_type category_value optional Selects the destination population when routing towards another cell type. It must differ from the barrier population.
Barrier half-widthbarrier_width float, 0–3 0.75 Sets how closely a path may approach a barrier-cell centre, measured in median cell spacings. Larger values treat the barrier as thicker.
Largest gap a path may crossmax_gap float, 1.5–20 5 Drop Delaunay edges longer than this many median cell spacings, so no route crosses a lumen or tissue gap.
Map showspaint select, 3 options Sealed compartments (size in cells) Selects whether the map displays sealed-compartment size, additional path length or detour factor. This does not change the calculation.
Random barriersn_null int, 2–20 5 Sets how many equally large random barriers are used for the grey plot band and the random-barrier comparison.

Outputs

  • summarywrites a summary
  • cellspaints the spatial view
  • seriesreturns a line chart
  • tablereturns a table

Tool check

The nine gates this version passed when it was published.

Verified

Passed 9 of 9 gates

  1. bundle pass
  2. manifest pass
  3. entry pass
  4. imports pass, advisory
  5. fixture pass
  6. result pass
  7. determinism pass
  8. edge pass
  9. no_mutation pass
  1. bundle pass

    4 files, 36.5 kB packed and 211.5 kB unpacked, plugin.json at the root.

  2. manifest pass

    tissue-permeability 1.0.0 by PointillViz community tools; entry tool.py, outputs summary, cells, series, table, 120 s and 2048 MB budget.

  3. entry pass

    tool.py imported in 0.20 s and defines run(ds, params).

  4. imports advisory pass

    1 Python file, importing __future__, backend, numpy, scipy; no network, subprocess, filesystem-write, dynamic-exec or environment use found.

  5. fixture pass

    ran on the 600-cell fixture in 0.39 s of its 120 s budget, returning summary, cells, table, series.

  6. result pass

    returned the declared outputs: summary, cells, table, series.

  7. determinism pass

    two runs with identical parameters produced byte-identical results (7.5 kB of JSON).

  8. edge pass

    at the minimum corner (barrier_width=0.0, max_gap=1.5, n_null=2) it refused in words rather than crashing: Nothing here is more than one cell spacing from a source, so there is no route to measure and nothing is enclosed. At a gap of 1.5 spacings almost every cell counts as exposed surface — raise it, or route towards a cell type instead of the surface. (code: no_interior); ran at the maximum corner (barrier_width=3.0, max_gap=20.0, n_null=20, paint='tau', source='type') in 0.37 s.

  9. no_mutation pass

    the fixture dataset's 4 files are byte-identical after every run (plugin_cache/, where ds.knn caches, is excluded by design).

Passed every required gate when this version was published. That is a statement about the gates, not about whether the code is safe to run.

Versions

  1. v1.0.0 latest

More tools