Question: Using Seurat 3 Data for Pseudotime Analysis in Monocle 3
gravatar for hkarakurt
8 months ago by
hkarakurt90 wrote:

Hello, I have 2 scRNA-Seq data set for 2 conditions. There is not any batch effect. Tissues, platforms, date of experiments are completely identical. Only difference is condition so if I do a batch correction, I would lose the information I need so I analyzed each data set seperately. I processed, clustered and identified cell types.

Now I want to to trajectory analysis of a specific cell type in both of the condition. To do that, I used subset function to create cell type specific Seurat object and merged them. After that, should I use counts data and start the analysis with Monocle 3 from the beginning or should I create CDS object with normalized data and directly order cells?

Thank you in advance.

rna-seq pseudotime seurat monocle R • 5.6k views
ADD COMMENTlink modified 4 months ago by yaleliu730 • written 8 months ago by hkarakurt90

@ Friederike @ hkarakurt , Hi guys, I am a beginner in slingshot, I also want to use seurat object to run the slingshot, but I ran these issues: 1. how to right load the seurat object? I used the as.SingleCellExperiment, but it displayed <object with="" null="" pointer="">, which will affect my analysis. Is there any other way I can run integrated seurat object in slingshot?

  1. As my data has been normalized, how to run the code to get the right 100 variable genes in slingshot, I tried to run the below code, but got error: "non-numeric argument to mathematical function", or "dim(X) must have a positive length". Can any guy help this? > Y <- log1p(cluster0.sce$nFeature_RNA) var100 <- > names(sort(apply(Y,10,var),decreasing = TRUE))[1:100] > Y <- Y[var100,]

Many thinks,

Yale Liu

ADD REPLYlink written 4 months ago by yaleliu730

Please create a new question for this since it is not related to original question in this thread not is it an answer to the original question.

ADD REPLYlink written 4 months ago by genomax78k

I agree with Genomax: please post this as a separate question, I'll try to assist there. Please also use the proper formatting for code portions (e.g. make use of the button with 101010) so that it's easier to understand what you did.

ADD REPLYlink written 4 months ago by Friederike5.3k
gravatar for jared.andrews07
8 months ago by
St. Louis, MO
jared.andrews075.0k wrote:

Yeah, unfortunately Seurat isn't trying to directly support Monocle 3 until it's out of beta. If you aren't using the SCTransform method from Seurat, you might be able to do the latter, but the former is certainly safer. The Monocle 3 docs are a bit of a mess, so it's hard to tell which might be the preferred option. I'd try both and see how they look. And maybe ask the Monocle folks their recommendation.

Alternatively, you can try other pseudotime tools. In particular, scanpy has a good toolset for this. It can also directly convert Seurat objects to its own format.

Lastly, here is a list of many pseudotime methods along with scores of their usability, stability, and accuracy as derived from this study. That study also provides a wrapper around all of them that makes them easy to use/compare and makes heavy use of Docker so that you don't have to install each individually.

ADD COMMENTlink modified 3 months ago • written 8 months ago by jared.andrews075.0k

Thank you for you answer. Actually I used deconvolution method of Scran for normalization and used it as normalized data in Seurat. With a small thinking, using that normalized values is not okay in my opinion because this methods does pooling across the cells and if I extract small proportion of cells, that pooling would be meaningless. I can try it with SCTransform and I will check other methods.

Thank you again.

ADD REPLYlink written 8 months ago by hkarakurt90

jared.andrews07, could you explain how scanpy can directly convert Seurat objects? Your link may have changed but it currently points to a generic ScanPy docs page.

ADD REPLYlink written 3 months ago by eric.kern13150

I have corrected the link, it appears they moved it.

ADD REPLYlink written 3 months ago by jared.andrews075.0k
gravatar for Friederike
8 months ago by
United States
Friederike5.3k wrote:

Is there a specific reason for using Monocle3? As Jared suggested, there are other (better?) tools for pseudo-time analyses, including scanpy. If you want to stay in the realm of bioconductor, I strongly recommend destiny package (shown here how to use with an SCE object) or the slingshot package, which was among the best performers in this excellent benchmark of trajectory algorithms (that paper also offers a fantastic resource for easily trying out a couple of different algorithms because they supply a package that basically does all the annoying data wrangling under the hood).

ADD COMMENTlink modified 8 months ago • written 8 months ago by Friederike5.3k

To be fair in the benchmark you mention Monocle is amongst the best tools :-)

ADD REPLYlink written 8 months ago by kristoffer.vittingseerup3.0k

Eh, it's fairly middle of the pack based on their benchmarks. Then again, maybe Monocle 3 is a vast improvement, I don't know.

ADD REPLYlink written 8 months ago by jared.andrews075.0k

Thank you for your answer. As you mentioned, there are many possible methods to use. I prefer to do it in R/Bioconductor (it is not only my choice). I will check destiny and slingshot.

Thank you again.

ADD REPLYlink written 8 months ago by hkarakurt90
gravatar for
8 months ago by
shoujun.gu280 wrote:
  1. As long as you performed the experiment separately, there are batch effects (even biology repeats have batch effects). But in your situation, two datasets are from different conditions, which means you cannot assume the composition of cell population in each dataset is identical. Thus, most of the batch effect removal algorithms are not applicable. But MNN batch effect correction method should work in your situation. You can find the detailed information in this paper:

  2. As for trajectory inferences, you could check this paper: Based on this paper, PAGA is a better tools for pseudotime estimation. If you have pre-defined time points (real time), you could try WOT method (but the tutorial of this method is very confusing).

  3. In my opinion, always use normalized data for any downstream analysis.

ADD COMMENTlink modified 8 months ago • written 8 months ago by shoujun.gu280

Thank you for your answer. 1) In fact, experiments were done in the single run in 10X but of course samples come from different mice as unpaired samples. When I tested the batch effect I saw there is little batch effect. I also tried MNN before. The point is, if I do batch correction, I will lose the effect of condition as well which I need to test. This is little confusing for me.

2) I will check all possible methods

3) My normalization method was deconvolution method of Scran package and this methods does pooling across the cells and if I extract small proportion of cells, and I not sure how it effects the analysis. I can normalize the counts of subpopulation and do trajectory analysis.

Thank you for your answer.

ADD REPLYlink written 8 months ago by hkarakurt90
  1. Of course, any batch effect correction method will more or less affect the condition effect. But the purpose of correcting the batch effect is we hope the correction method will eliminate more batch effect than condition effect. If this is the case, then it's worth doing it. Unless you think: 1) there is no overlapping cell population in your two conditions; or 2) your batch effect is larger than you condition effect (this is unlikely, since it means there is very little condition effect), it's better to use MNN to correct batch effect.

  2. Are there any specific reason you have to use this normalization method? Most trajectory methods are calculating the distance of the cell clusters. I think unnormalized data will greatly affect the distance calculation and clustering.

ADD REPLYlink written 8 months ago by shoujun.gu280
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 607 users visited in the last hour