首页 > 解决方案 > 如何获得仅在一种组织中表达的基因数量

问题描述

我想计算基因(行)的数量:

  1. 仅在一个组织(列)中表达(值 >0)
  2. 仅在两个组织(列)中表达(值 >0)
  3. 仅在 3 个组织(列)中表达(值 >0)
  4. 在超过 3 个组织(> 列)中表达(值 >0)

我有一张来自 RNA-Seq 数据的表格,我必须得到一个类似的表格:

有没有 R 或 python 的方法可以做到这一点?

我的 rnaseq 表

先感谢您

标签: r

解决方案


我相信以下会做你想要的。
首先是复制粘贴形式的数据集。

Tissue1 <- c(0, 0, 1, 45)
Tissue2 <- c(0, 2, 4, 4)
Tissue3 <- c(0, 0, 5, 4)
Tissue4 <- c(1, 4, 90, 0)

rnaseq <- data.frame(Tissue1, Tissue2, Tissue3, Tissue4)
row.names(rnaseq) <- paste0("Gene", 1:4)

现在是代码。
我首先计算每行有多少值Tissue*大于零。然后这些数字的频率与table。然后只需将此结果转换为data.frame.

res <- table(apply(rnaseq > 0, 1, sum))
res <- data.frame(number_of_tissue = paste(names(res), "tissues"),
                  nbr_expressed_genes = as.numeric(res))
row.names(res) <- NULL

res
#  number_of_tissue nbr_expressed_genes
#1        1 tissues                   1
#2        2 tissues                   1
#3        3 tissues                   1
#4        4 tissues                   1

推荐阅读