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)
zhlédnutí: 15

Video

SLAM-seq conversion rates with ONE line of code using NEXTFLOW
zhlédnutí 38Před 21 dnem
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
zhlédnutí 75Před měsícem
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.
zhlédnutí 22Před měsícem
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
zhlédnutí 149Před 2 měsíci
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!
zhlédnutí 26Před 2 měsíci
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
zhlédnutí 46Před 3 měsíci
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!
zhlédnutí 119Před 3 měsíci
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
zhlédnutí 33Před 3 měsíci
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)
zhlédnutí 97Před 4 měsíci
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
zhlédnutí 31Před 4 měsíci
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)
zhlédnutí 309Před 6 měsíci
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)
zhlédnutí 87Před 6 měsíci
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
zhlédnutí 70Před 7 měsíci
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
zhlédnutí 20Před 8 měsíci
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
zhlédnutí 130Před 9 měsíci
How To Prepare For A Conference, Scientists Edition
The Only 4 Bioinformatics File Types You Really Need to Know!
zhlédnutí 127Před 11 měsíci
The Only 4 Bioinformatics File Types You Really Need to Know!
Are TOP Transcripts Key to Understanding Stem Cell Differentiation?
zhlédnutí 143Před 11 měsíci
Are TOP Transcripts Key to Understanding Stem Cell Differentiation?
How To Load Data in R with ChatGTP. TOP 3 TIPS!
zhlédnutí 35Před rokem
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!
zhlédnutí 55Před rokem
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!)
zhlédnutí 210Před rokem
Our Lab's First Paper on Coronavirus RNA (and how it gets eliminated!)
Unveiling the Secrets: Building Bioinformatics Pipelines with GTP-4
zhlédnutí 122Před rokem
Unveiling the Secrets: Building Bioinformatics Pipelines with GTP-4
Use the dry-run command to avoid the cluster queue (as much as possible)
zhlédnutí 34Před rokem
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!)
zhlédnutí 216Před rokem
Integrate Docker into your Snakemake pipeline (with one line of code!)
How to install snakemake in conda (without getting stuck solving environment!)
zhlédnutí 559Před rokem
How to install snakemake in conda (without getting stuck solving environment!)
Three most common Snakemake bugs (and how to fix them!)
zhlédnutí 61Před rokem
Three most common Snakemake bugs (and how to fix them!)
Use r markdown in your snakemake pipeline!
zhlédnutí 296Před rokem
Use r markdown in your snakemake pipeline!
Snakemake configfile
zhlédnutí 54Před rokem
Snakemake configfile
smakemake params
zhlédnutí 60Před rokem
smakemake params
Snakemake input functions
zhlédnutí 163Před rokem
Snakemake input functions

Komentáře

  • @ShaimaaGamalGahin
    @ShaimaaGamalGahin Před měsícem

    can you do a survival analysis with microarray data tutorial?

    • @MorganMarcos
      @MorganMarcos Před měsícem

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

  • @ivanmorgan958
    @ivanmorgan958 Před 2 měsíci

    love this

  • @ericramos5530
    @ericramos5530 Před 2 měsíci

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

    • @MorganMarcos
      @MorganMarcos Před 2 měsíci

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

  • @timothyongaba1962
    @timothyongaba1962 Před 2 měsíci

    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 Před 2 měsíci

      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 : czcams.com/video/R-z49Oc32qU/video.html

  • @delfinmorgan6387
    @delfinmorgan6387 Před 2 měsíci

    Saludos desde Salto.

  • @muungani
    @muungani Před 6 měsíci

    Hey Marcos, will this work with quarto as well?

    • @MorganMarcos
      @MorganMarcos Před 6 měsíci

      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 Před 6 měsíci

    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 Před 6 měsíci

      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 Před 6 měsíci

    Good stuff

  • @ivanmorgan958
    @ivanmorgan958 Před 6 měsíci

    👏👏👏

  • @MarcosFacha
    @MarcosFacha Před 9 měsíci

    Te llamas igual que yo hola

  • @Ali_Hassan12345
    @Ali_Hassan12345 Před 9 měsíci

    nice video, great explanation

    • @MorganMarcos
      @MorganMarcos Před 9 měsíci

      Thanks! I am glad you found the video helpful.

  • @gustavotoyota
    @gustavotoyota Před 11 měsíci

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

    • @MorganMarcos
      @MorganMarcos Před 11 měsíci

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

  • @Eunakria
    @Eunakria Před 11 měsíci

    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 Před 11 měsíci

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

  • @ivanmorgan958
    @ivanmorgan958 Před 11 měsíci

    Love this!

  • @ivanmorgan958
    @ivanmorgan958 Před 11 měsíci

    Love this 🎉

    • @MorganMarcos
      @MorganMarcos Před 11 měsíci

      Thanks! I am glad you enjoyed the video.

  • @arturocdb
    @arturocdb Před rokem

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

    • @MorganMarcos
      @MorganMarcos Před rokem

      Thanks! I am glad you found the tutorial useful.

  • @gradientO
    @gradientO Před rokem

    mads mikkelsen learning r

  • @andrealang3393
    @andrealang3393 Před rokem

    ❤️ "Promo SM"

    • @MorganMarcos
      @MorganMarcos Před rokem

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

  • @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 Před rokem

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

  • @mrillig
    @mrillig Před rokem

    Thanks for the mention!

    • @MorganMarcos
      @MorganMarcos Před rokem

      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.