如果存在于一组基因列表的大多数中,如何保留基因?
How to keep genes if present in the majority of a set of gene lists?
我有 9 个基因列表,每个列表的长度为 2000 个基因。如果存在于 6 个或更多列表中,我想保留基因。我不确定如何指定它,我一直在使用相交功能。
感谢任何帮助。
首先,使用一点辅助函数重新创建数据:
# gene generating function as a trigram of lower case letters
gene <- function(...) {
paste(sample(letters, 3), collapse = "")
}
# creating lists of genes
gene_lists <- lapply(seq(9), function(x) sapply(seq(2000), gene))
然后提取唯一元素:
# getting unique genes
unique_genes <- unique(unlist(gene_lists))
length(unique_genes)
[1] 10661
在这里我们可以检查合成数据是否有一些冗余:
# checking if there are enough redundant genes
stopifnot(length(unique_genes) < length(unlist(gene_lists)))
然后在计算出现次数的同时遍历唯一基因和列表:
# iterating over unique_genes
gene_occurence <- sapply(unique_genes, function(gene) {
# iterating over lists
# sum counts the total number of occurence
sum(sapply(gene_lists, function(x) { gene %in% x }))
})
length(gene_occurence)
[1] 10661
table(gene_occurence)
1 2 3 4 5 6
6017 3330 1050 231 31 2
然后获取共同基因:
limit <- 6
common_genes <- unique_genes[which(gene_occurence >= limit)]
common_genes
[1] "ngu" "het"
我有 9 个基因列表,每个列表的长度为 2000 个基因。如果存在于 6 个或更多列表中,我想保留基因。我不确定如何指定它,我一直在使用相交功能。
感谢任何帮助。
首先,使用一点辅助函数重新创建数据:
# gene generating function as a trigram of lower case letters
gene <- function(...) {
paste(sample(letters, 3), collapse = "")
}
# creating lists of genes
gene_lists <- lapply(seq(9), function(x) sapply(seq(2000), gene))
然后提取唯一元素:
# getting unique genes
unique_genes <- unique(unlist(gene_lists))
length(unique_genes)
[1] 10661
在这里我们可以检查合成数据是否有一些冗余:
# checking if there are enough redundant genes
stopifnot(length(unique_genes) < length(unlist(gene_lists)))
然后在计算出现次数的同时遍历唯一基因和列表:
# iterating over unique_genes
gene_occurence <- sapply(unique_genes, function(gene) {
# iterating over lists
# sum counts the total number of occurence
sum(sapply(gene_lists, function(x) { gene %in% x }))
})
length(gene_occurence)
[1] 10661
table(gene_occurence)
1 2 3 4 5 6
6017 3330 1050 231 31 2
然后获取共同基因:
limit <- 6
common_genes <- unique_genes[which(gene_occurence >= limit)]
common_genes
[1] "ngu" "het"