bio-phylo-species-trees — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bio-phylo-species-trees (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reference examples tested with: ASTER 1.15+ (ASTRAL-III/wASTRAL/ASTRAL-Pro), IQ-TREE 2.2+ (concordance factors), PAUP* 4.0a168+ (SVDQuartets)
Before using code patterns, verify installed versions match. If versions differ:
astral --version then astral --help to confirm flagsiqtree2 --version then iqtree2 --help to confirm flagsIf commands fail, introspect the installed version and adapt flags rather than retrying.
"Estimate a species tree from multi-locus data" -> Infer the species-level phylogeny accounting for gene tree discordance caused by incomplete lineage sorting (ILS), using summary coalescent or full-likelihood methods.
astral -i gene_trees.tre -o species_tree.tre (ASTER/ASTRAL-III)iqtree2 -t species.tre --gcf gene_trees.tre -s concat.fasta --scfl 100 (concordance factors)svdquartets nquartets=all bootstrap=standard nreps=100 (PAUP*)The multispecies coalescent (MSC) models gene tree discordance arising from incomplete lineage sorting. Concatenation assumes all genes share the same tree, an assumption violated in three key scenarios:
Practical signal: If gene concordance factor (gCF) values frequently fall below 50% across backbone nodes, coalescent methods should be considered. Concordance factors below 33% at a node indicate that a different resolution has more support than the species tree at that branch.
| Condition | Recommended Approach |
|---|---|
| All gCF > 70% | Concatenation is reliable; coalescent and concatenation will agree |
| Some gCF 30-70% | Run both; compare topologies and report concordance factors |
| Many gCF < 30% | Coalescent methods required; concatenation is unreliable |
| Known hybridization/introgression | Neither pure method works; use network approaches |
When gCF and species tree disagree at a node, the coalescent analysis should be given priority, as it is statistically consistent under the MSC while concatenation is not.
| Tool | Input | Speed | Key Features |
|---|---|---|---|
| ASTRAL-III | Single-copy gene tree topologies | Fast | Most widely used; handles hundreds of genes |
| wASTRAL | Gene trees with branch lengths/support | Fast | Uses gene tree uncertainty for improved accuracy |
| ASTRAL-Pro 2/3 | Multi-copy gene family trees | Fast | Handles gene duplication and loss |
| CASTER | Multiple sequence alignments | Fast | Bypasses gene tree estimation entirely |
| SVDQuartets | Concatenated alignment (site patterns) | Fast | In PAUP*; works from site patterns without gene trees |
| BPP | Multi-locus alignments | Very slow | Most accurate; jointly estimates species tree + divergences; species delimitation |
| StarBEAST3 | Multi-locus alignments | Very slow | Integrates with BEAST2 for dating |
ASTER package (2025): Consolidates ASTRAL-III, wASTRAL, ASTRAL-Pro 2/3, CASTER, and WASTER into a single C++ package. Much faster and more memory-efficient than the original Java ASTRAL implementations. Install from https://github.com/chaoszhang/ASTER.
Goal: Estimate a species tree from multi-locus sequence data by first inferring per-locus ML gene trees, then summarizing them under the coalescent model.
Approach: Run IQ-TREE2 independently on each locus alignment with model selection and bootstrap, collect all gene trees, then run ASTRAL to find the species tree that agrees with the largest number of quartet topologies from the gene trees.
# 1. Infer gene trees (one per locus, single-threaded for parallelism across loci)
for f in loci/*.fasta; do
iqtree2 -s "$f" -m MFP -B 1000 -bnni -T 1 --prefix "${f%.fasta}"
done
# 2. Collect gene trees into a single file
cat loci/*.treefile > gene_trees.tre
# 3. Run ASTRAL species tree estimation (via ASTER)
# Local posterior probability (pp) replaces bootstrap for branch support
astral -i gene_trees.tre -o species_tree.tre
# 4. wASTRAL for datasets with noisy gene trees (uses branch length information)
wastral -i gene_trees.tre -o species_tree_wastral.treGoal: Quantify how much gene-level and site-level data supports each branch in the species tree.
Approach: Map each gene tree and each informative site onto the species tree, counting concordant vs discordant quartets at every internal branch.
# Gene concordance factors (gCF) + likelihood-based site concordance factors (sCF)
iqtree2 -t species_tree.tre --gcf gene_trees.tre -s concat.fasta --scfl 100
# Output: species_tree.tre.cf.tree (tree with gCF/sCF annotations)
# species_tree.tre.cf.stat (per-branch statistics)| Metric | Range | Meaning |
|---|---|---|
| gCF | 0-100% | Percentage of decisive gene trees containing this branch |
| sCF | ~33-100% | Percentage of decisive sites supporting this branch (three possible resolutions) |
For any internal branch, gene trees partition into three quartet topologies (q1, q2, q3). Under ILS alone, the two minor quartets should be approximately equal (q2 ~ q3). A significant excess of one minor quartet over the other suggests introgression or hybridization rather than ILS.
Short alignments produce noisy gene trees, and low gCF may reflect estimation error rather than genuine ILS. Strategies to distinguish:
When individual locus alignments are too short for reliable gene tree estimation, SVDQuartets works directly from site patterns in the concatenated alignment:
# In PAUP* (interactive or via script)
execute concat.nex;
svdquartets evalQuartets=all bootstrap=standard nreps=100;
savetrees file=svdq_species.tre;SVDQuartets is statistically consistent under the MSC and avoids gene tree estimation entirely. Best suited for RADseq/UCE datasets where per-locus alignments are short.
BPP (Bayesian Phylogenetics and Phylogeography) is the most statistically rigorous coalescent method but computationally expensive:
ASTRAL reports local posterior probabilities (localPP) rather than bootstrap values:
| localPP | Interpretation |
|---|---|
| >= 0.95 | Strong support |
| 0.7-0.95 | Moderate support |
| < 0.7 | Weak support |
ASTRAL branch lengths are in coalescent units (not substitutions per site). A branch length of 1 coalescent unit means divergence equals one effective population size generation. Short branches (<0.5 CU) indicate high expected ILS at that node.
When gene tree discordance cannot be explained by ILS alone, reticulate evolution (hybridization, introgression, horizontal gene transfer) may be involved.
Detection: If one minor quartet frequency is significantly greater than the other (q2 >> q3 or q3 >> q2) across multiple branches, this violates the ILS-only expectation of q2 ~ q3.
When introgression is detected, report the species tree alongside the network; the tree still represents the dominant vertical signal.
-m MFP -B 1000 -bnni)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.