在主题之间和主题内部设计和批量校正
1
0
输入编辑模式
@ Demisa-22970
最后9天前见过
美国

你好,

我一直在搜索它的废气,如果我错过了一个解决方案,请道歉。

我正在尝试在Deseq2进行配对分析,意思是具有配对样本设计。

我有两个组的数据集(这是我的批),每个组有不均匀的受试者数量,每个受试者只能在一个组中有一个或两个样本(所以一个或两个条件)。注意,我的计数是用kallisto估计的。我的colData看起来像一个玩具样的例子:

样品批量调节主题1样品1 1 A S1 2样品2 1 B S1 3样品3 1 A S2 4样品4 1 B S2 5样品5 1 A S3 6样品6 1 B S3 7样品7 1 A S4 8 SAMPT8 1 B S4 9 SAMPRE9 1 A S5 10样品10 1b S5 11样品11 2 A S6 12样品12 2 B S6 13 13 Sample13 2 A S7 14 Sample14 2 B S7 15 Sample15 2 A S8

在该示例中,批量== 1具有每个受试者的5个受试者,而Batch == 2具有3个受试者,其中一个受试者只有一个条件。我简化了保持相对于条件的平衡配对样本,因此我过滤了样品15。

我的目标是在控制受试者效果的同时测试条件效果。

所以最初我认为我的模型应该是~批处理+主题+条件。为了查看条件效果(同时控制了批处理和主题效果),我将查看的resultName是'condition_B_vs_A'。这种模型设计导致了“模型矩阵不满秩”误差。

dds = DESeqDataSetFromMatrix(countData =计数。mat, colData = sample.summary。checkFullRank(modelMatrix)错误:模型矩阵不是满秩的,因此模型不能按规定拟合。设计公式中的一个或多个变量或交互项是其他变量的线性组合,必须去掉。

问题是批量和主题的线性。Vignette中线性的例子与我的理解没有完全匹配。

虽然我尝试了一些思想的思想,这里有一些谈话(如我的最后一个手段首先应用批量校正,转换为正整数,然后使用〜主题+条件运行Deseq2,这给了零点),我没有尝试过工作。

顺便说一句,如果我不做配对的设计并且只有〜批处理+条件,模型很好地工作。但我想利用每个受试者的条件的事实。

任何洞察力都会非常感谢!

rnaseqdata.batcheffect.配对DESeq2•262次观点
添加评论
0
输入编辑模式
@mikelove.
最后见到8小时前
美国

这部分:

每个受试者只能在其中一个组中,并且具有一个或两个样本(所以一个或两个条件)

在以前的帖子之前已经讨论过。在DESEQ2中,我们使用固定效果,因此对于对和条件,具有固定效果,但是利马的重复性方法更加灵活,因此您可以调查这一点。它将使用所有配对或未配对的样本和模型在主题相关中。

在DeseQ2中,我建议使用配对的样本,并且可以使用Vignette中的策略用于嵌套在组中。

0
输入编辑模式

谢谢michael为您的回复。

虽然我已经看到推荐利马具有重复性的讨论,但我想知道我是否可以用DESEQ2进行。

我的混乱正好在小插图的一部分“群体特定条件效应,个人嵌套在群体中”,因为我认为主题是有点分组两个不同的科目 - 但我现在已经意识到它究竟是什么所做的那么好。但我不是在寻找特定于群体的(或批量特定于我的案例)条件效果,而只是条件效应,同时调整组/批处理和对象差异。所以我在添加主题时尝试了以下模型:

~ batch + batch:subject。n +条件

但是,请让我走一步,在那里我在简单模型中获得了一个融合问题,我尝试了两件事没有解决问题的事情。首先将DESEQ函数分成步骤并增加MAXIT,第二个以过滤更低的表达基因。

#简化的对象构造模型:dds = DESeqDataSetFromMatrix(countData = counts.)mat, colData = sample.summary。平衡,设计= ~受试者+条件)dds <- DESeq(dds) *估计大小因子估计离散度基因离散度估计均值-离散度关系最终离散度估计拟合模型和检验21行不收敛于beta,标记在mcols(对象)$betaConv。使用更大的maxit参数与nbinomWaldTest* #所以我通过拆分为步骤和过滤更多的低表达基因重复:mat, colData = sample.summary。filter <- rowsum (nc >= 10) >= 4 dds <- dds[filter,] dds <- estimatedissions (dds) * estimated dispersion estimatedissions (dds) * mean-dispersion relationship final dispersion estimatedissions * dds <- nbinomWaldTest(dds,maxit=2000) *23行没有收敛在beta,标记在mcols(对象)$betaConv。在nbinomWaldTest* #中使用更大的maxit参数,但没有解决收敛问题,我尝试继续。添加组合变量dds ColData: dds$subject。N = ifelse(dds$batch == 1, factor(rep(rep(1:batch2.subjects,each=2),2)) dds$subject. N = ifelse(dds$batch == 1, factor(rep(rep(1:batch2.subjects,each=2),2));N = as.factor(dds$subject. N)样品批条件subject subjectn 1 1 sample1 S1 2 sample2 1 B S1 1 3 sample3 1 S2 2 4 sample4 1 B S2 2 5 1 sample5 S3 3 1 6 sample6 1 B S3 3 7 sample7 S4 4 8 sample8 1 B S4 4 9 sample9 1 S5 5 10 sample10 1 B S5 5 11 sample11 2 S6 1 12 sample12 2 B S6 1 13 sample13 2 S7 2 14 sample14 2 B S7 2 #饲料新colData DESeqDataSet和编辑设计:dds = DESeqDataSetFromMatrix(countData =计数。mat, colData = colData(dds), design = ~ batch + batch*subject.n + condition) *converting counts to integer mode Error in checkFullRank(modelMatrix) : the model matrix is not full rank, so the model cannot be fit as specified. One or more variables or interaction terms in the design formula are linear combinations of the others and must be removed.* # This is because I have unbalanced data in respect to batch: uneven subjects in the two batches. # So I removed the levels without samples, like for example phase2:subject.n3: m = model.matrix(~batch + batch:subject.n + condition, colData(dds)) all.zero <- apply(m, 2, function(x) all(x==0)) length(all.zero[all.zero == TRUE]) idx <- which(all.zero) m <- m[,-idx] # Feed clean model matrix to DESeq: dds = DESeq(dds, full = m) *using supplied model matrix using pre-existing size factors estimating dispersions gene-wise dispersion estimates mean-dispersion relationship final dispersion estimates fitting model and testing 121 rows did not converge in beta, labelled in mcols(object)$betaConv. Use larger maxit argument with nbinomWaldTest* resultsNames(dds) [1] "Intercept" "batch2" "conditionB" [4] "batch1.subject.n2" "batch2.subject.n2" "batch1.subject.n3" [7] "batch1.subject.n4" "batch1.subject.n5"

如何解决收敛问题?我甚至重复了这些单独的步骤,并添加了useOptim选项:

DDS < - 估计因素(DDS)DDS < - 估计分歧(DDS)DDS < -  Nbinomwaldtest(DDS,MAXIT = 2000,USEOPOPIM = T)

另外,为了让条件效应纠正批量和科目的差异,是res1或res2?

Res1 =结果(DDS,对比度= C(“条件”,“B”,“A”))Res2 =结果(DDS,Contrast = List(C(“Compile_B”,“Batch1.Subject.n2”,“Batch2”。projects.n2“,”batch1.s​​ubject.n3“,”batch1.s​​ubject.n4“,”batch1.s​​ubject.n5“,”batch2“)))
添加回复
0
输入编辑模式

跳到最上面,如果你不想组特定条件的效果,只需使用~sample + condition。你不能(也不能)控制比样品更高的分辨率。

0
输入编辑模式

如果通过组特定于组,我们的意思是特定于批量(在这种情况下),那么我肯定不会。我只需要纠正批次。

当你说“你没有(并且不能)控制比样本更高的分辨率”,你的意思是在Deseq2或一般?如果我的模型是〜sample +条件,那么我如何考虑样本1和样本2来自同一主题?或者该样本1和样本14来自不同的批次?

添加回复
0
输入编辑模式

对不起,上面你有主题。用〜主题+条件。您不需要另外控制任何嵌套主题的任何内容。

0
输入编辑模式

嗯,我也有这个想法,但不是科目之间的想法?所以对于部分之间,我不需要批量批量吗?当你说“在其中嵌套在哪个主题内”时,你的意思是什么?它现在嵌套了批处理:主题不是这个模型?

也是,仍然存在〜主题+条件(这是我以上开始的模型)有没有收敛的基因。

添加回复
1
输入编辑模式

主题在批处理范围内 - 也许与统计学家讨论这种情况。

RE:收敛,我建议如下:

保持< -  rowsums(计数(dds)> = 10)> = x DDS < -  DDS [保留]#然后DESEQ()

对于选择的X来避免你有很多零的基因,也许是7。

0
输入编辑模式

谢谢Michael,一切都很清楚。

实际上,通过提升来解决汇编x =我样本的2/3。非常感谢!

添加回复
0
输入编辑模式

如果我可能会问一件事,为什么虽然我达到了融合,但我发现没有参数?

dds = deseqdatasetfromtximport(计数,sample.summary.balanced,〜主题+条件)min.cutoff = round(nrow(sample.summary.balanced)/1.2)保持< -  rowsums(counts(dds)> = min.cutoff)>= min.Cutoff DDS < -  DDS [保持] DDS < -  DESQ(DDS)*估计分散尺寸因子估算分散性基因 - 方向色散估计平均分散关系最终分散估计拟合模型和测试* RES =结果(DDS,对比度=c(“条件”,“b”,“a”),padjustmethod =“bh”,alpha = 0.05)概述(RES)* 10735中的非零总读数调整P值<0.05 LFC> 0(UP):1,0.0093%LFC <0(下):0,0%异常值[1]:0,0%低计数[2]:0,0%(平均数量<145)*

我唯一的方法是我是我通过单独通过p值过滤。甚至没有fc。以下是log2fc,padj和p值的范围,以及带有p值和log2fc发行版的火山。

摘要(Res $ log2foldchange)min。第1曲。中位数意味着第3曲。最大限度。-0.654707 -0.110581 -0.004492 -0.007384 0.097655 0.668882 0.668882 0.668882摘要(Res $ Padj)min。第1曲。中位数意味着第3曲。最大限度。0.02358 0.77172 0.77172 0.79575 0.89926 0.99926 0.99990 0.999999摘要(Res $ Pvalue)min。第1曲。 Median Mean 3rd Qu. Max. 0.0000022 0.1736602 0.3860016 0.4302314 0.6745380 0.9999893

具有p值的火山图

添加回复
0
输入编辑模式

您的数据集没有大的更改。您无法拒绝这些基因的空。

您可能希望与统计学家讨论有关推动未来数据集的统计学家。

0
输入编辑模式

我完全同意。但是当我不进行配对分析时,我使用简单〜批量+条件模型,电源非常好。我通过FDR和4FC过滤并获得数百只DEG。我想知道为什么配对是如此贫穷。

添加回复
0
输入编辑模式

对不起,我错过了初始帖子中的那部分。

好吧,我猜你可以与100岁的重要意义,并通过增加对象条款的所有额外协变量,减少自由度。

我会注意到,随着患者基线的会计,这些LFC很小。所以我不会在告诉你变化时难以推动数据。

0
输入编辑模式

我理解你的观点并同意你的看法。

但是当我使用我的1/10个样本进行配对分析时,我会像P0.01和4FC阈值一样如1000°。虽然仍然没有足够的FDR。但我确实期望有更多的样本会增加力量,而不是相反的样本。对我来说感觉很奇怪。但也许你是对的,也许添加所有这些主题术语最小化任何效果。

你认为蕾丝会更合适吗?

我当然不想推动它的数据太难,只是想确保我这样做是正确的..

添加回复
0
输入编辑模式

在软件问题方面,我没有更多的建议。

0
输入编辑模式

您的评论非常感谢,谢谢

添加回复

登录在添加答案之前。

流量:358名用户在最后一小时访问过
访问 RSS
API.
统计

使用本网站即表示接受我们的用户协议和隐私政策

由我们提供动力版本2.3.6