A Vue 3 + Vite web application for visualizing DNA sequence alignment traces. Renders trace data with Plotly.js, including base call quality and alignment mismatches.
- 📊 Interactive Plotly.js visualization
- 📁 Upload JSON alignment files
- 📥 Load example data from GEAR genomics API
- 🔍 Zoom and pan with rangeslider
- 🎨 Color-coded nucleotide peaks (A/C/G/T)
- ❌ Highlight alignment mismatches
- 📱 Responsive design
- ⚡ Fast, built with Vite
- Node.js 16+
- npm or yarn
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThe development server will run at http://localhost:5173
- Push your code to GitHub
- Go to repository Settings → Pages
- Set Source to "GitHub Actions"
The included GitHub Actions workflow (.github/workflows/deploy.yml) will automatically:
- Build the Vue app with Vite
- Deploy to GitHub Pages on every push to
main
Your app will be available at:
https://YOUR_USERNAME.github.io/annotated-align-visualiser/
# Build the project
npm run build
# The 'dist' folder is ready to deployThen manually upload the dist folder contents to your hosting service.
├── src/
│ ├── main.js # App entry point
│ ├── App.vue # Root Vue component
│ └── renderer.js # Plotly rendering logic
├── index.html # HTML template
├── vite.config.js # Vite configuration
├── package.json # Dependencies
└── .github/workflows/ # GitHub Actions
The app expects JSON files matching the Tracy/GEAR alignment format:
{
"refchr": "chr1",
"refpos": 100,
"forward": true,
"gappedTrace": {
"peakA": [...],
"peakC": [...],
"peakG": [...],
"peakT": [...],
"basecallPos": [...],
"basecallQual": [...],
"basecalls": {...},
"leadingGaps": 0
},
"refalign": [...]
}MIT