This function combines information from the table of individuals and table of nodes into a single data frame which can be used in downstream analyses.
Arguments
- x
Tree sequence object of the class
slendr_ts
or aphylo
object extracted byts_phylo
- sf
Should spatial data be returned in an sf format? If
FALSE
, spatial geometries will be returned simply as x and y columns, instead of the standard POINT data type.
Value
Data frame with processed information from the tree sequence object.
If the model which generated this data was spatial, result will be returned
as a spatial object of the class sf
.
Details
The source of data (tables of individuals and nodes recorded in the tree
sequence generated by SLiM) are combined into a single data frame. If the
model which generated the data was spatial, coordinates of nodes (which are
pixel-based by default because SLiM spatial simulations occur on a raster),
the coordinates are automatically converted to an explicit spatial object of
the sf
class unless spatial = FALSE
. See
https://r-spatial.github.io/sf/ for an extensive introduction to the sf
package and the ways in which spatial data can be processed, analysed, and
visualised.
See also
ts_table
for accessing raw tree sequence tables
without added metadata annotation. See also ts_ancestors
to
learn how to extract information about relationship beteween nodes in the
tree sequence, and how to analysed data about distances between nodes in
the spatial context.
Examples
check_dependencies(python = TRUE, quit = TRUE) # dependencies must be present
init_env()
#> The interface to all required Python modules has been activated.
# load an example model with an already simulated tree sequence
slendr_ts <- system.file("extdata/models/introgression_slim.trees", package = "slendr")
model <- read_model(path = system.file("extdata/models/introgression", package = "slendr"))
# load the tree-sequence object from disk
ts <- ts_read(slendr_ts, model)
# extract an annotated table with (spatio-)temporal node information
ts_nodes(ts)
#> # A tibble: 85 × 12
#> name pop node_id time time_tskit sampled remembered retained alive
#> <chr> <fct> <int> <dbl> <dbl> <lgl> <lgl> <lgl> <lgl>
#> 1 NEA_1 NEA 0 70000 2334 TRUE TRUE TRUE FALSE
#> 2 NEA_1 NEA 1 70000 2334 TRUE TRUE TRUE FALSE
#> 3 NEA_2 NEA 2 40000 1334 TRUE TRUE TRUE FALSE
#> 4 NEA_2 NEA 3 40000 1334 TRUE TRUE TRUE FALSE
#> 5 AFR_1 AFR 4 0 0 TRUE TRUE TRUE TRUE
#> 6 AFR_1 AFR 5 0 0 TRUE TRUE TRUE TRUE
#> 7 AFR_2 AFR 6 0 0 TRUE TRUE TRUE TRUE
#> 8 AFR_2 AFR 7 0 0 TRUE TRUE TRUE TRUE
#> 9 AFR_3 AFR 8 0 0 TRUE TRUE TRUE TRUE
#> 10 AFR_3 AFR 9 0 0 TRUE TRUE TRUE TRUE
#> # ℹ 75 more rows
#> # ℹ 3 more variables: pedigree_id <dbl>, pop_id <int>, ind_id <dbl>