在rpy2中使用DESeq2的accessor方法

Using accessor method of DESeq2 in rpy2

我正在尝试通过 rpy2 使用 DESeq2 包。总的来说,它工作正常,但我正在努力使用访问器功能。 具体来说,我有一个示例数据框 tcdf 并计算我通过

转换为 R 对象的数据框 access_tcdf
rtcdf = pandas2ri.py2ri_pandasdataframe(tcdf)
raccess_tcdf = pandas2ri.py2ri_pandasdataframe(access_tcdf)

我通过

创建了一个 DESeq_DataSet
ddsMat = deseq2.DESeqDataSetFromMatrix(countData = raccess_tcdf,
                              colData = rtcdf,
                              design = Formula("~ replicate + strain + time"))

关键是我如何在 rpy2 中提供预定义的归一化因子?我有一个每个基因归一化因子的数据框 rnorm_factor,在 R 中我通常会这样做:

normalizationFactors( ddsMat ) <- data.matrix(norm_factor)

但我不明白如何以及是否可以从 rpy2 调用 normalizationFactors 函数。

当我尝试时:

deseq2.normalizationFactors(ddsMat,bdm)

我收到 RRuntimeError:

 Error in .local(object, ...) : 
 unused argument (c(0.401314864917528, 0.375673211527775, ...

我将不胜感激有关如何执行此操作的建议。

R 中发生的事情是调用

normalizationFactors( ddsMat ) <- data.matrix(norm_factor)

等同于

ddsMat <- `normalizationFactors<-`(ddsMat, data.matrix(norm_factor))

如果这只是在 R S4 class 实例中设置属性,您可以使用文档 (https://rpy2.github.io/doc/v2.9.x/html/notebooks/s4class.html#class-attributes) otherwise the strategy used by rpy2 itself to implement names(foo) <- bar can be used (see here) 中描述的策略。