Scelestial: Fast and accurate single-cell lineage tree inference based on a Steiner tree approximation algorithm
Fig 9
The details of the Scelestial algorithm.
The inputs to the Scelestial algorithm are a) a set of sequences S, b) the degree of restriction of the restricted Steiner tree k. The value k represents the size of trees to be considered as potential improvement for the tree T (details in Section 3.5.1). An example is shown at the right side of each step. The input sequences S are “CAC”, “GAG”, “GCC”, and “XAC” (“X” represents a missing value). In step 1 the tree T is initialized with the minimum spanning tree of the input sequences S. The edge lengths represent the cost of the edge according to the Scelestial’s cost function (see Section 3.5.5). In step 2 an example of a subset of sequences for K is highlighted in the picture. In step 2A a tree τ over leaf nodes K is shown. In step 2B bridges are highlighted as red edges between input sequences. In step 2C the result of adding tree τ to the current tree T is shown. In this example the bridges shown in step 2B are removed and two edges between nodes K corresponding to bridges are added. For each bridge an edge between the two nodes from K which their path passed through the edge is added. The new costs are defined as it is shown in step 2C. In step 3, the trees τ are added to the tree with their corresponding internal nodes. In step 4 lowest cost imputation of sample nodes are added to the tree, in the sample place as input sequences.