Surviiff分析R中的两个基因

时间:2015-06-05 01:16:42

标签: r analysis survival-analysis

我试图分析从肿瘤患者身上取得的12个基因表达。我需要通过R语言的幸存函数进行对数秩检验。

首先,我根据中位数命令患者,第一组高于中位数,另一组低于中位数。由此我找到了单个基因的p值和Kaplan Meier曲线;

test <- survdiff(Surv(surv, stat) ~ genename > median(genename), data = my.Data)

现在我想结合两个基因并通过对数秩检验找到p值并绘制Kaplan Meier曲线。这两个基因必须相同,高于中位数且低于中位数。

我做到了,

gene1_gene2 <- survdiff(Surv(surv, stat) ~ (gene1 > median(gene1)) + (gene2> median(gene2)), data = my.Data)

                                                      N Observed Expected (O-E)^2/E (O-E)^2/V
gene1> median(gene1)=FALSE, gene2 > median(gene2)=FALSE 70        9     24.5     9.787     17.70
gene1> median(gene1)=FALSE, gene2> median(gene2)=TRUE  19        5      6.8     0.478      0.55
gene1> median(gene1)=TRUE, gene2> median(gene2)=FALSE  19        7      4.0     2.256      2.45
gene1> median(gene1)=TRUE, gene2> median(gene2)=TRUE   69       34     19.7    10.338     16.19

 Chisq= 23  on 3 degrees of freedom, p= 3.98e-05 

它给出了4个结果,但我需要两个结果;

gene1> median(gene1)=FALSE, gene2 > median(gene2)=FALSE
gene1> median(gene1)=TRUE, gene2> median(gene2)=TRUE

因为这两个给了我的愿望。首先是低于中位数的两个,第二个高于中位数。

我该怎么做?请帮我。我希望你能理解我的问题。

最佳

1 个答案:

答案 0 :(得分:0)

您应该考虑在生存分析中使用平均表达而不是中位表达,因为中位数会将您的队列分成两半。从生物学的角度来看,群组永远不会有50%的确切事件(死亡,转移或任何其他相关的感兴趣的参数)。

话虽如此,我强烈推荐您以下R代码:

survdiff(Surv(my.Dat[,TIME],my.Dat[,EVENTS])~strata(my.Dat[,PREDICTION]),data=my.Dat)

其中TIME是后续行动,EVENTS是患者状态(0:无事件,1:事件),PREDICTION是您定义表达组的列。请考虑以下代码来填写PREDICTION列:

my.Dat$PREDICTION=NA
my.Dat$PREDICTION[which(my.Dat$gene1>median(my.Dat$gene1) & my.Dat$gene2>median(my.Dat$gene2))]="UP"
my.Dat$PREDICTION[which(my.Dat$gene1<median(my.Dat$gene1) & my.Dat$gene2<median(my.Dat$gene2))]="DOWN"

这样您可以设置具有高gene1和gene2表达的 UP 患者,而相反(低gene1和gene2)设置为 DOWN 。由于其他组合(gene1 high / gene2 low和gene1 low / gene2 high)设置为NA,它们不会出现在生存指标中。

干杯。