← Back to Projects Research & Modelling

Graph Cross-Correction Simulation

A graph-based proof-of-concept simulation that translates a biological cross-correction hypothesis into diffusion, decay, exposure and rescue-threshold dynamics.

PythonNumPyMatplotlibGraph modelling
Question If only a subset of nuclei are corrected, can locally transported corrective signal plausibly accumulate enough to rescue neighbouring nuclei under simplified assumptions?
Focus Biological modelling · Graph diffusion · Simulation
Outcome A staged simulator that turns the biological hypothesis into a graph-diffusion experiment and sensitivity-testing framework.

The problem

This project is a computational extension of my master’s thesis research. It uses simulation and graph-based modelling to test whether a biological hypothesis around molecular cross-correction is plausible under simplified conditions. The central question is: if only a subset of nuclei in a multinucleated muscle fibre are corrected, could locally transported signal accumulate enough to rescue neighbouring nuclei? The model treats this as a structured numerical experiment in signal production, diffusion, decay, and rescue thresholds.

Question

If only a subset of nuclei are corrected, can locally transported corrective signal plausibly accumulate enough to rescue neighbouring nuclei under simplified assumptions?

Research context

This simulation is conceptually linked to the co-authored publication Cell-mediated exon skipping normalizes dystrophin expression and muscle function in a new mouse model of Duchenne Muscular Dystrophy. The publication provides the biological motivation; the simulator is a separate proof-of-concept modelling exercise.

Approach

Rather than presenting the project as a notebook dump, this case study focuses on the decisions that shaped the analysis.

  1. Start with a naive line simulation to make the biological idea executable.
  2. Replace manual local averaging with graph-Laplacian diffusion.
  3. Introduce geometry-based connectivity so transport depends on proximity.
  4. Vary source fraction, diffusion, decay and rescue threshold assumptions.
  5. Track cumulative exposure so rescue can depend on sustained signal rather than an instantaneous value.

Key implementation decision

Represent local transport with the graph Laplacian

The graph makes spatial neighbourhoods explicit, while the Laplacian provides a compact operator for local signal exchange. Rescue is then defined separately as a threshold on accumulated exposure.

for t in range(num_steps):
    diffusion = -alpha * (L @ u)
    decay = -beta * u
    source = q

    u = u + dt * (diffusion + decay + source)
    exposure = exposure + u * dt
    rescued = exposure >= rescue_threshold
Why this matters

The value of the project is not that it proves a biological mechanism. It forces a qualitative thesis hypothesis into explicit computational assumptions that can be inspected, varied and eventually calibrated against experimental evidence.

Results & evidence

The figures below are the project evidence I would show first. The full implementation remains available through the GitHub link at the top of the page.

Corrected source nodes → graph diffusion → rescue threshold Green: corrected/source · Gold: rescued/exposed · Grey: below threshold
Conceptual visualisation: Corrected nuclei produce signal; neighbouring nuclei receive transported signal through graph connectivity.

What challenged me

The original project did not record a separate challenge note.

What I learned

  • A biological hypothesis becomes easier to challenge once every source, transport, decay and rescue assumption is explicit in code.
  • Spatial placement matters alongside the fraction of corrected nuclei because transport occurs through the graph structure.
  • The simulator is useful for sensitivity reasoning, but it is not a calibrated biological prediction.

What I would improve next

  • Calibrate diffusion, decay and rescue parameters against experimentally grounded measurements when suitable data become available.
  • Replace simplified geometry with spatial structures closer to real multinucleated fibres.
  • Introduce stochastic expression and uncertainty so sensitivity results are not tied only to deterministic parameter choices.
Full implementation: use the GitHub link in the project header for the complete notebook/code rather than expanding the case study into a full source listing.