Technical case study
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.
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.
If only a subset of nuclei are corrected, can locally transported corrective signal plausibly accumulate enough to rescue neighbouring nuclei under simplified assumptions?
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.
- Start with a naive line simulation to make the biological idea executable.
- Replace manual local averaging with graph-Laplacian diffusion.
- Introduce geometry-based connectivity so transport depends on proximity.
- Vary source fraction, diffusion, decay and rescue threshold assumptions.
- 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
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.
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.
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.