This skill estimates a species tree from multi-locus phylogenomic data under the multispecies coalescent (MSC). The central idea is that a species tree is not a gene tree: each locus has its own genealogy, and under the MSC those genealogies disagree with the species tree (and with each other) by incomplete lineage sorting (ILS) alone, even with zero estimation error. That discordance is signal, not noise. The consequence that breaks intuition is the anomaly zone (two short successive speciation events): the single most common gene tree can be the wrong species tree, and concatenation (which pretends all loci share one tree) is statistically inconsistent and positively misleading there, converging on the wrong topology with full support as more loci are added. The support is the trap.
Coalescent summary methods (the ASTRAL family) stay consistent because they ask which species tree is most consistent with the observed gene-tree distribution, working at the quartet level where no anomaly zone exists. The deliverable is concordance, not a single best method: run both concatenation and a coalescent method, compute gene and site concordance factors, and trust the coalescent tree exactly where the two disagree on low-gCF branches.
# ASTER package (provides astral/ASTRAL-III, wastral, astral-pro)
conda install -c bioconda aster # or build from https://github.com/chaoszhang/ASTER
# IQ-TREE2 (per-locus gene trees and concordance factors)
conda install -c bioconda iqtree
# Optional, for short-locus and small-dataset methods
# PAUP* (SVDQuartets): https://paup.phylosolutions.com/
conda install -c bioconda bpp # BPP (delimitation, full-likelihood)
Tell your AI agent what you want to do: - "Infer a species tree from my multi-locus gene trees with ASTRAL" - "Should I concatenate or use a coalescent method for my phylogenomic dataset?" - "Compute gene and site concordance factors for my species tree and tell me which branches are contested" - "My per-locus alignments are only 300 bp: which species-tree method avoids the gene-tree bottleneck?" - "Is the discordance in my data ILS or introgression?"
"I have 200 locus alignments in loci/. Infer gene trees and estimate a species tree, contracting weak gene-tree branches first"
"Run wASTRAL instead of plain ASTRAL because my gene trees are noisy, and explain why"
"Estimate a species tree from my multi-copy gene-family trees using ASTRAL-Pro without pre-orthology"
"My 500-locus dataset spans a rapid radiation: is concatenation safe or am I in the anomaly zone?"
"I ran concatenation and ASTRAL and got different backbone topologies: which should I trust and how do I decide?"
"Compute gCF and sCF for my species tree and flag branches with high support but low concordance"
"My backbone nodes have gCF below 30: what does that mean and is the tree resolved there?"
"Check the q2/q3 quartet symmetry on my contested branches to tell ILS apart from introgression"
"Run SVDQuartets on my UCE dataset because per-locus gene trees are unreliable"
"Use BPP to jointly estimate the species tree and test species boundaries for my populations"
astral for the classic localPP / polytomy-test workflow, mapping the correct ASTER vs Java flags (-u annotation in ASTER, -t annotation in Java).astral, -t is threads and -u is annotation; in classic Java ASTRAL -t is the annotation level. Confirm which is installed before scripting.