Note
Go to the end to download the full example code
Construct lienage tree using Trisicell-Boost
This example shows how to construct a lineage tree using Trisicell-Boost on a binary single-cell genotype matrix.
import trisicell as tsc
# sphinx_gallery_thumbnail_path = "_static/thumbnails/trisicell-boost.png"
First, we load a binary test single-cell genotype data.
df_in = tsc.datasets.test()
df_in.head()
Next, using trisicell.tl.booster()
we remove the single-cell noises from the
input.
df_out = tsc.tl.booster(
df_in,
alpha=0.0000001,
beta=0.1,
solver="PhISCS",
sample_on="muts",
sample_size=15,
n_samples=88,
begin_index=0,
n_jobs=1,
dep_weight=50,
)
df_out.head()
SUBSAMPLING (1/3): 0%| | 0/88 [00:00<?, ?it/s]
SUBSAMPLING (1/3): 0%| | 0/88 [00:03<?, ?it/s]
DEPENDENCIES (2/3): 0%| | 0/88 [00:00<?, ?it/s]
DEPENDENCIES (2/3): 83%|#################################1 | 73/88 [00:00<00:00, 722.17it/s]
DEPENDENCIES (2/3): 100%|########################################| 88/88 [00:00<00:00, 723.01it/s]
RECONSTRUCTION (3/3): 0%| | 0/20 [00:00<?, ?it/s]
RECONSTRUCTION (3/3): 100%|######################################| 20/20 [00:00<00:00, 10974.11it/s]
input -- size: 20x20
input -- 0: 226#, 56.5%
input -- 1: 94#, 23.5%
input -- NA: 80#, 20.0%
input -- CF: False
output -- size: 20x20
output -- 0: 276#, 69.0%
output -- 1: 124#, 31.0%
output -- NA: 0#, 0.0%
output -- CF: True
output -- time: 3.7s (0:00:03.694696)
flips -- #0->1: 11
flips -- #1->0: 0
flips -- #NA->0: 61
flips -- #NA->1: 19
rates -- FN: 0.105
rates -- FP: 0.00000000
rates -- NA: 0.200
score -- NLL: 35.232345994771514
TREE_SCORE: 179.07605817776346
Finally, using trisicell.ul.is_conflict_free_gusfield()
we check whether the
inferred genotype matrix is conflict-free or not.
is_cf = tsc.ul.is_conflict_free_gusfield(df_out)
is_cf
True
Total running time of the script: ( 0 minutes 4.119 seconds)
Estimated memory usage: 14 MB