Soru:
DESeq2 tasarımını, kontrastını ve sonuçlarını anlama
bli
2017-05-19 19:40:14 UTC
view on stackexchange narkive permalink

2 genotip ("WT" ve "prg1") ve 3 tedavi ("RT", "HS30" ve "HS30RT120") içeren bir dizi yüksek verimli deneyim var ve her biri için 2 kopya var genotip x tedavi kombinasyonları.

Genler için okuma sayıları, aşağıdaki gibi yüklediğim bir dosyada özetlenmiştir:

  > counts_data <- read.table (" / dosyam / yolum ", başlık = DOĞRU, satır.names =" gen ") > sütun adları (counts_data) [1]" WT_RT_1 "" WT_HS30_1 "" WT_HS30RT120_1 "" prg1_RT_1 "[5]" prg1_HS_30_1 "prg1" prg1 "WT_RT_2" "WT_HS30_2" [9] "WT_HS30RT120_2" "prg1_RT_2" "prg1_HS30_2" "prg1_HS30RT120_2"  

Deneyleri şu şekilde tanımlıyorum:

  > col_data <- Veri Çerçevesi (geno = c (rep ("WT", times = 3), rep ("prg1", times = 3), rep ("WT", times = 3), rep ("prg1", times = 3)), tedavi = rep (c ("RT", "HS30", "HS30RT120"), times = 4), rep = c (rep ("1", times = 6), rep ("2", times = 6) ), Row.names 12 satır ve 3 sütun = colnames (counts_data)) > col_dataDataFrame tedavi temsilcisi <character> <character> <character>WT_RT_1 WT RT 1WT_HS30_1 WT HS30 1WT_HS30RT120_1 WT HS30RT120 1prg1_RT_1 prg1 RT 1prg1_HS30_1 HS30 1 prg1 Geno ... ... .... ..WT_HS30_2 WT HS30 2WT_HS30RT120_2 WT HS30RT120 2prg1_RT_2 prg1 RT 2prg1_HS30_2 prg1 HS30 2prg1_HS30RT120_2 prg1 HS30RT120 2   

  • tedavi belirli bir sabit genotip için değişiklik gösterdiğinde farklı şekilde ifade edilen genleri bulun
  • veya:

    • bul Belirli bir sabit tedavi için genotip değiştiğinde farklı şekilde ifade edilen genler

    bioconductor yardım forumunda sanırım biraz benzer bir durum buldum, ve aşağıdakileri okudum:

    ~ genotip + genotip: koşul tasarımını deneyin

    O zaman, referans düzeyi dahil her genotip düzeyi için bir koşul etkisi elde edersiniz .

    İkililerini 'kontrast' argümanının liste stilini kullanarak yorumlayabilirsiniz.

    Ancak bu, bu "liste stilinin nasıl uygulanacağını açıklamaz "zıtlık" argümanına. Ve yukarıdaki durum asimetrik görünüyor. Bununla, genotip ve koşulun birbirinin yerine geçebilir bir role sahip olmadığını kastediyorum.

    Bu nedenle, aşağıdaki daha simetrik formülü denedim:

      > dds <- DESeqDataSetFromMatrix (countData = counts_data, colData = col_data, design = ~ geno + Treat + geno: Treat) > dds <- DESeq (dds)  

    Şimdi, örneğin diferansiyel ifadeyi alabilir miyim "HS30" ile "RT" tedavisini "prg1" genotipinde referans olarak karşılaştırırken elde edilen sonuçlar ?

    Ve nasıl?

    Doğru anlarsam, yukarıdaki- bahsedilen "liste stili", resultsNames işlevi tarafından verilen adları kullanır. Benim durumumda şunlara sahibim:

      > resultsNames (dds) [1] "Kesişme" "geno_WT_vs_prg1" [3] "treat_HS30RT120_vs_HS30" "Treat_RT_vs_HS30" [5] "genoWT.treat30" "genoWT.treatRT"  

    "genoprg1.treatRT" ve "genoprg1.treatHS30" arasında bir karşıtlığa ihtiyacım olacağını tahmin ediyorum, ancak bunlar yukarıdaki sonuç adlarında değil.

    Kayboldum.

    bu daha benzer bir örnek (sanırım): https://support.bioconductor.org/p/63201/. Sonuç, Devon'un cevabına benzer - LRT'yi kullanın.
    Iki yanıtlar:
    #1
    +13
    Devon Ryan
    2017-05-19 19:51:01 UTC
    view on stackexchange narkive permalink

    En basit yöntem, bir wald testi değil, ilgi faktöründen yoksun, indirgenmiş bir modele sahip bir LRT kullanmaktır:

      dds = DESeq (dds, test = "LRT" indirgenmiş = ~ geno + geno: Tedavi)  

    Yukarıdakiler, olası bir etkileşimi hesaba katarken (yani, "tedavinin ana etkisi, ne olursa olsun, Tedavi türü ").

    Bir yana, bu muhtemelen, genotip-tedavi kombinasyonlarından oluşan gruplar oluşturmanın ve daha sonra bir ~ 0 + grup hayatınızı biraz kolaylaştırabilir. Ne olursa olsun aynı sonuçları (aşağı yukarı) alırsınız, ancak temel seviyenin HS30 tedavisi ve olacağını hatırlamaktansa bu terimlerle düşünmeniz muhtemelen daha kolay olacaktır. geno prg1 .

    Aşağıdakileri denedim: "dds <- DESeqDataSetFromMatrix (countData = counts_data, colData = col_data, design = ~ geno + treat + geno: treat)" ardından "dds = DESeq (dds, test =" LRT ", indirimli = ~ geno + geno: Treat) `ancak bu," nbinomLRT'de Hata (nesne, tam = dolu, azaltılmış = azaltılmış, betaPrior = betaPrior,: bir serbestlik derecesinden az, belki tam ve indirgenmiş modeller doğru sırada değil ") ile başarısız olur. , istediğim "tedavi türü ne olursa olsun" değil Belirli bir sabit tedavi veya belirli bir sabit genotip için sonuçlar istiyorum Belki de sorum net değildi.
    Neden hatayı ürettiğini görmek için model matrisinin üzerinden geçmem gerekiyor. Her neyse, edgeR yazarlarının tercih ettiği yoldan gitmeyi ve tedavi-genotip kombinasyonlarını ayrı gruplar halinde yapmayı öneriyorum. O zaman zıtlıklar daha belirgindir.
    "En basit yöntem, bir wald testi değil, bir LRT kullanmaktır" - nedenini açıklayabilir misiniz?
    Tedavinin birden fazla seviyesi olduğu için, bir wald testinde kontrastların uygun şekilde ele alınması gerekirken, bir LRT ile bir kişi aynı anda tüm seviyeleri atlayabilir.
    #2
    +8
    bli
    2017-05-22 17:05:18 UTC
    view on stackexchange narkive permalink

    DESeq2 güncel "vinyetinin" 3.3 bölümünde (Mayıs 2017 itibarıyla) "Etkileşim" başlığı altında açıklanan "birleştirme faktörleri" hilesi, istenen kontrastlara erişmenin bir yolu gibi görünüyor.

    colData 'yı oluştururken ve DESeqDataSetFromMatrix:

    Birleştirilmiş bir "geno" ve "işlem" faktörleri ekleyelim gelecek colData parametresine:

      > col_data $ geno_treat <- as.factor (yapıştır (col_data $ geno, col_data $ işlem, sep = "_")) > col_dataDataFrame, 12 sıra ve 4 sütunlu geno tedavi temsilcisi geno_treat <character> <character> <character> <factor>WT30 1 WT_HS30RT120prg1_RT_1 prg1 RT 1 prg1_RTprg1_HS30_1 prg1 HS30 1 prg1_HS30 ... ... ... ... ... WT_HS30_2 WT HS30 2 WT_HS30WT_HS30RT120_2 WT HS30RT120 2 WT_HS30RT120prg1_RT_2 prg1 RT 2 prg1_RTprg1_HS30_2 prg1 HS30 2 prg1_HS30prg1_HS30RT120_2 prg1 HS30RT120 2 prg1_HS30RT120  

    Artık diferansiyel ifadenin bu birleşik faktörlerle açıklanacağı bir tasarım kullanabiliriz:

      > dds <- DESeqDataSetFromMatrix (countData = counts_data, colData = col_data, design = ~ geno_treat)  

    Analizi yapıyoruz:

      > dds <- DESeq (dds)  

    Ardından, bu tür faktör kombinasyonları arasındaki belirli bir karşıtlığa ilişkin sonuçları sorgulayabiliriz. Örneğin, "HS30" tedavisinin "prg1" genotipindeki "RT" referans durumuna karşı etkisinin sonuçlarına sahip olmak için:

      res <- sonuçları (dds, kontrast = c (" geno_treat "," prg1_HS30 "," prg1_RT "))  


    Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
    Loading...