<p>I prefer to apply a threshold when showing Volcano plots, displaying any points with extreme / impossible p-values (e.g. &lt; 10e-20) with a different symbol at the top of the graph.</p>
<p>However, a better approach is to avoid using p-values as quantitative / rankable results in plots; they're not meant to be used in that way. You can show results as a MA plot instead, plotting log2 fold change vs average expression:</p>
<p><a href="https://i.sstatic.net/pIE45.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/pIE45.jpg" alt="MA plot of log2 fold change vs mean normalised expression" /></a></p>
<p>It's a bit trickier to get expression values out of Seurat because they're not currently calculated in the FindMarkers results tables, so you'll need to manually subset the cells and calculate mean expression on a per-marker basis.</p>

CC BY-SA 4.0
2021-11-18T10:47:50.273Z
It was really helpful solution. I used the AverageExpression(object = pbmc_small) to get mean expression per cell type. then combed it with the Find Markers results using the Gene names then was able to perform MA plot. So those genes are visible under the plot now. - Thanks a lot
Austin George
CC BY-SA 4.0
2021-11-17T21:30:44.650Z
2021-11-17T21:30:44.650Z
gringer
<p>I have been working on FindMarkers function for identifying significant genes in the cluster. But some Significant genes have very low p values, so they are returned as 0 in the output.Any value less than the .machine$double.xmin limit on R(that is 1e-305). So this output cannot be used for further plots like Volcano plots for visualization.
Any solution to get p values for all the genes?</p>
<pre><code>cd4.markers &lt;- FindMarkers(sc.combined, ident.1 = &quot;CD4+ T cell&quot;, min.pct = 0.25)
</code></pre>
<p>Part of the cd4.markers output
<a href="https://i.sstatic.net/8Q9cr.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/8Q9cr.png" alt="Output sample for cd4.markers" /></a></p>

CC BY-SA 4.0
2021-11-17T10:55:46.437Z
you can add some constant to those columns
kcm
CC BY-SA 4.0
2021-11-17T13:37:44.213Z
Since other values are proportionally related, if we use a constant those genes forms a cluster.   -Thanks
Austin George
<r><scrnaseq><seurat>
FindMarkers from Seurat returns p values as 0 for highly significant genes
# FindMarkers from Seurat returns p values as 0 for highly significant genes

(Asked by: username_0 on 2021-11-17)

I have been working on FindMarkers function for identifying significant genes in the cluster. But some Significant genes have very low p values, so they are returned as 0 in the output.Any value less than the .machine$double.xmin limit on R(that is 1e-305). So this output cannot be used for further plots like Volcano plots for visualization.
Any solution to get p values for all the genes?
cd4.markers <- FindMarkers(sc.combined, ident.1 = "CD4+ T cell", min.pct = 0.25)

Part of the cd4.markers output

**Tags:** r, scrnaseq, seurat
> **Comments:**
> **username_1**: you can add some constant to those columns  
> **username_0**: Since other values are proportionally related, if we use a constant those genes forms a cluster.   -Thanks  

---

## 1 answers

### Answer by username_2 on 2021-11-17. Score: 1 | Accepted answer

I prefer to apply a threshold when showing Volcano plots, displaying any points with extreme / impossible p-values (e.g. < 10e-20) with a different symbol at the top of the graph.

However, a better approach is to avoid using p-values as quantitative / rankable results in plots; they're not meant to be used in that way. You can show results as a MA plot instead, plotting log2 fold change vs average expression:

[![MA plot of log2 fold change vs mean normalised expression](https://i.sstatic.net/pIE45.jpg)](https://i.sstatic.net/pIE45.jpg)

It's a bit trickier to get expression values out of Seurat because they're not currently calculated in the FindMarkers results tables, so you'll need to manually subset the cells and calculate mean expression on a per-marker basis.

> **Comments:**
> **username_0**: It was really helpful solution. I used the AverageExpression(object = pbmc_small) to get mean expression per cell type. then combed it with the Find Markers results using the Gene names then was able to perform MA plot. So those genes are visible under the plot now. - Thanks a lot  

---

