<p>Yes, this is a common situation. Not just for mitochondrial genes, but for any gene that may be an outlier (e.g. the B-cell receptor gene in a contaminant/unexpected B-cell population). The way to get around this is to not use TPM for differential expression analysis.</p>
<p>DESeq2 by default uses a quantile-based normalisation method for bulk differential expression calculations, which works well when the majority of genes are not differentially expressed. When this assumption is broken (e.g. for a targeted panel), a control gene list can be supplied, or custom size factors can be applied to each sample.</p>
<p>More information about using DESeq2 for differential expression can be found in the DESeq2 manual:</p>
<p><a href="https://www.bioconductor.org/packages/devel/bioc/vignettes/DESeq2/inst/doc/DESeq2.html" rel="nofollow noreferrer">https://www.bioconductor.org/packages/devel/bioc/vignettes/DESeq2/inst/doc/DESeq2.html</a></p>
<p>For comparing expression from different genes, I normalise variance-stabilised data using the longest annotated gene length from transcripts.</p>
<p>See <a href="https://bioinformatics.stackexchange.com/a/15218/73">this answer</a> and <a href="https://doi.org/10.1084/jem.20160470" rel="nofollow noreferrer">this paper</a> for more details.</p>

CC BY-SA 4.0
2023-11-16T07:25:47.173Z
Hi, thanks very much for your response. I should have explained this at the outset, but my aim was to get some idea of within-samples expression levels, hence why going for TPMs as I know that counts normalised by DESeq2, edgeR and the like do not correct for gene length and are inappropriate for within-samples comparisons.
nick_b55
CC BY-SA 4.0
2023-11-16T11:06:24.177Z
Added a little more detail about how I do it, using the VST from DESeq2.
gringer
CC BY-SA 4.0
2023-11-16T15:11:55.810Z
Thank you, appreciate the help I will take a look at those links
nick_b55
CC BY-SA 4.0
2023-11-16T04:39:19.087Z
2023-11-16T11:05:40.913Z
2023-11-16T11:05:40.913Z
gringer
<p><em>This question was also asked on <a href="https://www.biostars.org/p/9580264/" rel="nofollow noreferrer">Biostars</a></em></p>
<p>I was wondering if any of you have encountered a situation for bulk RNA-Seq where, possibly due to low sample quality or presence of dead cells, mitochondrial genes are expressed to a very large degree relative to other genes, thus skewing TPM values of all nuclear genes (by effectively scaling them down).</p>
<p>In such a situation, what could I potentially do to alleviate this beyond preparing fresh samples? Could I, for example, exclude 'MT-' genes from samples and then recalculate TPM based on this filtered set of genes?</p>
<p>My aim was to get some idea of within-samples expression levels, hence why going for TPMs as I know that counts normalised by DESeq2, edgeR and the like do not correct for gene length and are inappropriate for within-samples comparisons.</p>
<p>Many thanks in advance for any insight</p>

CC BY-SA 4.0
2023-11-15T09:20:39.523Z
Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.
Community
<rna-seq><tpm>
Mitochondrial genes - TPM calculation bulk RNA-Seq
# Mitochondrial genes - TPM calculation bulk RNA-Seq

(Asked by: username_0 on 2023-11-15)

*This question was also asked on [Biostars](https://www.biostars.org/p/9580264/)*

I was wondering if any of you have encountered a situation for bulk RNA-Seq where, possibly due to low sample quality or presence of dead cells, mitochondrial genes are expressed to a very large degree relative to other genes, thus skewing TPM values of all nuclear genes (by effectively scaling them down).

In such a situation, what could I potentially do to alleviate this beyond preparing fresh samples? Could I, for example, exclude 'MT-' genes from samples and then recalculate TPM based on this filtered set of genes?

My aim was to get some idea of within-samples expression levels, hence why going for TPMs as I know that counts normalised by DESeq2, edgeR and the like do not correct for gene length and are inappropriate for within-samples comparisons.

Many thanks in advance for any insight

**Tags:** rna-seq, tpm
> **Comments:**
> **username_1**: Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.  

---

## 1 answers

### Answer by username_2 on 2023-11-16. Score: 1

Yes, this is a common situation. Not just for mitochondrial genes, but for any gene that may be an outlier (e.g. the B-cell receptor gene in a contaminant/unexpected B-cell population). The way to get around this is to not use TPM for differential expression analysis.

DESeq2 by default uses a quantile-based normalisation method for bulk differential expression calculations, which works well when the majority of genes are not differentially expressed. When this assumption is broken (e.g. for a targeted panel), a control gene list can be supplied, or custom size factors can be applied to each sample.

More information about using DESeq2 for differential expression can be found in the DESeq2 manual:

<https://www.bioconductor.org/packages/devel/bioc/vignettes/DESeq2/inst/doc/DESeq2.html>

For comparing expression from different genes, I normalise variance-stabilised data using the longest annotated gene length from transcripts.

See [this answer](https://bioinformatics.stackexchange.com/a/15218/73) and [this paper](https://doi.org/10.1084/jem.20160470) for more details.

> **Comments:**
> **username_0**: Hi, thanks very much for your response. I should have explained this at the outset, but my aim was to get some idea of within-samples expression levels, hence why going for TPMs as I know that counts normalised by DESeq2, edgeR and the like do not correct for gene length and are inappropriate for within-samples comparisons.  
> **username_2**: Added a little more detail about how I do it, using the VST from DESeq2.  
> **username_0**: Thank you, appreciate the help I will take a look at those links  

---

