seurat, subcluster and trajectory analysis (Monocle 3)
1
3
Entering edit mode
16 months ago

Hi all,

I am analyzing single cell RNA-seq data using Seurat and would like the follow up the analysis with cell trajectory analysis using Monocle3. So I tried several methods, but I am not sure how to do it. I want to analyze like the following paper's methods.

"For oligodendrocyte developmental trajectory assessment, the data for cells belonging to the five clusters in the OL (Oligos_1, Oligos_2, Oligos_3, OPCs_1, OPCs_2) were used to create a separate Seurat object using the SubsetData function. The most variable genes for these clusters alone were identified using the FindVariableGenes function and the following parameters: x.low.cutoff = 0.003, x.high.cutoff = 3 and y.cutoff = 1 (giving a total of 895). The Seurat object was imported into a CDS (CellDataSet) object using the Monocle22 function importCDS.

Estimation of size factors and dispersions was performed (using the estimateSizeFactors and estimateDispersions Monocle functions) on the CDS object using default parameters. Dimensionality reduction was then performed using reduceDimension, with reduction_method set to DDRTree. The 895 variable genes identified above were used for ordering the cells into a trajectory with the orderCells function. The pseudotime trajectory was then plotted with plot_cell_trajectory, and the change in expression of genes known to be involved in oligodendrocyte development were plotted using plot_genes_in_pseudotime." (C Nagy et al., Nat Neurosci., 2020)

I know this is an old version of the monocle. But I want to analyze like this. Some methods are not well explained or show only a line across the entire cluster without reconfiguring the cluster.

I have already done clustering analysis with Seurat. Then, I want to extract the subcluster and do trajectory analysis with these subcluster using Monocle3. Could you please share the code or point me to the site?

Thanks in advance

scRNA-seq trajectory Monocle3 seurat • 5.9k views
ADD COMMENT
1
Entering edit mode
16 months ago
fracarb8 ▴ 940

You can use the function cell_data_set() from SeuratWrappers to convert your seurat object and use it within monocle. Once your data is converted, you can use monocle tools with seurat annotated data.

monocle_object <- as.cell_data_set(seurat_object)
monocle_object <- cluster_cells(cds = monocle_object, reduction_method = "UMAP")
monocle_object <- learn_graph(monocle_object, use_partition = TRUE)
monocle_object <- order_cells(monocle_object,reduction_method = "UMAP")
plot_cells(monocle_object,
color_cells_by = "pseudotime",
graph_label_size=5,
show_trajectory_graph = TRUE)

ADD COMMENT
0
Entering edit mode

Thank you!

I used that code, but I have some problems. In this figure, I extracted Oligo, OPC subset and performed this code. But this method does not re-clustering..just only draws a line on the subcluster.

Subset_cluster <- subset(x=full.combined, idents=c("Oligo1", "Oligo2", "Oligo3", "OPC1", "OPC2"))
Subset_cluster <- as.cell_data_set(Subset_cluster)
Subset_cluster <- cluster_cells(cds=Subset_cluster, reduction_method = "UMAP")
Subset_cluster <- learn_graph(Subset_cluster, use_partition = T)
Subset_cluster <- order_cells(Subset_cluster, reduction_method = "UMAP")
plot_cells(Subset_cluster, color_cells_by = "pseudotime", graph_label_size = 0, show_trajectory_graph = T)


I want to perform like above paper's figure. Do I need to do something extra?

ADD REPLY
0
Entering edit mode

You are subsetting the data, but keeping the same uMAP projection of the global dataset. You need to re-cluster and generate a new uMAP projection specific of your subset. You can either do it in seurat after your data has been subsetted, or in monocle using the cor-respective monocle functions.

ADD REPLY
0
Entering edit mode

fracarb8 if subsetting cells, say a cluster of T cells from the entire seurat object containing only T cells. Would it be okay to retain the original umap w/o re-culstering? Thanks

ADD REPLY

Login before adding your answer.

Traffic: 915 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6