我正在尝试通过DESeq2使用rpy2包。总的来说,它工作得很好,但我很难使用访问器函数。具体来说,我有一个示例数据帧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)
但我不明白如何以及是否可以从normalizationFactors调用rpy2函数。
当我试着:
deseq2.normalizationFactors(ddsMat,bdm)
我得到了RRuntimeError:
Error in .local(object, ...) :
unused argument (c(0.401314864917528, 0.375673211527775, ...
我希望就如何做到这一点提出建议。
发布于 2018-01-20 09:22:18
在R中所发生的是
normalizationFactors( ddsMat ) <- data.matrix(norm_factor)
等于
ddsMat <- `normalizationFactors<-`(ddsMat, data.matrix(norm_factor))
如果这只是在R S4类实例中设置属性,则可以使用文档(https://rpy2.github.io/doc/v2.9.x/html/notebooks/s4class.html#class-attributes)中描述的策略,否则可以使用rpy2本身用于实现names(foo) <- bar
的策略(参见这里)。
https://stackoverflow.com/questions/48349677
复制相似问题