bcgTree
What does it do?
Use bcgTree to build a bacterial phylogeny from conserved single-copy core genes.
The pipeline automatically extracts 107 essential single-copy genes found across a broad range of bacteria, identifies homologues with hidden Markov models, aligns the selected protein sequences, and performs a partitioned maximum-likelihood analysis with RAxML.
bcgTree is intended for bacterial assemblies. Unlike MashTree, its primary tree is based on aligned core-gene protein sequences rather than only estimated whole-genome Mash distances.
For background, see the bcgTree publication. Cite Ankenbrand and Keller (2016) when publishing results produced with this workflow.
How do I use it?
Subject
In the Subject field, enter:
bcgtree
Spelling matters, but matching is not case-sensitive.
Description
Enter optional parameters first, followed by one bacterial assembly SEQID per line:
2026-SEQ-0001
2026-SEQ-0002
2026-SEQ-0003
Attachments
The supplied documentation does not identify support for attached assemblies. Use available SEQIDs unless attachment support has been verified in the current implementation.
Optional parameters
bootstraps
Sets the number of bootstrap replicates.
- Default:
100 - Example:
bootstraps=1000
More bootstrap replicates increase runtime.
min_proteomes
Sets the minimum number of proteomes in which a gene must occur to be retained.
- Default:
2 - Example:
min_proteomes=5
Increasing this value can reduce the number of genes retained when taxa are diverse or assemblies are incomplete.
aa_substitution_model
Selects the amino-acid substitution model used for RAxML partitions.
- Default:
AUTO - Example:
aa_substitution_model=GTR
Supported values from the supplied documentation are:
AUTO
DAYHOFF
DCMUT
JTT
MTREV
WAG
RTREV
CPREV
VT
BLOSUM62
MTMAM
LG
MTART
MTZOA
PMB
HIVB
HIVW
JTTDCMUT
FLU
STMTREV
DUMMY
DUMMY2
LG4M
LG4X
PROT_FILE
GTR_UNLINKED
GTR
Copy the model name exactly. Confirm this allowlist against the deployed RAxML/bcgTree version before final publication.
Example
bootstraps=100
min_proteomes=2
aa_substitution_model=AUTO
2026-SEQ-0001
2026-SEQ-0002
2026-SEQ-0003
See issue 25083 for an example bcgTree request. The historical result files associated with that issue have been purged.
Interpreting results
When bcgTree finishes, it provides Dropbox links for two archives:
prokka_output.zip
bcgtree_output.zip
prokka_output.zip
Contains Prokka annotation output for each genome. The .faa protein FASTA files are used as inputs to bcgTree. See the Prokka output documentation for descriptions of the other files.
bcgtree_output.zip
Contains bcgTree alignments, gene-identifier files, configuration, logs, and RAxML outputs.
Important tree files include:
RAxML_bestTree.final
RAxML_bipartitionsBranchLabels.final
RAxML_bipartitions.final
RAxML_bootstrap.final
RAxML_bestTree.finalcontains the best-scoring maximum-likelihood tree.RAxML_bipartitions.finalcontains a tree with bootstrap support values mapped to branches.RAxML_bipartitionsBranchLabels.finalcontains bootstrap support represented as branch labels.RAxML_bootstrap.finalcontains the bootstrap replicate trees.
Open these files in a RAxML/Newick-compatible tree viewer. Use a supported tree file, alignment, model, and bootstrap evidence together when interpreting relationships.
The archive also contains:
config.txt— commands and settings passed to bcgTree;bcgtree.log— executed commands, output, and RAxML random seed values.
Keep these files when reproducibility is important.
How long does it take?
Prokka generally takes approximately two to three minutes per genome. After annotation, bcgTree runtime depends on sample count, retained genes, selected substitution model, and number of bootstrap replicates.
What can go wrong?
A requested SEQID is unavailable
Symptom: The issue warns that one or more assemblies cannot be found.
Likely cause: The requested SEQID has no available assembly.
What to do: Verify each identifier and confirm that its assembly exists.
The substitution model is unsupported or misspelled
Symptom: The issue reports an invalid amino-acid substitution model.
Likely cause: aa_substitution_model contains a typo or a value not accepted by the deployed workflow.
What to do: Copy a supported model exactly and resubmit the request.
Too few core genes are retained
Symptom: The workflow produces limited alignment data or fails during tree construction.
Likely cause: The assemblies are incomplete, the organisms are too diverse, or min_proteomes is too restrictive.
What to do: Review assembly quality and taxonomic scope, then use the default min_proteomes or analyze a more coherent bacterial set.
Runtime is much longer than expected
Symptom: Annotation or tree inference takes substantially longer than a small default request.
Likely cause: The request contains many genomes, a high bootstrap count, or computationally demanding settings.
What to do: Reduce the dataset or bootstrap count when methodologically appropriate.