Single-cell Trajectory analysis using Monocle3 and Seurat | Step-by-step tutorial

Поділитися
Вставка
  • Опубліковано 16 лип 2024
  • A detailed walk-though of steps to perform trajectory analysis using Monocle3 + Seurat for single-cell RNA-Seq data. In this video I cover various aspects of trajectory analysis including what is trajectory analysis, when to perform this analysis, which trajectory inference method to choose and how to perform trajectory analysis. In addition, I go over workflow steps and talk about cell data set object which monocle3 requires and finally demonstrate this workflow step-by-step in R.
    I hope you find the video informative. I look forward to your comments in the comments section!
    Link to code:
    github.com/kpatel427/UA-camT...
    Data:
    scrna.sklehabc.com/
    Alternate Data Link:
    drive.google.com/file/d/1CJ9V...
    Publication associated with the data:
    academic.oup.com/nsr/article/...
    Monocle3 tutorial:
    cole-trapnell-lab.github.io/m...
    R package collection for Trajectory Inference:
    dynverse.org/
    Publication comparing various Trajectory Inference methods:
    www.biorxiv.org/content/10.11...
    Chapters:
    0:00 Intro
    0:52 WHAT is Trajectory analysis?
    2:11 What is pseudotime?
    2:43 WHEN to perform trajectory analysis?
    3:57 WHICH trajectory inference method to choose?
    5:52 HOW to perform trajectory analysis? - Workflow steps
    7:04 cell_data_set class
    8:29 Data for demo
    9:20 Fetching the data
    9:47 Load libraries and read data in R
    12:39 Create Seurat object
    16:39 Subset Seurat object to only retain B cells
    19:53 Processing steps in Seurat (NormalizeData, ScaleData, RunPCA, RunUMAP and FindClusters)
    25:25 Convert Seurat object to object of cell_data_set class
    26:06 Retrieving data from cds object
    28:11 Transfer clustering information from Seurat object to cds object
    33:37 Visualize clustering using monocle3: plot_cells()
    36:44 Learn trajectory graph: learn_graph()
    39:06 Order cells in pseudotime: order_cells()
    41:00 Plotting pseudotime for cell types in ggplot2
    43:43 Find genes that change expression along a trajectory: graph_test()
    47:03 Visualizing pseudotime in Seurat's FeaturePlot()
    Show your support and encouragement by buying me a coffee:
    www.buymeacoffee.com/bioinfor...
    To get in touch:
    Website: bioinformagician.org/
    Github: github.com/kpatel427
    Email: khushbu_p@hotmail.com
    #bioinformagician #bioinformatics #monocle3 #monocle #trajectoryinference #trajectory #singlecell #deg #seurat #integration#R #genomics #beginners #tutorial #howto ##research #omics #biology #ncbi #rnaseq #ngs

КОМЕНТАРІ • 85

  • @adhirajnath5432
    @adhirajnath5432 Рік тому +4

    This channel will be a respectable resource in our bioinformatics community

  • @christinaz3573
    @christinaz3573 3 місяці тому

    Honestly, this was so precisely what I needed in a previously very frustrating situation. The way you manage to explain the background of what you are doing connected to how it is done is absolutely awesome. Thank you so so much!

  • @zlj8435
    @zlj8435 2 роки тому +4

    Thanks a lot! The class is easy to follow with the github code and great to know how to do that and why we need to do that. Really appreciate it!!

  • @tautarius
    @tautarius 2 роки тому +2

    thanks for making these awesome videos. I really appreciate it !!!

  • @beyzaozdemir394
    @beyzaozdemir394 2 роки тому +6

    You are making my learning journey much more easier for an intermediate use and making follow vignettes a breeze! Glad to have found your SEURAT videos!

  • @junorzhu4313
    @junorzhu4313 Рік тому

    very detailed tutorial, I found that myself more susceptible to your pattern compaired to others

  • @babil1908
    @babil1908 Рік тому

    I am learning so much from you, thank you so much!

  • @waynejanuzaj9679
    @waynejanuzaj9679 2 роки тому +5

    Your tutorials have been very timely, informative and helpful. We will appreciate it if you could also make a tutorial on SCENIC. Thank you so much!

    • @Bioinformagician
      @Bioinformagician  2 роки тому +1

      Will surely consider making a video on it! Thanks for the suggestion :)

  • @navyanandhanaofficial
    @navyanandhanaofficial Рік тому

    Very nice Presentation! I liked it... Appreciate you!

  • @5602KK
    @5602KK 10 місяців тому

    EXCELLENT video thank you very much. Excellent clear explanations accompanied with great demonstrations & slides I really mean that

  • @melinabordone8243
    @melinabordone8243 Рік тому

    First, thank you a lot. Your tutorial videos on scRNAseq analysis are a treasure! I would like to know if you already have a video on differential cell-type composition analysis or if you are planning to record one. Thank you so much!

  • @savitajayaramph.d.2638
    @savitajayaramph.d.2638 2 роки тому

    Thanks so much. Very informative videos!

  • @yairprawer4405
    @yairprawer4405 Рік тому

    so helpful!! saved me hours of of reading error messages

  • @jintaoxu6393
    @jintaoxu6393 Рік тому +3

    This playlist is so helpful. Would it be possible to have a Step-by-step tutorial for cell-cell interaction?

  • @Aquaria-
    @Aquaria- Місяць тому

    Thank you so much! Really helpful for me to convert Seurat object for Monocle3

  • @abdullahaltulea142
    @abdullahaltulea142 Рік тому

    Excellent! Thank you very much

  • @tushardhyani3931
    @tushardhyani3931 2 роки тому

    Thank you for this video !!

  • @cocnfkdjsnnnbb
    @cocnfkdjsnnnbb 2 місяці тому

    Excellent tutorial 👏

  • @Pato-py7wt
    @Pato-py7wt Рік тому

    Amazing clear helpful video

  • @ryanpark7323
    @ryanpark7323 Рік тому

    Thank you! So so helpful :)

  • @qiongyujadehe5778
    @qiongyujadehe5778 Рік тому

    Thanks alot !very useful!

  • @prasadchaskar8542
    @prasadchaskar8542 2 роки тому

    Thank you so much. Best!!!!

  • @mayaziv8088
    @mayaziv8088 Рік тому

    Thank you great videos!!

  • @anaburgos4969
    @anaburgos4969 Рік тому

    Thank you SO MUCH :)

  • @SwedishRagers
    @SwedishRagers 2 роки тому +1

    Hi! there is not tutorial on YT on combining microarray and rna sequencing data under one analysis. this would be a very helpful tutorial! thanks again for all your amazing content!

    • @Bioinformagician
      @Bioinformagician  2 роки тому

      Since microarray and RNA-Seq are different technologies, I am not sure of any use cases where there would be a requirement to combine data from both these technologies.

    • @SwedishRagers
      @SwedishRagers 2 роки тому

      @@Bioinformagician I was thinking of when one does a meta-analysis on data from GEO. Some studies have done this for example: doi: 10.3389/fgene.2021.663787
      however, it is difficult to learn how to replicate this. Thank you though.

  • @jianwu4593
    @jianwu4593 Рік тому

    Thanks

  • @potterae
    @potterae Рік тому +1

    Your videos are awesome, very helpful! For setting the clusters in the cell data set, do you think it could be a viable option to use the defined subclusters or is it better to use the clusters which seurat found with FindClusters? Thank you!

  • @kiranpatil2924
    @kiranpatil2924 10 місяців тому

    Thank you,, Please Make same video for Spatial Transcriptomics Analysis

  • @adelyntsai1116
    @adelyntsai1116 Рік тому

    This is great!! Thank you so much. Will it be possible if you can make tutorials on intercellular interaction tools in R? Thank you again!

    • @Bioinformagician
      @Bioinformagician  Рік тому

      Thanks for the suggestion, will surely considering making videos covering this topic.

  • @sreejas1302
    @sreejas1302 Рік тому

    Hi, thank you so much for this video. How to do trajectory analysis in diffusion maps instead of principal components?

  • @rps2930
    @rps2930 6 місяців тому

    Hi Khushbu, first of all I really appreciate the effort you put in sharing your knowledge with us. I want to know from where I can get dataset for trajectory analysis which can be further published?

  • @lukesimpson1507
    @lukesimpson1507 Рік тому +1

    Hi Bioinfomagician, great video as always. You spoke about the importance of having the optimal cluster resolution, is there any objective way to determine this? Is there any tools you would recommend? Thank you!

    • @Bioinformagician
      @Bioinformagician  Рік тому +3

      What I usually do is run clustering with multiple clustering resolutions like this:
      FindClusters(object = seurat_integrated,
      resolution = c(0.2, 0.5, 0.8, 1.0))
      and then plot each of them to visually see which resolutions provide optimal separation.
      If you have known cell types in your data, it might be of help to visualize the markers for those cell types too for different resolutions to make sure different cell types, group into separate clusters.

  • @tizianatocci1176
    @tizianatocci1176 Рік тому

    Hey, your videos are truly amazing! Thank you so much! I have a question concerning point 3 "# 3 Learn trajectory graph -----------". I obtain a trajectory different from the one that you obtain in the video and the same happens if I copy your code from github. Do you have any idea of what I am doing wrong? Thank you again!!
    This is the error I get when I run the plot of the third point:
    Warning message: ggrepel: 7 unlabeled data points (too many overlaps). Consider increasing max.overlaps

  • @abhimanyu--3741
    @abhimanyu--3741 10 місяців тому

    Thank you for the tutorial. Can you extend this to "plot_genes_in_pseudotime" after the "graph_test"? that is one confusing part of the code on their tutorial

  • @jasminjeffery5668
    @jasminjeffery5668 4 місяці тому

    Would you consider a tutorial for TI with slingshot? that would be so helpful for me!

  • @stacygenovese1761
    @stacygenovese1761 Рік тому +1

    As always these are wonderful. Quick question - if we're doing a trajectory analysis following integration do we just run as.cell_data_set() on our existing Seurat object? Or do we have to re-create the object transforming the expression matrix?

    • @Bioinformagician
      @Bioinformagician  Рік тому

      I think you could read the integrated object into as.cell_data_set() and use the clustering information from Seurat's UMAP to cluster cells and learn trajectory on those embeddings.

    • @judep6077
      @judep6077 Рік тому

      Make sure to change the active assay to 'RNA' from 'integrated' before you run the monocle or you will get an error.

  • @alexbrown2272
    @alexbrown2272 Рік тому +1

    Thank you so much for this great video! Curious if you have found a way to plot individual genes in pseudo time? There is a way in Monocle, but when using this integration with Seurat there is not an expression family that is needed to plot specific genes in pseudo time or to find which genes are driving the trajectory. Any advice would be greatly appreciated! Thanks again!

    • @brooke2100
      @brooke2100 Рік тому

      I am wondering this as well. Thanks in advance!

    • @Bioinformagician
      @Bioinformagician  Рік тому

      You can plot specific genes in pseudotime by running cds

  • @msumode4493
    @msumode4493 Рік тому

    Hello Khushbu. 2 points I am confused about.
    1. I was wondering when converting from Seurat to Monocle3 cds object, are the counts used for downstream analysis in your tutorial or the data from Seurat's data slot? Counts are not normalized and wouldn't that lead to erroneous calculations if not normalized in Monocle3 later on? I am not sure if this was done in this tutorial.
    2. Why take Seurat's UMAP coordinates for analysis in Monocle3? Wouldn't it be more informative to know how Monocle3 projects the Seurat generated clusters in 2D space? Otherwise, isn't Monocle just drawing or projecting pseudotime over Seurat based proximity?
    Thank you.

  • @erin8360
    @erin8360 Рік тому

    Thank you for sharing this! Is there a way to compare the trajectories between two conditions/treatments?

    • @Bioinformagician
      @Bioinformagician  Рік тому

      You could build separate trajectories for each condition/treatment, get top 50 or 100 genes that change expression over pseudotime from both groups and compare them.

  • @meetukaur0909
    @meetukaur0909 4 місяці тому

    Ma'am, can you please let me know where can I get gene and cell meta data for a particular single cell analysis dataset?

  • @youvikasingh7955
    @youvikasingh7955 Рік тому +1

    Hi @Bioinfomagician..Loved your tutorial, and much-needed channel for budding bioinformaticians.
    I wanted to know if we don't have information on root cluster then how do we order cells according to Pseudotime?For eg in your case ProB cells are from cluster 5 but In my case, I just have CD4T cells in 4 clusters...how do I order them?
    Thanks in advance🙏

    • @Bioinformagician
      @Bioinformagician  Рік тому

      I am afraid pseudotime can be determined accurately for other cells if we don't know the cells it originated from i.e. the root cluster.

    • @youvikasingh7955
      @youvikasingh7955 Рік тому

      @@Bioinformagicianthanks for your reply😍
      is there any strategy to find out root cluster?
      I was doing this like..looking for lymphoid differentiation markers and setting those clusters or cells as root
      I am not sure if this way is right
      I appreciate your help!
      Thanks a lot...
      you are doing a great job..whenever i am stuck somewhere i look into your channel for help😊

    • @Bioinformagician
      @Bioinformagician  Рік тому

      @@youvikasingh7955 Unfortunately I am not aware of any reliable methods to find out root cluster. Your best bet is to dig up literature and research papers to find out whether any lineage studies have been done previously for the cells you are studying which can give you clues for the origin cell type and associated markers.
      I am glad to hear my channel is serving as a useful resource :)

  • @2007dolphinlover
    @2007dolphinlover 7 місяців тому

    Why do you also want to compare the cluster before trajectory?

  • @adampassman
    @adampassman Рік тому

    I have hundred of laser-microdissected samples, is there a pipeline for trajectory analysis for this kind of data? Do you think that I could just format my libraries as if they were single cells instead of single microdissections and trick it into working?

  • @miguelcuevas2976
    @miguelcuevas2976 20 днів тому

    What is the benefit of monocle over other trajectory analysis tools such as slingshot?

  • @yongdongwu8472
    @yongdongwu8472 Рік тому

    ZLJ
    3周前
    Thanks a lot! you are so excellent !!and i have a question,the s5" filter(status=="OK")",what's difference between “OK" and "failure",i cannot figure out the meaning and difference.

    • @Bioinformagician
      @Bioinformagician  Рік тому

      graph_test() results outputs status "FAIL" for those genes whose p values, Moran I and Moran test statistic values are NA

  • @hsinchiehwu4397
    @hsinchiehwu4397 Рік тому

    Thank you for all the Rstudio vedios. They're so clear and helpful !!!! I've failed to instal SeuratWrappers (Mac Monterey 12.5, Rstudio IDE 4.2) using remotes or devtools; troubleshooting follow the github site was also nothing worked. Any suggestion would be greatly appreciated !!! Many thanks,

    • @Bioinformagician
      @Bioinformagician  Рік тому

      What is the error you see?

    • @mmhmmh8545
      @mmhmmh8545 Рік тому

      I had the same problem, I was able to install SeuratWrappers after installing R.utils package install.packages("R.utils"). try doing this and see.

  • @kitdordkhar4964
    @kitdordkhar4964 2 роки тому +1

    Question? From where did you get the redefined_cluster? I always get confused with the term "Subset" in scRNA analysis.

    • @Bioinformagician
      @Bioinformagician  2 роки тому

      'redefined_cluster' was already present in the data I am using, as the data was already annotated. The term 'subset' is to just get certain group of cells from the entire dataset.

    • @kitdordkhar4964
      @kitdordkhar4964 2 роки тому +1

      @@Bioinformagician Gotcha! It was already in the ref database I guess. Thanks!

  • @user-ck3ki9hq9t
    @user-ck3ki9hq9t 8 місяців тому +1

    Thank you! I am not seeing any '^MT- genes showing up in the data seuratobj I made from the downloaded data. Just get error: Error in validObject(object = x) :
    invalid class “Seurat” object: 1: all cells in assays must be in the same order as the Seurat object
    invalid class “Seurat” object: 2: 'active.idents' must be named with cell names
    Thanks if you have seen this error before

    • @louisgervais5059
      @louisgervais5059 7 місяців тому +1

      I have the same error message

    • @xinyuqu4407
      @xinyuqu4407 26 днів тому

      I have the same issue. I use the AddMetaData function from Seurat to solve the problem.
      rownames(metadata)

  • @user-mb5ld7re8m
    @user-mb5ld7re8m Рік тому

    Sorry,my monocle3 cannot find funtion as.cell_data_set(). Can you help me?

  • @eramartinez8790
    @eramartinez8790 Рік тому

    Thanks for the video you are saving my PhD, but I have the same problem, I can´t install SeuratWrappers, this is the Warning in install.packages :package ‘SeuratWrappers’ is not available for this version of R , I tried to install from but devtools::install_github("satijalab/seurat-wrappers") and remotes::install_github('satijalab/seurat-wrappers')nothing, any recommendation? I have R version 4.2.2

    • @TheVillka
      @TheVillka Рік тому

      Hi, I had the same problem and installed r.utils. Then it worked with SeuratWrappers

  • @aimanbarki9968
    @aimanbarki9968 2 роки тому +2

    link for data is not working :(.. Can you please cite another source

    • @Bioinformagician
      @Bioinformagician  2 роки тому

      It seems to be working fine for me. Here's the link to the associated publication: academic.oup.com/nsr/article/8/3/nwaa180/5896476#267860186
      They have their data deposited in NCBI GEO - GSE137864 and GSE149938

    • @zeeman5007
      @zeeman5007 Рік тому

      @@Bioinformagician Hi. Love these videos! The link to the data is not working for me as well. I am able to get the expression matrix file from NCBI GEO. But having difficulty finding the gene and cell metadata files. Any assistance would be greatly appreciated! :)

    • @Bioinformagician
      @Bioinformagician  Рік тому +1

      @@zeeman5007 I have uploaded these files here:
      drive.google.com/file/d/1CJ9VSrUCoqPsUI1jrdm2nrLRawI04xZ1/view?usp=sharing

  • @merrinleong1388
    @merrinleong1388 Рік тому

    Error in as.cell_data_set(b.seu) :
    could not find function "as.cell_data_set"

    • @Bioinformagician
      @Bioinformagician  Рік тому +1

      Have you loaded SeuratWrappers library before running that command?

  • @moinicholas3828
    @moinicholas3828 Рік тому

    Hi, Following yout script I find that mitopercent is always 0, any ideas why this might be?

    • @moinicholas3828
      @moinicholas3828 Рік тому

      Is it that the sample size is small enough that there are actually 0 mitochondrial genes?

    • @moinicholas3828
      @moinicholas3828 Рік тому

      I also find that seu.obj.filtered@metadata has the same number of rows as the orignal, is this right?

  • @MsZhang666
    @MsZhang666 Рік тому

    The voice and the video do not match on 25:00-33:00 min.

  • @burakkahveci4123
    @burakkahveci4123 Рік тому

    Hi, thank you for this great video, but I have a problem. When I install monocle3, I get a error.
    ** byte-compile and prepare package for lazy loading
    Hata: package or namespace load failed for 'SummarizedExperiment' in library.dynam(lib, package, package.lib):
    DLL 'DelayedArray' not found: maybe not installed for this architecture?
    Ek olarak: Warning messages:
    1: package 'matrixStats' was built under R version 4.1.3
    2: package 'GenomicRanges' was built under R version 4.1.2
    3: package 'S4Vectors' was built under R version 4.1.3
    4: package 'GenomeInfoDb' was built under R version 4.1.2
    Çalıştırma durduruldu
    ERROR: lazy loading failed for package 'monocle3'
    * removing 'C:/Users/Burak/OneDrive - Dokuz Eylül Üniversitesi/Belgeler/R/win-library/4.1/monocle3'
    Warning message:
    In i.p(...) :
    installation of package ‘C:/Users/Burak/AppData/Local/Temp/RtmpC69TpC/file28646e1844d/monocle3_1.2.9.tar.gz’ had non-zero exit status

  • @marinafernandez6778
    @marinafernandez6778 Місяць тому +1

    Hi, Great video! thanks! I got this error any idea how to solve it? seu.obj$mitopercent

    • @xinyuqu4407
      @xinyuqu4407 26 днів тому

      I have the same issue. I use the AddMetaData function from Seurat to solve the problem.
      rownames(metadata)

    • @soburali5430
      @soburali5430 8 днів тому

      @@xinyuqu4407 It worked, Thank you so much!