Python 通过rpy2运行deseq2
我正在尝试使用rpy2从Python运行DEseq2。 我应该如何通过设计矩阵? 我的脚本如下:Python 通过rpy2运行deseq2,python,r,rpy2,Python,R,Rpy2,我正在尝试使用rpy2从Python运行DEseq2。 我应该如何通过设计矩阵? 我的脚本如下: from numpy import * from numpy.random import multinomial, random from rpy2 import robjects import rpy2.robjects.numpy2ri robjects.numpy2ri.activate() from rpy2.robjects.packages import importr deseq =
from numpy import *
from numpy.random import multinomial, random
from rpy2 import robjects
import rpy2.robjects.numpy2ri
robjects.numpy2ri.activate()
from rpy2.robjects.packages import importr
deseq = importr('DESeq2')
# Generate some data. 1000 genes, 10 samples
n = 1000
probabilities = random(n)
probabilities /= sum(probabilities)
data = zeros((n,10), int)
for i in range(10):
data[:,i] = multinomial(1000000, probabilities)
# Make the data frame
d = {}
categories = ('1','2') * 5
d["key_1"] = robjects.IntVector(categories)
dataframe = robjects.DataFrame(d)
# Create the design matrix, and run DESeqDataSetFromMatrix
design = "~ key_1" # <--- I guess this is wrong
dds = deseq.DESeqDataSetFromMatrix(countData=data, colData=dataframe,design=design)
从numpy导入*
从numpy.random导入多项式,随机
从rpy2导入对象
导入rpy2.robjects.numpy2ri
robjects.numpy2ri.activate()
从rpy2.robjects.packages导入导入
deseq=importr('DESeq2')
#生成一些数据。1000个基因,10个样本
n=1000
概率=随机(n)
概率/=总和(概率)
数据=零((n,10),整数)
对于范围(10)内的i:
数据[:,i]=多项式(1000000,概率)
#制作数据帧
d={}
类别=('1','2')*5
d[“key_1”]=robjects.IntVector(类别)
dataframe=robjects.dataframe(d)
#创建设计矩阵,并运行deseqdatasetfrommary
design=“~key_1”#啊!你就快到了:
# Create the design matrix, and run DESeqDataSetFromMatrix
design = "~ key_1" # <--- I guess this is wrong
coldData=dataf
什么是dataf
?您发布的代码中没有定义它。对不起,应该是dataframe
。代码现在已更正。
# Create the design matrix, and run DESeqDataSetFromMatrix
design = "~ key_1" # <--- I guess this is wrong
from rpy2.robjects import Formula
design = Formula("~ key_1")