Seqanswers Leaderboard Ad



No announcement yet.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Normalization to control conditions for DESeq

    Hi! I am still learning my RNA-Seq analysis and would greatly appreciate some help here.

    Our study is to investigate the pathways associated to interferon-gamma (IFNg)-induced control of infection with bacteriaX. There are four experimental groups (done as 3 biological replicates):

    1) Uninfected without IFNg
    2) Uninfected with IFNg
    3) BacteriaX infected without IFNg
    4) BacteriaX infected with IFNg

    I aligned the data to the hg19 reference genome using TopHat2 followed by HTSeq Count. My question is on the DESeq2 part: what we are really interested is the transcriptional changes associated to both infection and the presence of IFNg.

    Is it possible to normalize condition 3 to condition 1 and condition 4 to condition 2, before performing DESeq2?

    Or are there more approporiate ways to analyze the data?

    Any suggestions will be greatly appreciated! Many thanks in advance!

  • #2
    You don't need any sort of normlization outside of that already provided by DESeq2. Since you're new to things, please have a look through section 1.6 of the DESeq2 vignette. The example they use is essentially identical to yours (in your case, you would use "Infected" and "IFNg" instead of "condition" and "type"). Your design would then be "~Infected*IFNg" and you would be interested in the interaction term, which would tell you the additional effect seen with both the infection and IFNg.

    This method takes care of all of the normalization in a single step and is the statistically preferred method, so your reviewers will be happy

    Edit: See section 3.3 in the vignette too, they explicitly cover interaction terms there. That's exactly what you want.


    • #3
      Thank you very much dpryan! I will go through the vignette and see how it goes!

      Last edited by chervil157; 01-31-2016, 03:49 AM.


      • #4
        Followed the vignette and hopefully I have done it correctly:

        > mappedcount <- read.table("CountTable.txt", header=TRUE, row.names=1)
        > coldata <- read.table("Coldata.txt", header=TRUE, row.names=1)
        > Condition = coldata$Infection
        > Stimulation = coldata$Stimulation
        > cds <- DESeqDataSetFromMatrix(countData = mappedcount, colData = coldata, design = ~ Condition + Stimulation)
        > cdsMF <- DESeq(cds)
        > resMF <- results(cdsMF)
        > write.csv(resMF, file="DEG.txt")
        Last edited by chervil157; 02-01-2016, 02:53 AM.


        • #5
          I thought you were interested in the interaction between "Condition" and "Stimulation", in which case the design would need to be "~Condition + Stimulation + Condition:Stimulation" (or "~Condition*Stimulation", which is just the short-hand version). Please double check section 3.3 in the vignette.


          • #6
            Thanks again dpryan! You've been most helpful and really appreciated your comments!

            I went back to read the vignette and now noted the difference between "~Condition + Stimulation" and "~Condition*Stimulation", but when I ran DESeq2 again the result is identical...


            • #7
              Double check what "results()" is giving you the results for. If it's is indeed giving you the interaction term then you're good to go (you might manually specify the appropriate "name=" coefficient).


              • #8
                Think I must have done something wrong somehwere because this is what I got:

                > results()
                Error in "results" %in% mcols(mcols(object))$type :
                error in evaluating the argument 'table' in selecting a method for function '%in%': Error in mcols(mcols(object)) :
                error in evaluating the argument 'x' in selecting a method for function 'mcols': Error in mcols(object) :
                error in evaluating the argument 'x' in selecting a method for function 'mcols': Error: argument "object" is missing, with no default


                • #9
                  Err, don't literally type "results()", check it's manual and ensure that it's returning what it's expecting...likely by manually specifying the coefficient (i.e., the "name=something" parameter).


                  • #10
                    Oops! I see what you mean now! Feel so embarassed with my lack of understanding!

                    Yes just checked and it's all correct - thank you so much!!!!


                    Latest Articles


                    • seqadmin
                      The Impact of AI in Genomic Medicine
                      by seqadmin

                      Article Coming Soon......
                      Today, 02:07 PM
                    • seqadmin
                      Multiomics Techniques Advancing Disease Research
                      by seqadmin

                      New and advanced multiomics tools and technologies have opened new avenues of research and markedly enhanced various disciplines such as disease research and precision medicine1. The practice of merging diverse data from various ‘omes increasingly provides a more holistic understanding of biological systems. As Maddison Masaeli, Co-Founder and CEO at Deepcell, aptly noted, “You can't explain biology in its complex form with one modality.”

                      A major leap in the field has
                      02-08-2024, 06:33 AM





                    Topics Statistics Last Post
                    Started by seqadmin, 02-23-2024, 04:11 PM
                    0 responses
                    Last Post seqadmin  
                    Started by seqadmin, 02-21-2024, 08:52 AM
                    0 responses
                    Last Post seqadmin  
                    Started by seqadmin, 02-20-2024, 08:57 AM
                    0 responses
                    Last Post seqadmin  
                    Started by seqadmin, 02-14-2024, 09:19 AM
                    0 responses
                    Last Post seqadmin