<p>DESeq2 works at the count table level, and doesn't need spike-in data. If you can convert your data into a feature / count matrix, then DESeq2 can be used.</p>
<p>However, I don't think it's appropriate to use DESeq2 for this purpose. DESeq2 assumes that the majority of the gene counts are <em>not</em> differentially expressed, and looks for support for outlier genes that have over-expression or under-expression in different conditions, above the normal biological variation observed in all samples.</p>
<p>To calculate this, DESeq2 needs the following:</p>
<ul>
<li>Raw count data (for estimating shot noise, i.e. the error associated with low-count data)</li>
<li>Multiple biological replicates (for estimating biological variation)</li>
<li>Most genes fit within a modeled distribution of normality (for detection of outliers)</li>
</ul>
<p>In other words:</p>
<ul>
<li>DESeq2 will not work well with pre-normalised data</li>
<li>DESeq2 will not work well without biological replicates</li>
<li>DESeq2 will not work well with a targeted panel</li>
</ul>
<p>You don't have any of these preconditions in your dataset: the numbers are prenormalised, without replicates, and it is a targeted panel.</p>
<p>I have tried in the past to use DESeq2 with a larger targeted panel (about 120 genes), but it doesn't really work: the p-values end up being really high (i.e. no statistical indication of significance), and the fold changes are low.</p>

CC BY-SA 4.0
2024-08-13T10:07:44.803Z
Thank you, so if not DESeq2, what would be the most appropriate approach?
dim
CC BY-SA 4.0
2024-08-13T11:30:53.580Z
I'm most familiar with DESeq2, so am best able to comment on that. I'd recommend that you ask the other question as a separate post, i.e. ask about the actual problem you have, rather than an intermediate solution that you think you need.
gringer
CC BY-SA 4.0
2024-08-12T23:28:29.757Z
2024-08-13T11:35:23.050Z
2024-08-13T11:35:23.050Z
gringer
<p>I am conducting antimicrobial resistance (AMR) surveillance in water samples using long-read metagenomics (Nanopore sequencing). After analyzing the data with KMA (a k-mer read alignment tool, <em>Clausen et al., 2018</em>), I obtained two sets of AMR gene tables corresponding to two conditions: &quot;before&quot; and &quot;after&quot; treatment (no replicates). Each gene in the tables is associated with a score that reflects the combined alignment quality and the number of reads mapped to each gene. I just want to understand how can these two conditions be normalized and &quot;compared&quot; with each other.</p>
<div class="s-table-container"><table class="s-table">
<thead>
<tr>
<th style="text-align: left;">BEFORE</th>
<th style="text-align: right;"></th>
<th style="text-align: left;">AFTER</th>
<th style="text-align: right;"></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">#Template</td>
<td style="text-align: right;">Score</td>
<td style="text-align: left;">#Template</td>
<td style="text-align: right;">Score</td>
</tr>
<tr>
<td style="text-align: left;">gene1</td>
<td style="text-align: right;">2607</td>
<td style="text-align: left;">gene1</td>
<td style="text-align: right;">2075</td>
</tr>
<tr>
<td style="text-align: left;">gene2</td>
<td style="text-align: right;">1982</td>
<td style="text-align: left;">gene2</td>
<td style="text-align: right;">3488</td>
</tr>
<tr>
<td style="text-align: left;">gene3</td>
<td style="text-align: right;">3035</td>
<td style="text-align: left;">gene3</td>
<td style="text-align: right;">1021</td>
</tr>
<tr>
<td style="text-align: left;">gene4</td>
<td style="text-align: right;">3380</td>
<td style="text-align: left;">gene4</td>
<td style="text-align: right;">1347</td>
</tr>
<tr>
<td style="text-align: left;">gene5</td>
<td style="text-align: right;">3819</td>
<td style="text-align: left;">gene5</td>
<td style="text-align: right;">6916</td>
</tr>
<tr>
<td style="text-align: left;">gene6</td>
<td style="text-align: right;">23676</td>
<td style="text-align: left;">gene6</td>
<td style="text-align: right;">2480</td>
</tr>
<tr>
<td style="text-align: left;">gene7</td>
<td style="text-align: right;">940</td>
<td style="text-align: left;">gene7</td>
<td style="text-align: right;">1860</td>
</tr>
<tr>
<td style="text-align: left;">gene8</td>
<td style="text-align: right;">3416</td>
<td style="text-align: left;">gene8</td>
<td style="text-align: right;">1130</td>
</tr>
<tr>
<td style="text-align: left;">gene9</td>
<td style="text-align: right;">1370</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene10</td>
<td style="text-align: right;">2264</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene11</td>
<td style="text-align: right;">527</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene12</td>
<td style="text-align: right;">1170</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene13</td>
<td style="text-align: right;">624</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene14</td>
<td style="text-align: right;">1142</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene15</td>
<td style="text-align: right;">2148</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene16</td>
<td style="text-align: right;">1441</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
<tr>
<td style="text-align: left;">gene17</td>
<td style="text-align: right;">2803</td>
<td style="text-align: left;"></td>
<td style="text-align: right;"></td>
</tr>
</tbody>
</table></div>
<p>However, I <strong>do not</strong> have spike-in mock community data for normalization.</p>
<p>My questions are:</p>
<ul>
<li>What are the recommended methods for normalizing and comparing these two gene tables (considering both the scores and read counts) in the absence of spike-in controls?</li>
<li>Can DESeq2 be appropriately applied in this context, despite its typical use in differential expression analysis? If so, how might it be adapted for DNA sequence data?</li>
</ul>
<p>Any guidance or suggestions would be greatly appreciated.</p>

<phylogenetics><deseq2><nanopore><metagenome><spike-in>
Normalization and Comparison of AMR Gene Tables from Long-Read Metagenomics Data without Spike-In Controls
# Normalization and Comparison of AMR Gene Tables from Long-Read Metagenomics Data without Spike-In Controls

(Asked by: username_0 on 2024-08-12)

I am conducting antimicrobial resistance (AMR) surveillance in water samples using long-read metagenomics (Nanopore sequencing). After analyzing the data with KMA (a k-mer read alignment tool, *Clausen et al., 2018*), I obtained two sets of AMR gene tables corresponding to two conditions: "before" and "after" treatment (no replicates). Each gene in the tables is associated with a score that reflects the combined alignment quality and the number of reads mapped to each gene. I just want to understand how can these two conditions be normalized and "compared" with each other.

| BEFORE |  | AFTER |  |
| --- | --- | --- | --- |
| #Template | Score | #Template | Score |
| gene1 | 2607 | gene1 | 2075 |
| gene2 | 1982 | gene2 | 3488 |
| gene3 | 3035 | gene3 | 1021 |
| gene4 | 3380 | gene4 | 1347 |
| gene5 | 3819 | gene5 | 6916 |
| gene6 | 23676 | gene6 | 2480 |
| gene7 | 940 | gene7 | 1860 |
| gene8 | 3416 | gene8 | 1130 |
| gene9 | 1370 |  |  |
| gene10 | 2264 |  |  |
| gene11 | 527 |  |  |
| gene12 | 1170 |  |  |
| gene13 | 624 |  |  |
| gene14 | 1142 |  |  |
| gene15 | 2148 |  |  |
| gene16 | 1441 |  |  |
| gene17 | 2803 |  |  |

However, I **do not** have spike-in mock community data for normalization.

My questions are:

* What are the recommended methods for normalizing and comparing these two gene tables (considering both the scores and read counts) in the absence of spike-in controls?
* Can DESeq2 be appropriately applied in this context, despite its typical use in differential expression analysis? If so, how might it be adapted for DNA sequence data?

Any guidance or suggestions would be greatly appreciated.

**Tags:** phylogenetics, deseq2, nanopore, metagenome, spike-in

---

## 1 answers

### Answer by username_1 on 2024-08-12. Score: 1

DESeq2 works at the count table level, and doesn't need spike-in data. If you can convert your data into a feature / count matrix, then DESeq2 can be used.

However, I don't think it's appropriate to use DESeq2 for this purpose. DESeq2 assumes that the majority of the gene counts are *not* differentially expressed, and looks for support for outlier genes that have over-expression or under-expression in different conditions, above the normal biological variation observed in all samples.

To calculate this, DESeq2 needs the following:

* Raw count data (for estimating shot noise, i.e. the error associated with low-count data)
* Multiple biological replicates (for estimating biological variation)
* Most genes fit within a modeled distribution of normality (for detection of outliers)

In other words:

* DESeq2 will not work well with pre-normalised data
* DESeq2 will not work well without biological replicates
* DESeq2 will not work well with a targeted panel

You don't have any of these preconditions in your dataset: the numbers are prenormalised, without replicates, and it is a targeted panel.

I have tried in the past to use DESeq2 with a larger targeted panel (about 120 genes), but it doesn't really work: the p-values end up being really high (i.e. no statistical indication of significance), and the fold changes are low.

> **Comments:**
> **username_0**: Thank you, so if not DESeq2, what would be the most appropriate approach?  
> **username_1**: I'm most familiar with DESeq2, so am best able to comment on that. I'd recommend that you ask the other question as a separate post, i.e. ask about the actual problem you have, rather than an intermediate solution that you think you need.  

---

