<p>You can use the following code to calculate the coefficient of variation:</p>

<pre class="lang-r prettyprint-override"><code># expr is your expression matrix.
SD &lt;- apply(expr, 1, sd)
CV &lt;- sqrt(exp(SD^2) - 1)
</code></pre>

<p>It might be implemented in some package but it is so brief that you can write it again yourself. Then you can filter out those that are below certain percentage of the distribution of CV (like 0.1)</p>

<pre class="lang-r prettyprint-override"><code>expr[CV &gt; quantile(CV, probs = 0.1), ]
</code></pre>

CC BY-SA 4.0
2019-06-20T07:12:44.867Z
2019-06-20T07:12:44.867Z
llrs
<p>Another way to reduce dimensionality of your dataset is via principal component analysis or PCA. It is implemented as <code>pcaMethods</code> R package, for instance.</p>

CC BY-SA 4.0
2021-01-13T10:21:38.430Z
2021-01-13T10:21:38.430Z
Sashko Lykhenko
<p>am experimenting preprocessed Affymetrix microarrays expression data matrix (Affymetrix probe-sets in rows (32830 probesets), and RNA samples in columns (735 samples)) for my downstream analysis. Here is how the data looks like:</p>

<pre><code>&gt; dim(eset_HTA20)
[1] 32830   735
## load assayData
HTA20_rma &lt;- load("HTA20_RMA.RData")

&gt; eset_HTA20[1:10,1:3]
             Tarca_001_P1A01 Tarca_003_P1A03 Tarca_004_P1A04
1_at                6.062215        6.125023        5.875502
10_at               3.796484        3.805305        3.450245
100_at              5.849338        6.191562        6.550525
1000_at             3.567779        3.452524        3.316134
10000_at            6.166815        5.678373        6.185059
100009613_at        4.443027        4.773199        4.393488
100009676_at        5.836522        6.143398        5.898364
10001_at            6.330018        5.601745        6.137984
10002_at            4.922339        4.711765        4.628124
10003_at            2.689344        2.771010        2.556756
</code></pre>

<p><strong>objective</strong>:</p>

<p>I am interested in to reduce the dimension of the dataset by tossing off low expressed in genes in the experiment. To do so, I need to quantify the variation of the gene that expressed. I checked the possible approach and using the coefficient of variation (cv) could be one of the approaches I could try. It is not intuitive for me how to quantify the variation of genes that expressed.</p>

<p>Can anyone point me out how to lay out this procedure on the above expression data? Is there any Bioconductor package to do this kind of task? any idea to make this happen? thanks</p>

<r><microarray><gene-expression><limma>
Any way to quantify the variation of genes that expressed in Affymetrix expression data?
# Any way to quantify the variation of genes that expressed in Affymetrix expression data?

(Asked by: username_0 on 2019-06-19)

am experimenting preprocessed Affymetrix microarrays expression data matrix (Affymetrix probe-sets in rows (32830 probesets), and RNA samples in columns (735 samples)) for my downstream analysis. Here is how the data looks like:
> dim(eset_HTA20)
[1] 32830   735
## load assayData
HTA20_rma <- load("HTA20_RMA.RData")

> eset_HTA20[1:10,1:3]
             Tarca_001_P1A01 Tarca_003_P1A03 Tarca_004_P1A04
1_at                6.062215        6.125023        5.875502
10_at               3.796484        3.805305        3.450245
100_at              5.849338        6.191562        6.550525
1000_at             3.567779        3.452524        3.316134
10000_at            6.166815        5.678373        6.185059
100009613_at        4.443027        4.773199        4.393488
100009676_at        5.836522        6.143398        5.898364
10001_at            6.330018        5.601745        6.137984
10002_at            4.922339        4.711765        4.628124
10003_at            2.689344        2.771010        2.556756

objective:
I am interested in to reduce the dimension of the dataset by tossing off low expressed in genes in the experiment. To do so, I need to quantify the variation of the gene that expressed. I checked the possible approach and using the coefficient of variation (cv) could be one of the approaches I could try. It is not intuitive for me how to quantify the variation of genes that expressed.
Can anyone point me out how to lay out this procedure on the above expression data? Is there any Bioconductor package to do this kind of task? any idea to make this happen? thanks

**Tags:** r, microarray, gene-expression, limma

---

## 2 answers

### Answer by username_1 on 2019-06-20. Score: 2 | Accepted answer

You can use the following code to calculate the coefficient of variation:
# expr is your expression matrix.
SD <- apply(expr, 1, sd)
CV <- sqrt(exp(SD^2) - 1)

It might be implemented in some package but it is so brief that you can write it again yourself. Then you can filter out those that are below certain percentage of the distribution of CV (like 0.1)
expr[CV > quantile(CV, probs = 0.1), ]


---

### Answer by username_2 on 2021-01-13. Score: 0

Another way to reduce dimensionality of your dataset is via principal component analysis or PCA. It is implemented as `pcaMethods` R package, for instance.


---

