Marcos Morgan
Marcos Morgan
  • 36
  • 4 624
BASIC SLAM-seq analysis explained. From raw data to HALF-LIFE values in four simple steps.
Thanks for watching the channel! t.co/XgH1fe3TE9
In this video, I show you how to obtain mRNA half-life values from SLAM-seq data. We cover how to obtain SLAM-seq data, download the genomic sequences and annotation. We then obtain conversion values using the Slamdunk pipeline. After combining all conversion values from different samples, we use this data to fit an exponential decay model that will allow us to estimate the half-life of any mRNA.
Chapters:
00:00 Intro
00:14 Downloading SLAM-seq data
01:10 Downloading fastq genomic reference
01:38 Downloading the annotation data
02:54 Downloading Slumdunk
03:16 Slumdunk metadata
03:47 Running Slumdunk
04:05 Conversion rate results
04:38 Downloading data from Biomart
05:05 Merging conversion rate files
06:23 Fitting the exponential decay model
07:32 Estimating half-life values
08:40 Outro
Links
Link to SLAM-seq manuscript
www.nature.com/articles/nmeth.4435
Link to UCSC genome browser
genome.ucsc.edu/
Link to Slamdunk repo
github.com/t-neumann/slamdunk
Code
Line of code to run Slumdunk with the data obtained.
Code
library(dplyr)
library(tidyr)
library(purrr)
library(ggplot2)
library(biomaRt)
Code to get data from Biomart
ensembl = useEnsembl(biomart="ensembl")
listDatasets(ensembl)
mart= useDataset("mmusculus_gene_ensembl", useMart("ensembl"))
listAttributes(mart)
symbols_mRNA = getBM(attributes=c("mgi_symbol", "ensembl_transcript_id"), mart=mart)
write.table(symbols_mRNA, "../data/symbols_mRNA.csv", sep=",",
row.names = F, col.names = F, quote = F)
Code to obtain a combined table with conversion values
metadata = read.csv2("../data/sampleInfo_final.tsv",
header = T, sep = "\t", stringsAsFactors = F) %%
rename(sample = name) %% rowwise() %%
mutate(file = paste("../results/slamdunk/count/utrs/", sample, "_trimmed.fq_slamdunk_mapped_filtered_tcount.tsv", sep = "")) %%
select(file, sample, condition, time)
conversion = data.frame(file=character(), mRNA=character(),
conversion=numeric())
for(i in c(1:nrow(metadata))){
file = read.table(as.character(metadata[i,"file"]), stringsAsFactors = F,
skip = 1, header = T, sep="\t") %%
dplyr::select(Name, ConversionRate) %% rowwise() %%
rename(conversion = ConversionRate) %%
mutate(mRNA = unlist(strsplit(Name, "_utr3_"))[1]) %% rowwise() %%
mutate(mRNA = unlist(strsplit(mRNA, "\\."))[1]) %%
dplyr::select(-Name) %% unique() %%
mutate(file = as.character(metadata[i,"file"]))
conversion = bind_rows(conversion, file)
full_table = conversion %% left_join(metadata) %% dplyr::select(-file)
symbols_mRNA = read.csv2("../data/symbols_mRNA.csv",
sep=",", header = F, stringsAsFactors = F) %%
rename(symbol=V1, mRNA=V2)
full_table_symbols = full_table %% left_join(symbols_mRNA) %%
dplyr::select(-mRNA) %% unique() %% filter(!is.na(symbol)) %%
group_by(sample, condition, time, symbol) %%
mutate(conversion = max(conversion)) %% unique() %% ungroup()
normalized = full_table_symbols %% group_by(symbol, condition, time) %%
mutate(mean = mean(conversion)) %% ungroup() %%
group_by(symbol, condition) %% mutate(max = max(mean)) %% ungroup() %%
filter(max != 0) %% rowwise() %% mutate(nomalized = conversion/max) %%
dplyr::select(-max)
write.table(normalized, "../views/normalized.csv")
saveRDS(normalized, "../views/normalized.rds")
Code to fit the exponential decay model and estimate half-life values
normalized = readRDS("../views/normalized.rds")
nested_normalized = normalized %%
dplyr::select(condition, time, symbol, nomalized) %%
group_by(symbol, condition) %% nest()
test = function(df){
nls(nomalized ~ exp(-k * time), start = list(k = 0.01), data=df)}
test_possibly = possibly(test, NULL)
nested_normalized = nested_normalized %%
mutate(z = map(data, test_possibly))
hl_fun = function(z){
tryCatch({hl = log(2)/summary(z)$coefficients[1, 1]
return(hl)},
error=function(error_message){return(NA)})}
R_fun = function(z){
tryCatch({R = z$m$deviance()
return(R)},
error=function(error_message){return(NA)})}
nested_normalized_ = nested_normalized %%
rowwise() %% mutate(hl = hl_fun(z), R = R_fun(z)) %% dplyr::select(-data, -z)
มุมมอง: 15

วีดีโอ

SLAM-seq conversion rates with ONE line of code using NEXTFLOW
มุมมอง 3821 วันที่ผ่านมา
Thanks for watching my channel! t.co/XgH1fe3TE9 In this video, I show you how to use Nextflow to obtain conversion rates for SLAM-seq experiments. The pipeline dramatically simplifies the SLAM-seq analysis. First, I will give a brief conceptual intro to the SLAM-seq protocol. Specifically, I will explain the concept of conversion rates. We will cover how to set up the pipeline and where to down...
Use the ONLY AI tool integrated with R Studio! Three steps to integrate GitHub COPILOT and R STUDIO
มุมมอง 75หลายเดือนก่อน
In this video, I show you three simple steps to start using GitHub copilot in R Studio. GitHub Copilot is the BEST and ONLY fully integrated AI tool with R Studio. Enjoy!
Use GitHub copilot for microarray analysis: from raw data to differential expression.
มุมมอง 22หลายเดือนก่อน
In this video, I show you how to use GitHub copilot to do microarray analysis in R. We will cover from loading the raw data to generating the differential expression table. First, we get the AI generate the workflow and then we debug it.
Basic plots for microarray data analysis in R: Volcano plots and expression plots
มุมมอง 1492 หลายเดือนก่อน
In this video, I show you how to plot microarray data using R. I cover the basics on how to get the data from .CEL files, and then I show you how to generate volcano plots and expression plots. 0:00 Introduction 0:13 Data Preparation 3:05 Volcano plots 4:05 Expression plots 5:35 Outro library(tidyverse) library(limma) library(oligo) library(ggplot2) pd = read.AnnotatedDataFrame("pdata.txt") aff...
Microarrays multiple comparisons with R!
มุมมอง 262 หลายเดือนก่อน
In this video I show you how to do multiple comparisons in R for microarrays. We start with a simple example of one sample type with multiple treatments. Then we cover 2-factor designs, and we finish looking at batch effects.
Microarray quality control with r
มุมมอง 463 หลายเดือนก่อน
In this video, I show you how to generate three plots to check the Quality of your microarray data. First, we do a Principal Components Analysis of the different arrays, then a correlation heatmap, and finally, we look at the distribution of their intensities. Timeline: 00:00 Intro 00:10 Load data 01:02 PCA plot 02:05 Correlation Heatmap plot 03:07 Intensities distribution 04:22 Outro Here is t...
Microarray normalization, fitting and annotation using R!
มุมมอง 1193 หลายเดือนก่อน
In this video, I explain the basics of analyzing Affymetrix microarray datasets using R markdown and the limma package. The example is for a single-channel Affy microarray chip to analyze gene expression differences between two conditions. Here is the link to the annotation data: www.thermofisher.com/us/en/home/life-science/microarray-analysis/microarray-data-analysis/genechip-array-annotation-...
Next generation sequencing Illumina | Watch this BEFORE sending your libraries for sequencing
มุมมอง 333 หลายเดือนก่อน
I explain basic concepts of Illumina libraries that will help you communicate better with the sequencing facilities you are using. The concepts include barcodes, UMIs, Illumina sequencing adapters, flow cells, pooling, and paired-end sequencing.
How to Write Figure Legends: Easy Tips (for Research)
มุมมอง 974 หลายเดือนก่อน
I explain how I like to write figure legends for research manuscripts. The same can be applied to scientific posters and theses.
How To Write An Abstract: A Scientist's Guide
มุมมอง 314 หลายเดือนก่อน
A brief intro into how to write scientific abstracts for manuscripts, thesis, and conferences. Here is how I would write the abstract for the story in the video. Science consists of making experiments and sharing results with the public. However, making the experiments appears to be the most challenging aspect of the process. To see how difficult writing scientific findings is, we ask graduate ...
How to Write a Research Manuscript Discussion (Step-by-Step Guide)
มุมมอง 3096 หลายเดือนก่อน
Here, I cover the three main sections I like to include in every research manuscript discussion.
How To Write A Research Manuscript Introduction (Step-By-Step)
มุมมอง 876 หลายเดือนก่อน
This is how I like to write the introduction of research papers. Here you can check the the different chapters.
Basic Inkscape tutorial for science
มุมมอง 707 หลายเดือนก่อน
How to assemble final figures for scientific publications using Inskape. 0:00 Intro 1:30 Importing and groups 3:25 Layers 5:10 Transformations 6:24 Alignments 7:57 Fonts 9:24 Strokes 10:00 Edit paths 11:34 Colors 12:37 Outro
How To Write A Results Section For Science Journals
มุมมอง 208 หลายเดือนก่อน
In this educational video, we delve into the essential components of a scientific manuscript, focusing on the results section. Aimed at students and researchers, the tutorial provides step-by-step guidance on how to write a results section. Throughout the video, practical tips are offered on how to write the results in a manner that is both comprehensive and comprehensible. The advice is tailor...
How To Prepare For A Conference, Scientists Edition
มุมมอง 1309 หลายเดือนก่อน
How To Prepare For A Conference, Scientists Edition
The Only 4 Bioinformatics File Types You Really Need to Know!
มุมมอง 12711 หลายเดือนก่อน
The Only 4 Bioinformatics File Types You Really Need to Know!
Are TOP Transcripts Key to Understanding Stem Cell Differentiation?
มุมมอง 14311 หลายเดือนก่อน
Are TOP Transcripts Key to Understanding Stem Cell Differentiation?
How To Load Data in R with ChatGTP. TOP 3 TIPS!
มุมมอง 35ปีที่แล้ว
How To Load Data in R with ChatGTP. TOP 3 TIPS!
These 10 lines of ggplot2 code will shed hours of your final figures preparation!
มุมมอง 55ปีที่แล้ว
These 10 lines of ggplot2 code will shed hours of your final figures preparation!
Our Lab's First Paper on Coronavirus RNA (and how it gets eliminated!)
มุมมอง 210ปีที่แล้ว
Our Lab's First Paper on Coronavirus RNA (and how it gets eliminated!)
Unveiling the Secrets: Building Bioinformatics Pipelines with GTP-4
มุมมอง 122ปีที่แล้ว
Unveiling the Secrets: Building Bioinformatics Pipelines with GTP-4
Use the dry-run command to avoid the cluster queue (as much as possible)
มุมมอง 34ปีที่แล้ว
Use the dry-run command to avoid the cluster queue (as much as possible)
Integrate Docker into your Snakemake pipeline (with one line of code!)
มุมมอง 216ปีที่แล้ว
Integrate Docker into your Snakemake pipeline (with one line of code!)
How to install snakemake in conda (without getting stuck solving environment!)
มุมมอง 559ปีที่แล้ว
How to install snakemake in conda (without getting stuck solving environment!)
Three most common Snakemake bugs (and how to fix them!)
มุมมอง 61ปีที่แล้ว
Three most common Snakemake bugs (and how to fix them!)
Use r markdown in your snakemake pipeline!
มุมมอง 296ปีที่แล้ว
Use r markdown in your snakemake pipeline!
Snakemake configfile
มุมมอง 54ปีที่แล้ว
Snakemake configfile
smakemake params
มุมมอง 60ปีที่แล้ว
smakemake params
Snakemake input functions
มุมมอง 163ปีที่แล้ว
Snakemake input functions

ความคิดเห็น

  • @ShaimaaGamalGahin
    @ShaimaaGamalGahin หลายเดือนก่อน

    can you do a survival analysis with microarray data tutorial?

    • @MorganMarcos
      @MorganMarcos หลายเดือนก่อน

      Hi, Shaimaa. Thanks for the suggestion. Unfortunately, I am not very familiar with survival analysis.

  • @ivanmorgan958
    @ivanmorgan958 2 หลายเดือนก่อน

    love this

  • @ericramos5530
    @ericramos5530 2 หลายเดือนก่อน

    keep up the good work man, this content is great :D, and more because it's free. Thanks a lot.

    • @MorganMarcos
      @MorganMarcos 2 หลายเดือนก่อน

      Thanks Eric for the comment. I really appreciate it and I am glad you are finding these tutorials useful.

  • @timothyongaba1962
    @timothyongaba1962 2 หลายเดือนก่อน

    Hi Marco. I am totally new to snakemake and I am finding your tutorials resourceful. I am, however, struggling to keep up with the background music. Could it possibly be lowered in future tutorials. Otherwise, great work. Also, do you have something on the use of "expand" with wildcards?

    • @MorganMarcos
      @MorganMarcos 2 หลายเดือนก่อน

      Hi Timothy, I am glad you are finding the tutorials helpful. Thanks for the feedback on the music. I will remove it at least for most of the videos in the future. Check the following video for "expand" with wildcards : th-cam.com/video/R-z49Oc32qU/w-d-xo.html

  • @delfinmorgan6387
    @delfinmorgan6387 2 หลายเดือนก่อน

    Saludos desde Salto.

  • @muungani
    @muungani 6 หลายเดือนก่อน

    Hey Marcos, will this work with quarto as well?

    • @MorganMarcos
      @MorganMarcos 6 หลายเดือนก่อน

      Hi @muungani, I have never tried this with Quatro. Still, it is possible that it would work according to the following quote from the Quatro website: "Like R Markdown, Quarto uses knitr to execute R code and is therefore able to render most existing Rmd files without modification." Please let me know how it goes. Best, Marcos.

  • @loveforbioinfo
    @loveforbioinfo 6 หลายเดือนก่อน

    Hi. I was wondering how you're able to get snakemake on your Rstudio terminal? In my Rstudio I just see python code with >>> even though i loaded reticulate package. yours seems to have snakemake and then all output in green and yellow colors. How did you establish the python environment on R?

    • @MorganMarcos
      @MorganMarcos 6 หลายเดือนก่อน

      Hi, great question! The good news is that you do not need the reticulate package to open a terminal. You do not even need to be in a Python environment to run Snakemake. You can run Snakemake directly on your terminal. To open a terminal in RStudio, go to Code> Terminal > Open New Terminal at File Location. Let me know if you still need help.

  • @ivanmorgan958
    @ivanmorgan958 6 หลายเดือนก่อน

    Good stuff

  • @ivanmorgan958
    @ivanmorgan958 6 หลายเดือนก่อน

    👏👏👏

  • @MarcosFacha
    @MarcosFacha 9 หลายเดือนก่อน

    Te llamas igual que yo hola

    • @MorganMarcos
      @MorganMarcos 9 หลายเดือนก่อน

      Hola tocayo 👋

  • @Ali_Hassan12345
    @Ali_Hassan12345 9 หลายเดือนก่อน

    nice video, great explanation

    • @MorganMarcos
      @MorganMarcos 9 หลายเดือนก่อน

      Thanks! I am glad you found the video helpful.

  • @gustavotoyota
    @gustavotoyota 11 หลายเดือนก่อน

    Great video. I don't know what bioinformatics is but sounds cool

    • @MorganMarcos
      @MorganMarcos 11 หลายเดือนก่อน

      Thank you! I am glad you enjoyed watching the video.

  • @Eunakria
    @Eunakria 11 หลายเดือนก่อน

    as someone whose work has nothing to do with bioinformatics, I don't understand how I ended up at this video, but I am fascinated and transfixed

    • @MorganMarcos
      @MorganMarcos 11 หลายเดือนก่อน

      LOL. Maybe I should cut down a little bit on the video editing side.

  • @ivanmorgan958
    @ivanmorgan958 11 หลายเดือนก่อน

    Love this!

    • @MorganMarcos
      @MorganMarcos 11 หลายเดือนก่อน

      Thanks!

  • @ivanmorgan958
    @ivanmorgan958 ปีที่แล้ว

    Love this 🎉

    • @MorganMarcos
      @MorganMarcos ปีที่แล้ว

      Thanks! I am glad you enjoyed the video.

  • @arturocdb
    @arturocdb ปีที่แล้ว

    great video, very useful, thank you so much Marcos!

    • @MorganMarcos
      @MorganMarcos ปีที่แล้ว

      Thanks! I am glad you found the tutorial useful.

  • @gradientO
    @gradientO ปีที่แล้ว

    mads mikkelsen learning r

  • @andrealang3393
    @andrealang3393 ปีที่แล้ว

    ❤️ "Promo SM"

    • @MorganMarcos
      @MorganMarcos ปีที่แล้ว

      Thanks, Andrea. Smakemake is such a great tool, I believe it should be more widely used. Just trying to help with that here.

  • @rnacollaborativeseminarser5993
    @rnacollaborativeseminarser5993 ปีที่แล้ว

    Thanks for adding us to your list of great science-related channels! We host seminars every other Wednesday and are sponsored by the RNA Society.

    • @MorganMarcos
      @MorganMarcos ปีที่แล้ว

      Sure. I am glad your channel is doing great. The place to go for RNA biology in TH-cam.

  • @mrillig
    @mrillig ปีที่แล้ว

    Thanks for the mention!

    • @MorganMarcos
      @MorganMarcos ปีที่แล้ว

      Your channel is great. I wish more professors would share their experience as you do. I am trying to start a channel myself very much inspired by yours.