-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Overview
Extend hyphy-vision library to support difFUBAR-specific visualizations. difFUBAR generates unique differential selection results that require specialized visualization components not currently available in the standard hyphy-vision toolkit.
Background
difFUBAR produces differential selection results comparing two foreground groups (ω1 vs ω2) with posterior probabilities for various evolutionary scenarios. The current hyphy-vision library is designed for single-group analyses and needs extension for comparative differential selection results.
Required Visualizations
1. Site-Level Differential Selection Plot
Interactive scatter plot showing:
- X-axis: Site position (1 to sequence length)
- Y-axis: Maximum posterior probability across all categories
- Points colored by strongest signal:
- Red: P(ω1 > ω2) > threshold
- Blue: P(ω2 > ω1) > threshold
- Green: P(ω1 > 1) > threshold (positive selection in group 1)
- Orange: P(ω2 > 1) > threshold (positive selection in group 2)
- Hover tooltips with detailed posterior probabilities
2. Posterior Probability Heatmap
Heatmap visualization:
- Rows: Sites with detected differential selection
- Columns: Four posterior categories [P(ω1>ω2), P(ω2>ω1), P(ω1>1), P(ω2>1)]
- Color intensity: Posterior probability strength
- Interactive site selection and filtering
3. Branch Group Comparison Charts
Comparative visualizations:
- ω Distribution Plot: Side-by-side histograms of mean(ω1) vs mean(ω2) across sites
- Alpha Parameter Plot: Distribution of synonymous rate variation
- Detection Summary: Bar chart of sites by detection category
4. Evidence Summary Table
Interactive table with:
- Site number and codon position
- All four posterior probabilities
- Mean parameter estimates [α, ω1, ω2]
- Sortable and filterable columns
- Export functionality (CSV, JSON)
5. Interactive Site Explorer
Detailed per-site analysis:
- Click site in plot → show detailed breakdown
- Parameter distributions for selected site
- Sequence context and codon information
- Branch-specific rate estimates
Implementation Requirements
Add difFUBAR Function to hyphy-vision
// In hyphy-vision library
hyphyVision.difFubar = function(url, element, fasta, settings) {
d3.json(url, function(error, results) {
if (error) {
// Error handling
return;
}
// Parse difFUBAR results format
const sites = results.data.sites;
const detected = sites.filter(s =>
Math.max(s["P(ω1 > ω2)"], s["P(ω2 > ω1)"],
s["P(ω1 > 1)"], s["P(ω2 > 1)"]) > settings.threshold
);
// Create visualization container
const container = d3.select(element);
// Render main differential selection plot
renderDifferentialPlot(container, sites, settings);
// Render summary statistics
renderSummaryStats(container, detected, settings);
// Render evidence table
renderEvidenceTable(container, detected, settings);
});
};
Integration with Results Template
Update app/templates/difFubar/results.ejs
:
<\!-- difFUBAR Results Visualization -->
<div id="difFubar-results" class="hyphy-analysis"></div>
<script>
hyphyVision.difFubar(
"/difFubar/<%= job._id %>/results.json",
"#difFubar-results",
null,
{
threshold: <%= job.pos_threshold %>,
showTable: true,
showHeatmap: true,
showComparison: true
}
);
</script>
Data Format Support
Support difFUBAR JSON output format:
{
"data": {
"sites": [
{
"Codon Sites": 1,
"P(ω1 > ω2)": 0.95,
"P(ω2 > ω1)": 0.03,
"P(ω1 > 1)": 0.12,
"P(ω2 > 1)": 0.08,
"mean(α)": 1.2,
"mean(ω1)": 2.1,
"mean(ω2)": 0.8
}
]
},
"summary": {
"detected_sites": 24,
"total_sites": 808
}
}
User Interface Features
- Responsive Design: Works on desktop, tablet, mobile
- Export Options: PNG, SVG, PDF for plots; CSV for tables
- Parameter Filtering: Adjust threshold and re-render
- Color Customization: User-configurable color schemes
- Accessibility: Screen reader support, keyboard navigation
Performance Considerations
- Efficient rendering for large datasets (>5000 sites)
- Virtual scrolling for evidence tables
- WebGL acceleration for scatter plots
- Progressive loading for large visualizations
Acceptance Criteria
- difFUBAR results display comprehensive visualizations
- All four posterior probability categories are clearly represented
- Interactive site exploration works smoothly
- Visualizations are publication-ready (high DPI, clean styling)
- Export functionality works for all visualization types
- Performance remains good with datasets up to 5000+ sites
- Integration works with existing results template system
Dependencies
- d3.js visualization library
- Existing hyphy-vision infrastructure
- difFUBAR JSON output format standardization
- Server-side result processing (Issue Api #331)
Priority
MEDIUM - Essential for user interpretation of difFUBAR results
Related Issues
- Server integration: Complete difFUBAR server integration datamonkey-js-server#331
- Tagged tree interface: Implement difFUBAR tagged tree interface #800