The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Quick Start: From Tree File to Publication Figure

Installation

# Install from local source package
install.packages("path/to/Rclade_1.0.0.tar.gz", repos = NULL, type = "source")

Basic Usage

The simplest way to create a timetree visualization using the built-in example data:

library(Rclade)

# Load built-in example tree (50 tips, GTDB-style labels)
data(example_tree)

# Plot with phylum-level collapsing (no timescale for speed)
p <- plot_timetree(example_tree, rank = "phylum",
                   taxonomy_format = "GTDB",
                   add_timescale = FALSE)
#> 
#> ============================================================
#>            Rclade: Phylogenetic Tree Visualization
#> ============================================================
#> 2026-09-16T00:09:27.225+08:00 | INFO     | Starting plot_timetree pipeline
#> 2026-09-16T00:09:27.225+08:00 | INFO     | Tree input               : phylo object
#> 2026-09-16T00:09:27.225+08:00 | INFO     | Rank                     : phylum
#> 2026-09-16T00:09:27.225+08:00 | INFO     | Layout                   : rectangular
#> 2026-09-16T00:09:27.226+08:00 | INFO     | Unit                     : auto
#> 2026-09-16T00:09:27.226+08:00 | INFO     | Step 1/7: Input validation and reading
#> 
#>   --------------------------------------------------
#>   >> Input Validation
#>   --------------------------------------------------
#> 2026-09-16T00:09:27.226+08:00 | INFO     | Tips                     : 50
#> 2026-09-16T00:09:27.226+08:00 | INFO     | Internal nodes           : 49
#> 2026-09-16T00:09:27.226+08:00 | INFO     | Edge lengths range       : 40.1579 to 2758.4006
#> 2026-09-16T00:09:27.227+08:00 | INFO     | Input validation passed
#> 2026-09-16T00:09:27.227+08:00 | INFO     | Timer 'input_reading': 1 ms
#> 2026-09-16T00:09:27.227+08:00 | INFO     | Step 2/7: Taxonomy parsing
#> 2026-09-16T00:09:27.227+08:00 | INFO     | Using rank-based taxonomy: phylum
#> 2026-09-16T00:09:27.231+08:00 | INFO     | Detected format          : GTDB
#> 2026-09-16T00:09:27.231+08:00 | INFO     | Groups found             : 5
#> 2026-09-16T00:09:27.231+08:00 | INFO     | Timer 'taxonomy_parsing': 4 ms
#> 2026-09-16T00:09:27.231+08:00 | INFO     | Step 3/7: MRCA computation and monophyly check
#> 2026-09-16T00:09:27.231+08:00 | INFO     | Checking monophyly and computing MRCA for each group...
#> 2026-09-16T00:09:27.232+08:00 | INFO     | Valid groups for collapse: 5 out of 5 total groups
#> 2026-09-16T00:09:27.232+08:00 | INFO     | Valid MRCA nodes         : 5
#> 2026-09-16T00:09:27.232+08:00 | INFO     | Timer 'mrca_computation': 1 ms
#> 2026-09-16T00:09:27.233+08:00 | INFO     | Step 4/7: Color generation
#> 2026-09-16T00:09:27.233+08:00 | INFO     | Color palette            : viridis
#> 2026-09-16T00:09:27.233+08:00 | INFO     | Step 5/7: Tree rendering
#> ! # Invaild edge matrix for <phylo>. A <tbl_df> is returned.
#> ! # Invaild edge matrix for <phylo>. A <tbl_df> is returned.
#> 2026-09-16T00:09:27.271+08:00 | INFO     | Collapsing 5 clades...
#> 2026-09-16T00:09:27.282+08:00 | INFO     | Clade collapse complete
#> 2026-09-16T00:09:27.286+08:00 | INFO     | Timer 'tree_rendering': 52 ms
#> 2026-09-16T00:09:27.286+08:00 | INFO     | Step 6/7: Timescale integration
#> 
#> ============================================================
#>                       Pipeline Complete
#> ============================================================
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Tips                        : 50
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Groups parsed               : 5
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Groups collapsed            : 5
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Singleton groups            : 0
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Skipped (non-monophyletic)  : 0
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Skipped (root/zero-tip)     : 0
#> 2026-09-16T00:09:27.315+08:00 | INFO     |   Taxonomy format             : GTDB
#> 2026-09-16T00:09:27.316+08:00 | INFO     |   Layout                      : rectangular
#> 2026-09-16T00:09:27.316+08:00 | INFO     |   Timescale                   : disabled
#> 2026-09-16T00:09:27.316+08:00 | INFO     | plot_timetree completed successfully
print(p)

Adding Titles

Use main_title and sub_title to add centered titles:

p <- plot_timetree(example_tree, rank = "phylum",
                   taxonomy_format = "GTDB",
                   add_timescale = FALSE,
                   main_title = "GTDB Bacterial Tree",
                   sub_title = "50 taxa | Phylum-level collapsing")
#> 
#> ============================================================
#>            Rclade: Phylogenetic Tree Visualization
#> ============================================================
#> 2026-09-16T00:09:27.472+08:00 | INFO     | Starting plot_timetree pipeline
#> 2026-09-16T00:09:27.472+08:00 | INFO     | Tree input               : phylo object
#> 2026-09-16T00:09:27.472+08:00 | INFO     | Rank                     : phylum
#> 2026-09-16T00:09:27.473+08:00 | INFO     | Layout                   : rectangular
#> 2026-09-16T00:09:27.473+08:00 | INFO     | Unit                     : auto
#> 2026-09-16T00:09:27.473+08:00 | INFO     | Step 1/7: Input validation and reading
#> 
#>   --------------------------------------------------
#>   >> Input Validation
#>   --------------------------------------------------
#> 2026-09-16T00:09:27.473+08:00 | INFO     | Tips                     : 50
#> 2026-09-16T00:09:27.473+08:00 | INFO     | Internal nodes           : 49
#> 2026-09-16T00:09:27.473+08:00 | INFO     | Edge lengths range       : 40.1579 to 2758.4006
#> 2026-09-16T00:09:27.474+08:00 | INFO     | Input validation passed
#> 2026-09-16T00:09:27.474+08:00 | INFO     | Timer 'input_reading': 1 ms
#> 2026-09-16T00:09:27.474+08:00 | INFO     | Step 2/7: Taxonomy parsing
#> 2026-09-16T00:09:27.474+08:00 | INFO     | Using rank-based taxonomy: phylum
#> 2026-09-16T00:09:27.478+08:00 | INFO     | Detected format          : GTDB
#> 2026-09-16T00:09:27.478+08:00 | INFO     | Groups found             : 5
#> 2026-09-16T00:09:27.478+08:00 | INFO     | Timer 'taxonomy_parsing': 4 ms
#> 2026-09-16T00:09:27.478+08:00 | INFO     | Step 3/7: MRCA computation and monophyly check
#> 2026-09-16T00:09:27.478+08:00 | INFO     | Checking monophyly and computing MRCA for each group...
#> 2026-09-16T00:09:27.479+08:00 | INFO     | Valid groups for collapse: 5 out of 5 total groups
#> 2026-09-16T00:09:27.479+08:00 | INFO     | Valid MRCA nodes         : 5
#> 2026-09-16T00:09:27.479+08:00 | INFO     | Timer 'mrca_computation': 1 ms
#> 2026-09-16T00:09:27.480+08:00 | INFO     | Step 4/7: Color generation
#> 2026-09-16T00:09:27.480+08:00 | INFO     | Color palette            : viridis
#> 2026-09-16T00:09:27.480+08:00 | INFO     | Step 5/7: Tree rendering
#> ! # Invaild edge matrix for <phylo>. A <tbl_df> is returned.
#> ! # Invaild edge matrix for <phylo>. A <tbl_df> is returned.
#> 2026-09-16T00:09:27.521+08:00 | INFO     | Collapsing 5 clades...
#> 2026-09-16T00:09:27.532+08:00 | INFO     | Clade collapse complete
#> 2026-09-16T00:09:27.532+08:00 | INFO     | Timer 'tree_rendering': 52 ms
#> 2026-09-16T00:09:27.532+08:00 | INFO     | Step 6/7: Timescale integration
#> 
#> ============================================================
#>                       Pipeline Complete
#> ============================================================
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Tips                        : 50
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Groups parsed               : 5
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Groups collapsed            : 5
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Singleton groups            : 0
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Skipped (non-monophyletic)  : 0
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Skipped (root/zero-tip)     : 0
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Taxonomy format             : GTDB
#> 2026-09-16T00:09:27.567+08:00 | INFO     |   Layout                      : rectangular
#> 2026-09-16T00:09:27.568+08:00 | INFO     |   Timescale                   : disabled
#> 2026-09-16T00:09:27.568+08:00 | INFO     | plot_timetree completed successfully
print(p)

Summarizing Results

Use summarize_timetree() to inspect the collapse metadata:

p <- plot_timetree(example_tree, rank = "phylum",
                   taxonomy_format = "GTDB",
                   add_timescale = FALSE)
#> 
#> ============================================================
#>            Rclade: Phylogenetic Tree Visualization
#> ============================================================
#> 2026-09-16T00:09:27.741+08:00 | INFO     | Starting plot_timetree pipeline
#> 2026-09-16T00:09:27.741+08:00 | INFO     | Tree input               : phylo object
#> 2026-09-16T00:09:27.741+08:00 | INFO     | Rank                     : phylum
#> 2026-09-16T00:09:27.741+08:00 | INFO     | Layout                   : rectangular
#> 2026-09-16T00:09:27.741+08:00 | INFO     | Unit                     : auto
#> 2026-09-16T00:09:27.741+08:00 | INFO     | Step 1/7: Input validation and reading
#> 
#>   --------------------------------------------------
#>   >> Input Validation
#>   --------------------------------------------------
#> 2026-09-16T00:09:27.742+08:00 | INFO     | Tips                     : 50
#> 2026-09-16T00:09:27.742+08:00 | INFO     | Internal nodes           : 49
#> 2026-09-16T00:09:27.742+08:00 | INFO     | Edge lengths range       : 40.1579 to 2758.4006
#> 2026-09-16T00:09:27.742+08:00 | INFO     | Input validation passed
#> 2026-09-16T00:09:27.742+08:00 | INFO     | Timer 'input_reading': 1 ms
#> 2026-09-16T00:09:27.743+08:00 | INFO     | Step 2/7: Taxonomy parsing
#> 2026-09-16T00:09:27.743+08:00 | INFO     | Using rank-based taxonomy: phylum
#> 2026-09-16T00:09:27.747+08:00 | INFO     | Detected format          : GTDB
#> 2026-09-16T00:09:27.747+08:00 | INFO     | Groups found             : 5
#> 2026-09-16T00:09:27.747+08:00 | INFO     | Timer 'taxonomy_parsing': 4 ms
#> 2026-09-16T00:09:27.747+08:00 | INFO     | Step 3/7: MRCA computation and monophyly check
#> 2026-09-16T00:09:27.747+08:00 | INFO     | Checking monophyly and computing MRCA for each group...
#> 2026-09-16T00:09:27.748+08:00 | INFO     | Valid groups for collapse: 5 out of 5 total groups
#> 2026-09-16T00:09:27.748+08:00 | INFO     | Valid MRCA nodes         : 5
#> 2026-09-16T00:09:27.749+08:00 | INFO     | Timer 'mrca_computation': 1 ms
#> 2026-09-16T00:09:27.749+08:00 | INFO     | Step 4/7: Color generation
#> 2026-09-16T00:09:27.749+08:00 | INFO     | Color palette            : viridis
#> 2026-09-16T00:09:27.749+08:00 | INFO     | Step 5/7: Tree rendering
#> ! # Invaild edge matrix for <phylo>. A <tbl_df> is returned.
#> ! # Invaild edge matrix for <phylo>. A <tbl_df> is returned.
#> 2026-09-16T00:09:27.790+08:00 | INFO     | Collapsing 5 clades...
#> 2026-09-16T00:09:27.802+08:00 | INFO     | Clade collapse complete
#> 2026-09-16T00:09:27.802+08:00 | INFO     | Timer 'tree_rendering': 53 ms
#> 2026-09-16T00:09:27.802+08:00 | INFO     | Step 6/7: Timescale integration
#> 
#> ============================================================
#>                       Pipeline Complete
#> ============================================================
#> 2026-09-16T00:09:27.831+08:00 | INFO     |   Tips                        : 50
#> 2026-09-16T00:09:27.831+08:00 | INFO     |   Groups parsed               : 5
#> 2026-09-16T00:09:27.831+08:00 | INFO     |   Groups collapsed            : 5
#> 2026-09-16T00:09:27.831+08:00 | INFO     |   Singleton groups            : 0
#> 2026-09-16T00:09:27.831+08:00 | INFO     |   Skipped (non-monophyletic)  : 0
#> 2026-09-16T00:09:27.831+08:00 | INFO     |   Skipped (root/zero-tip)     : 0
#> 2026-09-16T00:09:27.832+08:00 | INFO     |   Taxonomy format             : GTDB
#> 2026-09-16T00:09:27.832+08:00 | INFO     |   Layout                      : rectangular
#> 2026-09-16T00:09:27.832+08:00 | INFO     |   Timescale                   : disabled
#> 2026-09-16T00:09:27.832+08:00 | INFO     | plot_timetree completed successfully
summarize_timetree(p)
#> === Rclade Timetree Summary ===
#> Input tips: 50
#> Groups parsed (total): 5
#> Groups collapsed: 5
#> Singleton groups (1 tip, not collapsed): 0
#> Skipped non-monophyletic groups: 0
#> Skipped groups (root/zero-tip): 0
#> Displayed leaves after collapse: 5
#> Taxonomy format: GTDB
#> Collapse rank: phylum
#> Palette: viridis
#> Layout: rectangular
#> Timescale: no
#> 
#> Group details:
#>   P1                              n=10  node=54
#>   P2                              n=10  node=63
#>   P3                              n=10  node=72
#>   P4                              n=10  node=82
#>   P5                              n=10  node=91

Saving Output

# Save to PDF
save_timetree(p, "output.pdf", width = 14, height = 10)

# One-line pipeline
# Note: the geological timescale requires an explicit branch-length unit
# (Rclade does not infer units); pass unit = "Ma" or unit = "Ga".
plot_timetree(example_tree, rank = "phylum", unit = "Ga", output = "output.pdf")

Taxonomy Quality Check

Before visualization, check how well your labels can be parsed:

summarize_taxonomy_quality(example_tree$tip.label, format = "GTDB")
#> === Taxonomy Label Parsing Quality Report ===
#> Total labels: 50
#> Detected format: GTDB
#> 
#> Per-rank parse rates:
#>   kingdom        0.0% (0/50) 
#>   domain       100.0% (50/50) ====================
#>   phylum       100.0% (50/50) ====================
#>   class        100.0% (50/50) ====================
#>   order          0.0% (0/50) 
#>   family         0.0% (0/50) 
#>   genus          0.0% (0/50) 
#>   species        0.0% (0/50) 
#>   subspecies     0.0% (0/50) 
#> 
#> All labels parsed successfully.

References & Acknowledgments

Rclade builds on the ggtree and deeptime R packages. If you use Rclade in published research, please cite Rclade along with these key dependencies:

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.