ts_load {slendr} | R Documentation |
Load a tree sequence file produced by a given model
Description
This function loads a tree sequence file simulated from a given slendr model. Optionally, the tree sequence can be recapitated and simplified.
Usage
ts_load(file, model = NULL)
Arguments
file |
A path to the tree-sequence file (either originating from a slendr model or a standard non-slendr tree sequence). |
model |
Optional |
Details
The loading, recapitation and simplification is performed using the Python module pyslim which serves as a link between tree sequences generated by SLiM and the tskit module for manipulation of tree sequence data. All of these steps have been modelled after the official pyslim tutorial and documentation available at: https://tskit.dev/pyslim/docs/latest/tutorial.html.
The recapitation and simplification steps can also be performed individually
using the functions ts_recapitate
and
ts_simplify
.
Value
Tree-sequence object of the class slendr_ts
, which serves as
an interface point for the Python module tskit using slendr functions with
the ts_
prefix.
See Also
ts_nodes
for extracting useful information about
individuals, nodes, coalescent times and geospatial locations of nodes on a
map
Examples
init_env()
# 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 tree sequence generated by a given model
ts <- ts_load(slendr_ts, model)
# even tree sequences generated by non-slendr models can be
msprime_ts <- system.file("extdata/models/msprime.trees", package = "slendr")
ts <- ts_load(msprime_ts)
# load tree sequence and immediately simplify it only to sampled individuals
# (note that the example tree sequence is already simplified so this operation
# does not do anything in this case)
ts <- ts_load(slendr_ts, model = model) %>% ts_simplify(keep_input_roots = TRUE)
# load tree sequence and simplify it to a subset of sampled individuals
ts_small <- ts_simplify(ts, simplify_to = c("CH_1", "NEA_1", "NEA_2",
"AFR_1", "AFR_2", "EUR_1", "EUR_2"))
# load tree sequence, recapitate it and simplify it
ts <- ts_load(slendr_ts, model) %>%
ts_recapitate(recombination_rate = 1e-8, Ne = 10000, random_seed = 42) %>%
ts_simplify()
# load tree sequence, recapitate it, simplify it and overlay neutral mutations
ts <- ts_load(slendr_ts, model) %>%
ts_recapitate(recombination_rate = 1e-8, Ne = 10000, random_seed = 42) %>%
ts_simplify() %>%
ts_mutate(mutation_rate = 1e-8)
ts