For an Indian PhD student like me (who is not familiar with Bio Info) this channel is a blessing . I will share it with my batchmates. Very nice youTube channel. Keep it up.
@@AbdullahSharabati Yes why not we all need help. I actually learn from her channel quite frequently. As Indians, we have developed a culture of Peer Learning.
Thank you for an excellent and pedagogical video on how to operate DESeq2! I had some initial issues, as I had to replace the row numbers with my gene symbols (which where in their own column). But once I had that figured out, for both files (counts and coldata), everything worked smoothly. If someone has the same issue, use this script (for colData; similar process for counts): DF
That's excellent magic indeed. You have done perfectly. Would you please create the next series according to the same data, how to analyze up and down-regulated gene comparison between treated and untreated groups by using box plot or something? It will be helpful as a newbie for me.
Now I'm working on projekt and writing application reading disfunction expression From genotypem by cell repair In C++ - This video is very professional and helping Me to understanding data set From IT. Thanks You
Great tutorial. One comment: reducing the size of the input is not done primarily because of reducing the computational burden, but to lessen the impact from multiple testing correction.
Your channel is extremely helpful to me and has been a real world saviour for gaining a fundamental understanding of my projects. I am working with gene knockout vs control conditions and will be using your pipeline to do the further analysis. Thanks again and keep up the amazing work!! 💛💛
Hi again! I tried to use this method but I'm facing a small error from my end. The Gene IDs are a separate column and hence my no. of rows are not equal to the no. of columns. How did you ensure that the Gene IDs don't get counted as a separate column?
Medical student who was struggling with this ! You're so kind and helpful, Thx!! And I'm curious about how to export the DESeq2 results into csv file or Excel file to check which gene is on the Upper/Lower right quadrant on the MA plot.
Thank you so much for your videos. I would like to learn the pipeline for RNA seq data analysis and I am wondering if there is any order to follow up on the videos. Thank you so much
I think the best way to introduce yourself to bioinformatics is to take an online course. There are a lot of starter courses offered on platforms like Udemy or Coursera. There are various online bioinformatics workshops available as well - www.ecseq.com/workshops/workshop_2022-03-A-Practical-Introduction-to-NGS-Data-Analysis-Online-Course.html Skills required to be an expert? I don't know either, I am figuring it out too. lol
Excellent videos, what does it means the following error when doing the DeSeq matrix? "In DESeqDataSet(se, design = design, ignoreRank) : some variables in design formula are characters, converting to factors" thank you very much
Your videos are wonderful! would you consider expanding on the use of contrast, perhaps a demonstration with a sample with 3 conditions or more exploring the results? Thank you for considering it and keep up the great work you are doing!
DESeq2 requires raw un-normalized read counts as it performs its own set of normalization steps. CPM, TPM, RPKM are all normalization methods that DESeq2 does not use.
Hey great stuff! I was wondering, what if you wanted to compare treated vs untreated but per cell line, would you have something in your design when creating your deseq object like (design = cell_line + condition) or is this extracted using contrasts or both?
Hi, thank you for your explanation!!! Very useful video :) I only have one question: once I got the results, how do I select the most differentially expressed genes? Let's say I wanna view only the top 40 genes.
You can sort your results by largest log fold changes and lowest adjusted p-values. The first 40 genes on your list are the ones which are most differentially expressed. NOTE: log fold changes can be positive or negative, if you sort log fold changes descending, you will only get top genes with largest positive fold changes. If you wish to get top differentially expressed genes irrespective of the direction, you can sort by taking absolute log fold change values.
Sorry if my question is wrong. You have done DEseq with raw gene counts. is not required to convert these id to gene name and normalize to FPKM or TPM for further analysis?
Hello, I really loved the walkthrough of DESeq2. Definitely going to follow your channel. I have a question. I have a counts matrix with following groups: control, treatment 1, treatment 2, treatment 3. First, I need to draw comparison between each treatment and control as reference and then compare between treatments. While setting the factor level, if I use control as the reference, then will it draw comparisons as follows: control vs treatment 1, control vs treatment 2 and control vs treatment 3? I believe I can use the contrast function for getting the comparison between treatments? Thank you!
@@manavgandhi2503 Yes, setting control as the reference will allow you to make comparisons between control and treatment levels. Only difference being, you will be able to see the order reversed i.e. "condition_treatment1_vs_control", which essentially gives you genes up/down regulated in treatment 1 compared to control.
Hello there, thank you so much for all amazing tutorials. Quick question: If I trying to analyze a counts normalized matrix (median of ratio DESeq2) Do I need to run DEGA? or log2 to that counts matrix?. Thank you so much for your help, I naive bioinformatician
Hello. I have an quick question in terms of normalization. Since Deseq2 itself has a normalization algorism, I do not need to do further normalization such as FPKM? Or, before performing Deseq2 run, should I first do normalization my read count data?
Hello Madam Thanks for you video, I am having 12 samples, in that 3 controls, 3 one trtmt, 3 another trtmt, 3 another trtmt,. So like this when there are 4 conditions, how to perform DESeq of those?
what needs to be done when there are duplicated gene names(with diff expression values) in the data?? Should we keep just one of the duplicated values or average out the values?
I enjoy your videos! I have one question about your design. It seems like there are two categorical variables - cellLine and dexamethasone in the colData table. Is there some reason you didn't include the cellLine variable in the design matrix?
You are right, I could have used both. However, I wanted to keep it simple for this tutorial and explain how the DEseq2 works for one design factor (i.e. dexamethasone) and so my goal for this analysis was to study the effect of treatment on gene expression. I could have used complex designs like ~ cellLine + dexamethasone, if I wanted to test for the effect of dexamethasone while controling for the effect of cellLine. But in this case, to keep it intuitive I chose to demonstrate with one factor. Hope that answers your question. Thank you! :)
@@Bioinformagician Thanks for the explanation. I was thinking about that. This is a tutorial video so it doesn't have to be more difficult. I think forming a design matrix is involved in linear models which is another topic to explain. Thanks!
@@jkim9931 That is true, I have tried to explain linear models in my previous video (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-0b24mpzM_5M.html). But yes, it can be a whole separate video in itself!
Informative video. Thanks I have a query regarding data analysis if you could please help me in that. I have a data set for tumors that I downloaded from cancer data portal so now I have gene expression data and clinical data for both tumors. I want to compare the gene expression of both tumors but I am no getting from where I should start, how can I compare these tumors by using DESeq2. Please guide me. Thank you
A couple of questions - 1. What data have you downloaded - RNA-Seq reads or quantified expression values? 2. What is the format of the data - are these raw counts or normalized expression values?
how would you do a differential expression between multiple cell lines? do them in pairs and then find the shared highly differentially expressed genes? or is there a way of doing it in one analysis?
Same issue!! I guess one may be able to do this comparisons in one go using the 'contrast' parameter of the result function? But I haven't checked it out...
Nice video! Really helped, but I have 3 sample groups or levels. I have done pairwise comparison between the levels, but I don't know how to get final results
Okay, but how will my final result be like? Like the table containing the degs, will it still contain the original number of samples? And what values would it contain? That is where I am confused
@@excelobiageli9446 So for each pair-wise comparison, you will have a data.frame with differentially expressed genes, log fold change values, p-values, min.pct and q-values. You will have 2 such data frames from each comparison. You can filter differentially expressed genes based on p-values and/or q-values and log fold changes, and intersect genes column from both data.frames. So what you end up with a vector of genes differentially expressed from both comparisons.
Congratulations for the video. Very helpful. I am having problems with the DESeq2 installation, R tells me that the path is not writeable. Any help? Thanks
@@Bioinformagician Of course, when I run "BiocManager::install("DESeq2")", in the end of the run the console show "There were 16 warnings (use warnings() to see them)" and hen I run "warnings()", R shows 1: In install.packages(...) : installation of package ‘png’ had non-zero exit status 2: In install.packages(...) : installation of package ‘curl’ had non-zero exit status 3: In install.packages(...) : installation of package ‘openssl’ had non-zero exit status 4: In install.packages(...) : installation of package ‘RCurl’ had non-zero exit status 5: In install.packages(...) : installation of package ‘RcppArmadillo’ had non-zero exit status 6: In install.packages(...) : installation of package ‘httr’ had non-zero exit status 7: In install.packages(...) : installation of package ‘GenomeInfoDb’ had non-zero exit status 8: In install.packages(...) : installation of package ‘Biostrings’ had non-zero exit status 9: In install.packages(...) : installation of package ‘GenomicRanges’ had non-zero exit status 10: In install.packages(...) : installation of package ‘KEGGREST’ had non-zero exit status 11: In install.packages(...) : installation of package ‘SummarizedExperiment’ had non-zero exit status 12: In install.packages(...) : installation of package ‘AnnotationDbi’ had non-zero exit status 13: In install.packages(...) : installation of package ‘annotate’ had non-zero exit status 14: In install.packages(...) : installation of package ‘genefilter’ had non-zero exit status 15: In install.packages(...) : installation of package ‘geneplotter’ had non-zero exit status 16: In install.packages(...) : installation of package ‘DESeq2’ had non-zero exit status I don't really know how to fix it. Thanks!!
Collapsing technical replicates could be done by collapseReplicates() function in DESeq2. I will surely plan on making a short video explaining it. Thanks :)
Thanks for your useful video! I am a beginner and I have some problems. When I upload my airway package (It is done well) I do not get to obtain the files.csv in my file folder. It looks like nothing happens. Is there another way to get them?
Hi, thank you for this amazing video. I am currently doing a gene expression analysis. Even though I have the same row and col names in my counts and coldata I am still getting the FALSE arguments for all(colnames(Counts) %in% rownames(Coldata)) can you please help with that?
when i use my data, i have error "more columns than column names". I check your file and see 2 files are same format. Why can you read file without error?
Hello, thank you so much for sharing the very helpful vdo. I want to know that when you load read counts data, the head of your read counts table shows only 8 columns of sample data excluding gene_id column, but when I do with my data, it still shows 9 columns (9 variables) including gene_id column. So, how can I do as you did? @Bioinformagician
The data was already merged and provided by the authors. However, if you are interested to learn how to merge datasets, I have previously covered it. Here's where you can find it - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-HrbeaEJqKcY.html
Congrats for your videos! They are really, really very useful and well explained. Just one question, maybe you can help me; Do you know how can I find, using R, the gene names or symbols from the ENSG numbers?
@@Bioinformagician Thank you for your prompt reply. You can bet I'll be tuned. Also, could you tell me if it is possible to get the gene names from the ASHG numbers?
@@Bioinformagician Ok, I am learning about using datasets, extracted from GEO, so maybe I am asking the wrong question. The dataset I am referring to is GSE55191. After extracting the data, the ID I have is based on ASHG. Sorry for not being more specific, but if you could take a look and answer me, I would be extremely grateful.
What can you do if the column names in the counts data does not match the rownames of the coldata? I had to create my own sampleinfo file, the names are identical and yet it says they do not match. I have even created an entirely new data frame using the for_matching_df
@@KiwiAteMonkey use the colnames() function on your counts data. Copy those one by one into an excel file, add other rows next to each group aka “treated vs u treated” save as .txt or .csv. Then read into R using read.delim(data, header = true, sep = “,”, row.names = 1, stringsAsFactors = FALSE) that should fix it. Then you can check rownames of sample info match the column name of the data using all(colnames(data) %in% rownames(sampleinfo))
Convert column col1 in for_matching_df into rownames, and check if all(rownames(for_matching_df) == colnames(counts)) is TRUE? If it is not true, then run this: counts
In general there are two things you will check: 1. Are all column names in counts present as rownames in colData? all(rownames(colData) %in% colnames(counts)) # should be TRUE 2. Are all rownames in colData in the same order as column names in counts? all(rownames(colData) == colnames(counts)) # should also be TRUE In case if 2. is FALSE, then column order can be changed by running this: counts
@@Bioinformagician Thanks for your tutorial. I have similar issue regarding matching column and row name. I’ve copied the command from you tutorial and got the following error message: all(colnames(counts_data) %in% rownames(colData)) Error in h(simpleError(msg, call)) : error in evaluating the argument 'x' in selecting a method for function '%in%': error in evaluating the argument 'x' in selecting a method for function 'colnames': object 'counts_data' not found Many thanks for your help!
That is very helpful. i have a question, i always have problem with my metadata, i tried to save is as csv, text and so on but it always give me an error message "Error in DESeqDataSetFromMatrix(countData = cts, colData = metaData, design = ~condition) : ncol(countData) == nrow(colData) is not TRUE" could you please help me sort it out? Thank you.
The error is telling you that the the number of columns in your countData is not equal to the number of rows in your colData. They should be equal. Check the columns and rows in your countData and colData to make sure you don't have any extra columns.
@@Bioinformagician i solved that, thank you. But one more problem, i always gets error saying that i have duplicate rows, any suggestions on how to resolved that, especially how to easily check all the rows from a big data.
I tried this protocol for a series matrix file that had log2 normalized value (all decimal values, downloaded from GEO). I received the error: _Error in DESeqDataSet(se, design = design, ignoreRank) :_ _some values in assay are not integers_ Does this mean this package cannot be used for normalized decimal values? If yes, Which package is more suitable? A link to any relevant protocol would be appreciated. Thanks
While creating dds, I am getting a error that "count matrix should be numeric, currently it had mode: Character. Can you please tell me how to resolve.
Your counts data matrix might have some values as character, you need to convert all values to numeric. You can do that by running: apply(counts_data, 2, as.numeric)
@@prachimishra5517 Is it possible for you to email me a screenshot of your counts matrix and the commands you are running on my email? You will find my email in the description of the video. Thanks!
@@Bioinformagician Hy myself Mithun I have done my undergraduate in bioinformatics and currently pursuing my postgraduate in bioinformatics in Reva University and I am interested to do my PhD in US so I think u can guide me can I have u r mail id or insta Id so I can contact you about this.
@@mithunrock5427 Hi Mithun, you can reach out to me with your questions on LinkedIn/email, you can find the details to contact me in the description of every video.
@@Bioinformagician Thank you so much. I prepared the metadata file accordingly. I am doing Bioinfo for the first time. Your channel came in handy. Thanks👍
Check out this article, it provides steps on how to import data from salmon: hbctraining.github.io/DGE_workshop_salmon/lessons/01_DGE_setup_and_overview.html