Creating a TI method: Wrapping trajectories

Common trajectory model

dynwrap always represents trajectories in the same way, as illustrated here with a tree trajectory

  • Milestone network, contains information of connections between milestones
## # A tibble: 5 × 4
##   from        to          length directed
##   <chr>       <chr>        <dbl> <lgl>   
## 1 Milestone_A Milestone_B    1   FALSE   
## 2 Milestone_B Milestone_C    2   FALSE   
## 3 Milestone_B Milestone_D    1   FALSE   
## 4 Milestone_C Milestone_E    1   FALSE   
## 5 Milestone_C Milestone_F    1.5 FALSE
  • Milestone percentages, contains how close a cell is to a milestone. For each cell, the percentages sum to one.
## # A tibble: 10 × 3
##    cell_id milestone_id percentage
##    <chr>   <chr>             <dbl>
##  1 Cell_a  Milestone_A       0.305
##  2 Cell_a  Milestone_B       0.695
##  3 Cell_b  Milestone_B       0.898
##  4 Cell_b  Milestone_C       0.102
##  5 Cell_c  Milestone_C       0.458
##  6 Cell_c  Milestone_F       0.542
##  7 Cell_d  Milestone_C       0.597
##  8 Cell_d  Milestone_F       0.403
##  9 Cell_e  Milestone_C       0.413
## 10 Cell_e  Milestone_E       0.587
  • Progressions, an alternative to milestone percentages, also contains the positions of each cell but now based on its progression through an edge
## # A tibble: 10 × 4
##    cell_id from        to          percentage
##    <chr>   <chr>       <chr>            <dbl>
##  1 Cell_a  Milestone_A Milestone_B     0.695 
##  2 Cell_b  Milestone_B Milestone_C     0.102 
##  3 Cell_c  Milestone_C Milestone_F     0.542 
##  4 Cell_d  Milestone_C Milestone_F     0.403 
##  5 Cell_e  Milestone_C Milestone_E     0.587 
##  6 Cell_f  Milestone_C Milestone_F     0.540 
##  7 Cell_g  Milestone_C Milestone_F     0.947 
##  8 Cell_h  Milestone_A Milestone_B     0.794 
##  9 Cell_i  Milestone_C Milestone_F     0.0148
## 10 Cell_j  Milestone_C Milestone_F     0.883
  • Divergence regions, contain the information on >=3 milestones connected to eachother. This is optional.
## # A tibble: 3 × 3
##   divergence_id milestone_id is_start
##   <chr>         <chr>        <lgl>   
## 1 Divergence_1  Milestone_B  TRUE    
## 2 Divergence_1  Milestone_C  FALSE   
## 3 Divergence_1  Milestone_D  FALSE

Direct wrapping

These three objects (with either milestone percentages or progressions) are enough to form a trajectory using add_trajectory.

trajectory <- wrap_data(cell_ids = cell_ids) %>% 
  add_trajectory(
    milestone_network = milestone_network, 
    milestone_percentages = milestone_percentages,
    divergence_regions = divergence_regions
  )

Indirect wrapping

Often, you don’t want to directly output the milestone network and percentages, but want to output an alternative representation that is converted by dynwrap to the common representation:

Check out the reference documentation for an overview and examples of the different wrappers