-
Notifications
You must be signed in to change notification settings - Fork 59
Description
I've been trying to construct a pseudotime trajectory from HSC to downstream lineages from Human BM scRNAseq data . This scRNAseq was done with the CITESeq, and annotation was done with CITESeq and transcriptome data (and initially analyzed by Seurat and available from https://www.icloud.com/iclouddrive/0fbp9OjMNaiqUjcWI0cQOGYTw#palantir%5F1), and resulting UMAP is shown below;
scv.pl.scatter(
an,
basis='X_sct1_umap.np',
#components=["1, 2"],
color="Level3M_noNA_copy",
colorbar=True,
figsize=(10,10),
legend_fontsize=7,
legend_fontoutline=2
)
To test Palantir PsuedoTime, I selected the root/early_cell (HSC) and some of the terminal lineage cells from regions of interest on UMAP as follows;
sc.pl.embedding(
basis='X_sct1_umap.np',
adata=an,
color=["Level3M_noNA_copy"],
palette=palette72, size=5,
add_outline=False,
groups=['HSC', 'pDC', 'ERP', 'Pro-B', 'Myeloid intermediate 1', 'immNeu'] )
I used pal.utils.early_cell and pal.utils.find_terminal_states to find the pseudotime origin and desinations as follows;
early_cell = pal.utils.early_cell(an, celltype="HSC", celltype_column="Level3M_noNA_copy", eigvec_key="X_palantir_multiscale", fallback_seed=123)
terminal_cells=pal.utils.find_terminal_states(an, celltypes=["pDC", "ERP", "Pro-B", "Myeloid intermediate 1", "immNeu"], celltype_column="Level3M_noNA_copy", eigvec_key="X_palantir_multiscale", fallback_seed=123)
Quick check of locatioins of those cells on UMAP;
early_cell=pd.Series("Early_Cell", index="TATCTTGCAGTAGAAT-1_6")
combo_states=pd.concat([early_cell, terminal_cells])
pal.plot.highlight_cells_on_umap(an, cells=combo_states, embedding_basis="X_sct1_umap_np_small")
plt.show()
The pseudotime was generated by using these cells as follows;
pr_res = pal.core.run_palantir(data=an, early_cell=early_cell, terminal_states=terminal_states, eigvec_key="X_palantir_multiscale")
Follwoing plots shows the result and diffustion components;
pal.plot.plot_palantir_results(an, embedding_basis="X_sct1_umap_np_small", s=3)
plt.show()
pal.plot.plot_diffusion_components(an, dm_res='X_palantir_diff_comp', embedding_basis="X_umap")
Looking at these plots, immature and mature states are reversed. The problem appears to be that Palantir is picking Myeloid intermediate 1, and immNeu as the start of pseudotime, insted of HSC.
As a comparison, I run scanpy dpt on the same data, which gave me somewhat a expected result.
sc.pl.embedding(
an,
basis="X_sct1_umap.np",
color=["dpt_pseudotime", "palantir_pseudotime"],
color_map="viridis",
)
I've tried selecting different early-cells but no avail. At this point, I'd really appreciate any suggestions or inputs.
Thanks in advance.