如何获得仅在一个组织中表达的基因数量

时间:2018-08-11 11:50:52

标签: r

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

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

我有一个来自RNA-Seq数据的表格,我必须得到一个像这样的表格:

  • 组织数目nbr_expressed_genes

  • 1个组织-> 3000

  • 2个纸巾-> 500
  • 3个纸巾-> 700
  • 超过3-> 2500

是否有使用R或python的方法来做到这一点?

my rnaseq table

提前谢谢

1 个答案:

答案 0 :(得分:0)

我相信以下内容可以满足您的需求。
首先将数据集复制并粘贴。

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