【问题标题】:Frequencies of row subsets within a frequency table频率表中行子集的频率
【发布时间】:2016-04-11 15:19:47
【问题描述】:

我计算给定子集中突变数量的方法过于复杂,我想知道如何使用频率表来计算包含突变的每个样本子类型的百分比。数据类似如下:

Rownames gene1 gene2 ...gene40
Sample1  Mut   WT        WT
Sample2   WT   WT        WT
Sample3   Mut  WT        WT
Sample4   WT   MUT       MUT
...277

每个样本都分类在另一个框架中,样本顺序相同 $Subtype = "GS" "CIN" "MSI"

我想计算表中每个基因的子类型突变geneX的百分比。

提前致谢!

【问题讨论】:

    标签: r subset frequency


    【解决方案1】:
    ng <- 40
    ns <- 277
    
    set.seed(1)
    m <- matrix(sample(c('WT','MUT'), ng * ns, TRUE), ns,
                dimnames = list(paste0('Sample', seq(ns)), paste0('Gene', seq(ng))))
    
    data <- data.frame(m, stringsAsFactors = FALSE)
    subtype <- sample(c("GS","CIN","MSI"), ns, TRUE)
    

    如果你的数据看起来像

    str(data)
    'data.frame':   277 obs. of  40 variables:
      # $ Gene1 : chr  "WT" "WT" "MUT" "MUT" ...
      # $ Gene2 : chr  "WT" "WT" "MUT" "WT" ...
      # $ Gene3 : chr  "MUT" "WT" "WT" "WT" ...
      # $ Gene4 : chr  "MUT" "MUT" "MUT" "WT" ...
    

    那么你可以这样

    sp <- split(data, subtype)
    (l <- lapply(sp, function(x) colMeans(x == 'MUT')))
    
    ## 
    ## 
    ## $CIN
    ##     Gene1     Gene2     Gene3     Gene4     Gene5     Gene6     Gene7     Gene8     Gene9 
    ## 0.5268817 0.4516129 0.4838710 0.4408602 0.4516129 0.4301075 0.4731183 0.5376344 0.4408602 
    ##    Gene10    Gene11    Gene12    Gene13    Gene14    Gene15    Gene16    Gene17    Gene18 
    ## 0.4193548 0.4946237 0.5698925 0.4301075 0.4838710 0.5053763 0.3978495 0.5161290 0.5483871 
    ##    Gene19    Gene20    Gene21    Gene22    Gene23    Gene24    Gene25    Gene26    Gene27 
    ## 0.3978495 0.5698925 0.5698925 0.4516129 0.4946237 0.5268817 0.5591398 0.4731183 0.4838710 
    ##    Gene28    Gene29    Gene30    Gene31    Gene32    Gene33    Gene34    Gene35    Gene36 
    ## 0.4946237 0.5161290 0.5161290 0.4301075 0.5698925 0.5376344 0.5161290 0.4516129 0.4301075 
    ##    Gene37    Gene38    Gene39    Gene40 
    ## 0.4731183 0.6021505 0.5483871 0.4731183 
    ## 
    ## $GS
    ##     Gene1     Gene2     Gene3     Gene4     Gene5     Gene6     Gene7     Gene8     Gene9 
    ## 0.4742268 0.4536082 0.5567010 0.4845361 0.4742268 0.5051546 0.5463918 0.4020619 0.4845361 
    ##    Gene10    Gene11    Gene12    Gene13    Gene14    Gene15    Gene16    Gene17    Gene18 
    ## 0.4329897 0.4536082 0.4948454 0.4948454 0.4639175 0.3711340 0.5051546 0.5154639 0.5876289 
    ##    Gene19    Gene20    Gene21    Gene22    Gene23    Gene24    Gene25    Gene26    Gene27 
    ## 0.5670103 0.5051546 0.5567010 0.5670103 0.5876289 0.5051546 0.4536082 0.5567010 0.5051546 
    ##    Gene28    Gene29    Gene30    Gene31    Gene32    Gene33    Gene34    Gene35    Gene36 
    ## 0.4639175 0.4329897 0.5154639 0.4639175 0.4639175 0.5773196 0.5257732 0.4948454 0.4329897 
    ##    Gene37    Gene38    Gene39    Gene40 
    ## 0.5360825 0.5257732 0.4742268 0.5051546 
    ## 
    ## $MSI
    ##     Gene1     Gene2     Gene3     Gene4     Gene5     Gene6     Gene7     Gene8     Gene9 
    ## 0.4367816 0.4827586 0.5172414 0.4597701 0.4252874 0.5402299 0.4827586 0.5057471 0.5172414 
    ##    Gene10    Gene11    Gene12    Gene13    Gene14    Gene15    Gene16    Gene17    Gene18 
    ## 0.5057471 0.5057471 0.5862069 0.5747126 0.5172414 0.4252874 0.5057471 0.5057471 0.5517241 
    ##    Gene19    Gene20    Gene21    Gene22    Gene23    Gene24    Gene25    Gene26    Gene27 
    ## 0.5057471 0.5057471 0.5747126 0.4597701 0.5517241 0.4597701 0.6321839 0.4252874 0.4712644 
    ##    Gene28    Gene29    Gene30    Gene31    Gene32    Gene33    Gene34    Gene35    Gene36 
    ## 0.4942529 0.4022989 0.5172414 0.5172414 0.4827586 0.4252874 0.5632184 0.4712644 0.5172414 
    ##    Gene37    Gene38    Gene39    Gene40 
    ## 0.5172414 0.4712644 0.5977011 0.4482759 
    

    do.call('rbind', l)
    
    #         Gene1     Gene2     Gene3     Gene4     Gene5     Gene6     Gene7     Gene8
    # CIN 0.5268817 0.4516129 0.4838710 0.4408602 0.4516129 0.4301075 0.4731183 0.5376344
    # GS  0.4742268 0.4536082 0.5567010 0.4845361 0.4742268 0.5051546 0.5463918 0.4020619
    # MSI 0.4367816 0.4827586 0.5172414 0.4597701 0.4252874 0.5402299 0.4827586 0.5057471
    

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      相关资源
      最近更新 更多