【发布时间】:2019-08-11 19:01:33
【问题描述】:
我需要一些帮助。
我有一个 21 行的矩阵和一个 以前未定义的列数(取决于输入)。 每个单元格都有一个数字,表示该行元素的次数 出现在同一列中。
structure(c(7L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 29L, 3L, 0L, 0L, 0L, 0L, 0L,
35L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 3L, 0L, 0L, 0L, 0L, 0L, 35L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 1L, 0L, 0L, 2L, 0L, 0L,
0L, 0L, 28L, 4L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 2L,
0L, 0L, 0L, 0L, 0L, 37L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 29L, 0L, 3L, 1L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 28L,
0L, 0L, 1L, 0L, 0L, 0L, 34L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 6L, 2L, 22L, 1L, 3L, 2L, 1L, 0L, 0L, 0L, 0L,
2L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 4L, 0L,
28L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 37L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 36L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 32L, 6L, 0L, 0L, 0L, 0L, 0L, 28L, 0L, 0L,
0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 2L, 5L, 0L,
0L, 0L, 0L, 2L, 0L, 31L, 1L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 1L, 4L, 0L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 30L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 39L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 1L, 4L, 0L, 5L, 3L,
0L, 2L, 0L, 4L, 0L, 0L, 0L, 1L, 0L, 12L, 4L, 0L, 0L, 0L, 4L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 35L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 4L, 0L, 0L, 0L, 0L, 6L,
21L, 0L, 0L, 0L, 0L, 0L, 1L, 3L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 38L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 36L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 31L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L,
0L, 0L, 1L, 0L, 1L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 28L,
2L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 0L, 0L, 0L, 0L, 0L, 0L,
2L, 0L, 29L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 31L, 2L, 0L, 0L, 0L, 0L,
0L, 1L, 2L, 0L, 0L, 0L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
28L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 1L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 36L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 1L, 0L, 0L, 34L,
1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L,
0L, 36L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 39L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 1L, 36L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 29L, 0L, 6L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 3L, 1L, 1L, 0L,
0L, 28L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 39L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 33L, 0L, 2L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L), .Dim = c(22L,
36L), .Dimnames = list(c("-", "A", "C", "D", "E", "F", "G", "H",
"I", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X",
"Y"), NULL))
这是来自Biostring包的MultipleAlignment对象,但我不关心对象的类型,我可以随时转换它。
我想从这个只有列的矩阵中提取一个矩阵
其中相同的元素(一行)代表列的 x%。
像value on cell / sum values in a column 这样的东西。
例如,在第 6 列,W 出现 29 次,其中该列中的值总和为 39,这意味着超过 74% 或 0.74(频率),所以如果我的截止值是 cutoff >= 0.7,它包含在最终矩阵。
有一种简单的方法可以做到这一点。
我更喜欢BioConductor 包(如Biostring)、tidyverse 甚至R base。
提前致谢。
【问题讨论】:
标签: r matrix bioconductor