✅ 1. Tune MCMC Operators
- Use adaptive operators: Ensure your XML uses `adaptiveOperatorWeight` or similar auto-optimization during burn-in.
- Manually adjust weights:
- Increase the weight of `treeScaler`, `treeRootScaler`, or `treeSlide` if `treeLength` has low ESS.
- Increase weights for `scaleOperator` on clock rates or population size parameters (helpful for `skygrid`).
- Check operator acceptance rates: Aim for ~20–40%. If too low/high, adjust step sizes.
✅ 2. Adjust Priors
- Tree prior: Try switching from a strict coalescent prior to a more flexible one like *Skygrid* or *Skyride*.
- Clock model priors: If using narrow priors, widen them (e.g., use a lognormal with a larger SD).
- Skygrid settings: Too many grid points can lower ESS. Reduce the number of change points if necessary.
✅ 3. Use Coupled MCMC or BEAGLE
- Coupled MCMC: Enables better sampling over complex posteriors. Useful for correlated parameters or rugged posteriors.
- BEAGLE: Use GPU or multicore acceleration to improve performance, allowing longer chains if needed.
✅ 4. Combine Independent Runs Properly
- Combine log/tree files using `LogCombiner` *after removing burn-in*.
- Resample logs to equalize weight across runs.
- If ESS differs across runs, it may indicate convergence problems.
✅ 5. Try Different Tree Models
- Switch to a relaxed clock model (e.g., *lognormal relaxed clock*) if using a strict one.
- Try a birth-death prior for highly sampled datasets like viral phylogenies.
- Avoid overparameterization in substitution models.
✅ 6. Diagnose with Tracer
- Use Tracer to inspect:
- Autocorrelation time for low-ESS parameters.
- Trace plots for proper mixing.
- Posterior histograms for multimodality or poor convergence.
Sent from my iPhone