Closed smk5g5 closed 2 years ago
Hi Saad,
I think that in your case the easiest way to compare the gene signatures using jaccard index would be:
sCrnaseq signatures:
sCrnaseq <- list(meta1_sC = table(rep(paste0("Gene_", letters[1:10]), 1:10)),
meta2_sC = table(rep(paste0("Gene_", letters[11:15]), 1:5)))
sCrnaseq
$meta1_sC
Gene_a Gene_b Gene_c Gene_d Gene_e Gene_f Gene_g Gene_h Gene_i Gene_j
1 2 3 4 5 6 7 8 9 10
$meta2_sC
Gene_k Gene_l Gene_m Gene_n Gene_o
1 2 3 4 5
sNrnaseq signatures:
sNrnaseq <- list(meta1_sN= table(rep(paste0("Gene_", letters[5:14]), 1:10)),
meta2_sN = table(rep(paste0("Gene_", letters[12:16]), 1:5)))
sNrnaseq
$meta1_sN
Gene_e Gene_f Gene_g Gene_h Gene_i Gene_j Gene_k Gene_l Gene_m Gene_n
1 2 3 4 5 6 7 8 9 10
$meta2_sN
Gene_l Gene_m Gene_n Gene_o Gene_p
1 2 3 4 5
Calculate Jaccard index:
jaccard_index <- sapply(sCrnaseq, function(x) {
sapply(sNrnaseq, function(y) {
length(intersect(names(x),names(y)))/length(union(names(x), names(y)))
})
})
jaccard_index
meta1_sC meta2_sC
meta1_sN 0.4285714 0.3636364
meta2_sN 0.0000000 0.6666667
Is there something wrong with :-
indprog_jaccard_vivovitro <- sapply(meta_sig_tumor_all, function(x) apply(nmf_programs_sig_ccle[,unlist(nmf_meta_programs_ccle)], 2, function(y) length(intersect(x,y))/length(union(x,y))))
whenever I run it I get
incorrect number of dimensions
errorIn my case I am comparing modules from my snRNA seq and scRNAseq datasets
My
nmf_meta_sig_snrna
andnmf_meta_sig_scrna
are list objects which have tables of genes for example :-