A static web application for visualizing tumor evolution simulations with interactive charts and phylogenetic trees.
- Combined regression plot (MRCA TMB vs Fitness) for all simulations
- Interactive table with eye icon to show/hide simulations from the plot
- Simulations list with key metrics
- Configuration parameters
- Top 10 clone proportions bar chart
- Interactive phylogenetic tree with filtering (toggle to show/hide clones <100 cells)
- Hover tooltips showing clone details (fitness, TMB, size, ancestor)
- Regression plot with R², regression line, and 95% confidence interval
- Sortable sequencing samples grid
- Filtered lineage tree (MRCA, present clones, and intermediates)
- Clone proportion bar chart
- Detailed clone table
- Bootstrap 5 - UI framework
- Chart.js - Bar charts and scatter plots with regression
- D3.js v7 - Phylogenetic tree visualization
- Vanilla JavaScript - No build process required
This repository is configured for GitHub Pages deployment.
- Push this repository to GitHub
- Go to repository Settings > Pages
- Under "Source", select "Deploy from a branch"
- Select branch "main" (or "master") and folder "/ (root)"
- Click Save
Your site will be available at: https://[username].github.io/[repository-name]/
The app expects data in the following structure relative to the web root:
results/
├── simulations.json # List of simulation folder names
├── [simulation_id]/
│ ├── simulation.json # Simulation data
│ └── sequencing.json # Sequencing samples
└── ...
You have two options:
- Add your
results/folder to the repository - Commit and push
- GitHub Pages will serve the data files
- Upload
results/to a different location with CORS enabled - Update
RESULTS_PATHin JS files to point to the new location
cd tumor-viz
python3 -m http.server 8000tumor-viz/
├── index.html # Overview page
├── simulation.html # Simulation detail page
├── sequencing.html # Sequencing detail page
├── css/
│ └── style.css
├── js/
│ ├── main.js # Overview page logic
│ ├── simulation.js # Simulation page logic
│ └── sequencing.js # Sequencing page logic
└── README.md
MIT