<p>Heuristically, I agree with @Jonathan Moore's answer. However, you could try to take a more disciplined approach and model the distribution as a mixture of two distributions, and infer the parameters of the two distributions from that, which will allow you to make somewhat more informed decisions. A basic intro to mixture modeling in R is <a href="https://towardsdatascience.com/mixture-modelling-from-scratch-in-r-5ab7bfc83eef" rel="nofollow noreferrer">here</a>.</p>

<p>However, a worry of mine when I see data such as this is that you have some confounder that leads to that spike at CV ~ 1. I would actually plot the mean against the SD of the genes in question, and make sure that it is not due to observations of e.g. one transcript across samples when in most samples there are zero transcripts (see last section <a href="https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-is-the-coefficient-of-variation/" rel="nofollow noreferrer">here</a>). This would almost certainly be noise, and then what you would be enriching for is genes with very low expression, leading to a very small denominator for the CV calculation. If you are pseudocounting the expression (for example adding 1 to all values to avoid dividing by zero), I would try a few different values for the pseudocount to ensure that the value of the pseudocount is not significantly affecting your CV distribution that you show here. That would be a major warning sign of artifacts.</p>

<p>Therefore I would also suggest setting some sort of cutoff for minimal expression of genes in that distribution. Maybe an average of 1 transcript per observation (sample [bulk RNA-seq] or cell [scRNA-seq]) might be a reasonable cutoff for genes to consider.</p>

<p>I would do this data cleaning and filtering before making any decisions about this CV distribution. </p>

CC BY-SA 4.0
2019-11-09T18:07:25.843Z
thank you very much for the suggestion. i have already made a cutoff, but probably it was not enough
jonny
CC BY-SA 4.0
2019-11-09T05:56:11.460Z
2019-11-09T05:56:11.460Z
Maximilian Press
<p>There seems to be a dividing line around CoV=0.9.  Perhaps this is a good place to start for a cutoff.</p>

CC BY-SA 4.0
2019-11-08T16:44:25.320Z
2019-11-08T16:44:25.320Z
Jay Moore
<p>I'm looking for highly variable genes from a data set. I have calculated the coefficient of variation of the expressed genes of my dataset and inserted them in a histogram graph. Now I should select only the highly variable genes. Should I select genes with a coefficient of variation >1, or how?
thank you for your help,</p>

<p>regards</p>

<p><a href="https://i.sstatic.net/PECPs.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/PECPs.png" alt="enter image description here"></a></p>

<r>
HVG and variation coefficient
# HVG and variation coefficient

(Asked by: username_0 on 2019-11-08)

I'm looking for highly variable genes from a data set. I have calculated the coefficient of variation of the expressed genes of my dataset and inserted them in a histogram graph. Now I should select only the highly variable genes. Should I select genes with a coefficient of variation >1, or how?
thank you for your help,

regards

[![enter image description here](https://i.sstatic.net/PECPs.png)](https://i.sstatic.net/PECPs.png)

**Tags:** r

---

## 2 answers

### Answer by username_1 on 2019-11-09. Score: 1 | Accepted answer

Heuristically, I agree with @Jonathan Moore's answer. However, you could try to take a more disciplined approach and model the distribution as a mixture of two distributions, and infer the parameters of the two distributions from that, which will allow you to make somewhat more informed decisions. A basic intro to mixture modeling in R is [here](https://towardsdatascience.com/mixture-modelling-from-scratch-in-r-5ab7bfc83eef).

However, a worry of mine when I see data such as this is that you have some confounder that leads to that spike at CV ~ 1. I would actually plot the mean against the SD of the genes in question, and make sure that it is not due to observations of e.g. one transcript across samples when in most samples there are zero transcripts (see last section [here](https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-is-the-coefficient-of-variation/)). This would almost certainly be noise, and then what you would be enriching for is genes with very low expression, leading to a very small denominator for the CV calculation. If you are pseudocounting the expression (for example adding 1 to all values to avoid dividing by zero), I would try a few different values for the pseudocount to ensure that the value of the pseudocount is not significantly affecting your CV distribution that you show here. That would be a major warning sign of artifacts.

Therefore I would also suggest setting some sort of cutoff for minimal expression of genes in that distribution. Maybe an average of 1 transcript per observation (sample [bulk RNA-seq] or cell [scRNA-seq]) might be a reasonable cutoff for genes to consider.

I would do this data cleaning and filtering before making any decisions about this CV distribution.

> **Comments:**
> **username_0**: thank you very much for the suggestion. i have already made a cutoff, but probably it was not enough  

---

### Answer by username_2 on 2019-11-08. Score: 1

There seems to be a dividing line around CoV=0.9. Perhaps this is a good place to start for a cutoff.


---

