在python中如何计算FDR列并将其添加到文件中

2024-09-28 19:06:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下输入文件(输入.xls)公司名称:

Mouse   No_neigh_mouse  Human   No_neigh_hum    Intersection    TotalGeneTested
Gm20645 1   lnc3    2   1   8
Gm20645 1   lnc2    1   0   8
Gm20645 1   lnc1    2   1   8
Gm26549 2   lnc3    2   1   8
Gm26549 2   lnc2    1   1   8
Gm26549 2   lnc1    2   1   8

我想:

  1. 计算每行的超几何p值(成功完成)
  2. 然后计算p值校正的fdr(与BH相同)
  3. 添加调整后的p值作为最后一列。在

我预期的输出文件将有四列。一是“鼠标”的价值,二是“人”的价值,三是“超几何价值”,四是“调整后的价值”。我可以使用以下代码生成前3列:

^{pr2}$

在此之前,脚本运行良好,我得到以下输出文件(“超几何.xls“):

Mouse   Human   Hypergeom-pvalue    Adjusted-pvalue
Gm20645 lnc3    0.25
Gm20645 lnc2    1
Gm20645 lnc1    0.25
Gm26549 lnc3    0.464285714
Gm26549 lnc2    0.25
Gm26549 lnc1    0.464285714

然后,我的目标是重新打开输出文件作为输入,然后根据一个使用R:How to implement R's p.adjust in Python的用户建议的命令计算fdr

我的代码:

import rpy2.robjects as R
pvaluefile = pd.read_table("Hypergeom.xls", sep="\t")
pvalue_list = pvaluefile.ix[:,2].tolist()  #converts the value column series to a list
#Now, i try to apply the command from the SO link above
p_adjusted = R['p.adjust'](R.FloatVector(pvalue_list),method='BH')
for v in p_adjusted:
    print v

我在步骤p_adjusted=R[…]时得到一个错误。错误是: TypeError:“module”对象没有属性“getitem

因此,我有两个问题:

  1. 我不知道如何通过克服这一点来计算fdr 错误
  2. 如何将文件末尾的fdr列添加为第四列?在

Tags: 文件theto错误xlslist价值fdr