Skip to contents

This constructor creates a list of objects of class `'ctree'`, after using a sampling strategy to determine possible trees that fit the data. The strategy to sample trees can be controlled, a maximum number of trees can be sampled with a Monte Carlo procedure and the actual process can be exhausted if there are less than a number of available trees to fit the data.

Note that the parameters of this function includes the same parmeters of function ctree, plus the parameters of the sampler. See ctree for an explanation of the parameters.

Usage

ctrees(
  CCF_clusters,
  drivers,
  samples,
  patient,
  sspace.cutoff = 10000,
  n.sampling = 5000,
  store.max = 100
)

Arguments

CCF_clusters

Clusters of Cancer Cell Fractions available in the data of this patient. See the package vignette to see the format in which this should be specified.

drivers

A list of driver events that should be annotated to each one of the input clusters contained in the `CCF_clusters` parameter. See the package vignette to see the format in which this should be specified.

samples

A vector of samples names (e.g., the biopsies sequenced for this patient).

patient

A string id that represent this patient.

sspace.cutoff

If there are less than this number of tree available, all the structures are examined in an exhaustive fashion. Otherwise, if there are more than this, a Monte Carlo sampler is used.

n.sampling

If a Monte Carlo sampler is used, n.sampling distinct trees are sampled and scored.

store.max

When a number of trees are generated, scored and ranked, a maximum of store.max are returned to the user (these are selected following the ranking).

Value

An list of objects of class "ctree" that represent the trees that can be fit to the data of this patient..

Examples


data('ctree_input')

x = ctrees(
   ctree_input$CCF_clusters,
   ctree_input$drivers,
   ctree_input$samples,
   ctree_input$patient,
   ctree_input$sspace.cutoff,
   ctree_input$n.sampling,
   ctree_input$store.max
   )
#>  [ ctree ~ clone trees generator for CUK12345 ] 
#> 
#> # A tibble: 7 × 7
#>   cluster nMuts is.driver is.clonal    R1    R2    R3
#>   <chr>   <int> <lgl>     <lgl>     <dbl> <dbl> <dbl>
#> 1 1          72 TRUE      FALSE      0     0.92  0   
#> 2 2          69 TRUE      TRUE       0.99  0.98  0.99
#> 3 3          48 FALSE     FALSE      0     0     0.49
#> 4 4          29 FALSE     FALSE      0.01  0.01  0.93
#> 5 5          24 TRUE      FALSE      0.78  0     0   
#> 6 6          23 TRUE      FALSE      0.98  0.03  0.98
#> 7 7          15 FALSE     FALSE      0     0.41  0   
#> 
#>  Trees per region 1, 3, 1
#>  Total 3 tree structures - search is exahustive
#> 
#> ── Ranking trees 
#>  3  trees with non-zero score, storing 3
   
print(x[[1]])
#>  [ ctree - ctree rank 1/3 for CUK12345 ] 
#> 
#> # A tibble: 7 × 7
#>   cluster nMuts is.driver is.clonal    R1    R2    R3
#>   <chr>   <int> <lgl>     <lgl>     <dbl> <dbl> <dbl>
#> 1 1          72 TRUE      FALSE      0     0.92  0   
#> 2 2          69 TRUE      TRUE       0.99  0.98  0.99
#> 3 3          48 FALSE     FALSE      0     0     0.49
#> 4 4          29 FALSE     FALSE      0.01  0.01  0.93
#> 5 5          24 TRUE      FALSE      0.78  0     0   
#> 6 6          23 TRUE      FALSE      0.98  0.03  0.98
#> 7 7          15 FALSE     FALSE      0     0.41  0   
#> 
#> Tree shape (drivers annotated)  
#> 
#>   \-GL
#>    \-2 :: MET, TERT
#>     |-1 :: RB1, IKZF1, KRAS
#>     | \-7
#>     \-6 :: EP300
#>      |-4
#>      | \-3
#>      \-5 :: NF1
#> 
#> Information transfer  
#> 
#>    MET ---> RB1 
#>    MET ---> IKZF1 
#>    MET ---> KRAS 
#>    TERT ---> RB1 
#>    TERT ---> IKZF1 
#>    TERT ---> KRAS 
#>    GL ---> MET 
#>    GL ---> TERT 
#>    EP300 ---> NF1 
#>    MET ---> EP300 
#>    TERT ---> EP300 
#> 
#> Tree score 0.6 
#> 
plot(x[[1]])
#> Warning: Duplicated aesthetics after name standardisation: na.rm
#> Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> = "none")` instead.
#> Warning: Removed 1 rows containing missing values (geom_point).