NathanSkene / EWCE

Expression Weighted Celltype Enrichment. See the package website for up-to-date instructions on usage.
https://nathanskene.github.io/EWCE/index.html
53 stars 25 forks source link

How do the various methods of filtering low-expressed genes now implemented affect the results? #59

Open NathanSkene opened 2 years ago

bschilder commented 2 years ago

So i don't think EWCE filters lowly expressed genes currently, only genes that are totally non-expressed in any cell-type.

drop_uninformative_genes performs differential gene expression across cell-types to determine which genes don't vary sufficiently across cell-types to be informative (and drops them).

In addition, we could add an argument to drop_uninformative_genes that removes genes that are lowly expressed in all cell-types (not just non-expressed). Though since this is at the aggregate level of cell-types, it might make more sense to implement this within the generate_celltype_data function instead.

bschilder commented 2 years ago

Alternatively, we could just come up with a combined metric for specificity + mean_exp. This way we wouldn't have to drop any genes, which seems to be the number 1 factor affecting cell-type enrichment when using different CTDs (at least across species).

bschilder commented 2 years ago

Alternatively alternatively, when creating the specificity matrix, for each celltype we could identify genes that have low expression and artificially set specificity to 0 in that celltype. Then when we compute specificity quantiles, the gene is retained in the vector but it is not used as a marker for that celltype.

bschilder commented 2 years ago

Just to recap for @ss8518, @NathanSkene and I just discussed this and decided that while the strategies I described would be worth exploring in the future, it's not a priority at the moment.

Instead, we'd like you to focus on testing the effect of running drop_uninformative_genes in different conditions:

I've just exposed the dge_method argument to users in the dev version of EWCE. You can install it with:

remotes::install_github("NathanSkene/EWCE")