【问题标题】:SGoF package: order the adjusted pvalues based on the original pvaluesSGoF 包:根据原始 p 值对调整后的 p 值进行排序
【发布时间】:2023-03-06 21:32:01
【问题描述】:

我正在尝试对函数 SGoF (R package SGoF) 输出的调整后的 p 值做出生物学意义。

我的输入是来自 chi-square test on allele count 的 pvalues。因为我的实际数据集包含 100,000 个 SNP,所以我必须调整 p 值以进行多重比较。我选择了 Sequential Goodness of Fit 方法并应用于我的数据。

问题是函数 SGoF 以递增顺序输出 pvalue,因此尽管命名了向量,但我丢失了重要信息(SNP 的顺序)。

这是我在 10 个 SNP 上的假冒代码:

library("sgof")

# create SNP_ID
SNP_ID <- paste("SNP", rep(1:10, 1))
# create original pvalues
original_pvalues <- c(0.7547327676, 0.7759443024, 0.7892817386, 0.5900607320, 0.7085460882, 0.0004190683, 0.6020188578, 0.7898982175, 0.2780472452, 0.6160432682)
# give an ID to each pvalue
names(original_pvalues) <- SNP_ID

# adjust pvalues based on sequential goodness of fit (R package sgof)
sgof_res <- SGoF(original_pvalues, alpha = 0.05, gamma = 0.05)

# oh no, the adjusted pvalues are ordered by increasing values, see:
sgof_res$Adjusted.pvalues

# I would like a table like this:
corresponding_table <- cbind(SNP_ID, original_pvalues, sgof_res$Adjusted.pvalues)

目前对应的表格在生物学上没有意义。如何创建包含以下行的对应表:SNP_ID、原始 pvalue 和调整后的 pvalue?

【问题讨论】:

    标签: r bioinformatics


    【解决方案1】:

    查看SGoF函数的代码,我们会看到它正在对pvalues进行排序,并输出排序后的结果。但是,我们也可以看到它输出的 sgof_res$data 与排序的原始 pvalue 的顺序相同:

    all(sgof_res$data == sort(original_pvalues))
    # [1] TRUE
    

    所以我们可以在下面做得到预期的输出:

    data.frame(SNP_ID = names(sort(original_pvalues)),
               original_pvalues = sort(original_pvalues),
               Adjusted.pvalues = sgof_res$Adjusted.pvalues)
    
    #        SNP_ID original_pvalues Adjusted.pvalues
    # SNP 6   SNP 6     0.0004190683        0.7547328
    # SNP 9   SNP 9     0.2780472452        0.7759443
    # SNP 4   SNP 4     0.5900607320        0.7898982
    # SNP 7   SNP 7     0.6020188578        1.0000000
    # SNP 10 SNP 10     0.6160432682        1.0000000
    # SNP 5   SNP 5     0.7085460882        1.0000000
    # SNP 1   SNP 1     0.7547327676        1.0000000
    # SNP 2   SNP 2     0.7759443024        1.0000000
    # SNP 3   SNP 3     0.7892817386        1.0000000
    # SNP 8   SNP 8     0.7898982175        1.0000000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-04
      • 2014-09-30
      • 2021-05-27
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      相关资源
      最近更新 更多