<p>Yes, you end up placing filters where things become inconsistent or similar to background. In the example, which appears to be from the Seurat tutorial, there's a downward plunge in <code>nGenes vs. nUMI</code> at around 200 genes and few believable cells with more than 2000-2500 genes, so the tutorials sets filters around there. The 0.05 mitochondrial contamination is a more arbitrary round number and is less supported by the plots (one would use more like 0.06 or 0.07 if one based this solely on the plots).</p>

CC BY-SA 4.0
2018-08-16T14:49:13.207Z
Thank you@Devon Ryan If my geneplot result shows below/Users/huali/Desktop/Screen Shot 2018-08-15 at 7.35.30 PM.png.                 How should I setting my threshold ?
hua
CC BY-SA 4.0
2018-08-16T15:03:02.323Z
What do you think would be good decent values given those plots? I don't want you to just blindly follow what I say :)
Devon Ryan
CC BY-SA 4.0
2018-08-16T15:13:06.593Z
I just don't know how people set their thresholds, and want to figure out how they can do to do further analysis base on their QC. So I show the data that I got. Want to find something that can be dig out.
hua
CC BY-SA 4.0
2018-08-16T19:54:05.590Z
In your case `percent.mito` should be less than 0.1 and `nGenes` should be at least 1000.
Devon Ryan
CC BY-SA 4.0
2019-08-07T19:00:42.533Z
From the graphs, what would be a good upper limit cut-off for nFeatures per UMI?
Matt Thornton
CC BY-SA 4.0
2018-08-16T06:52:38.453Z
2018-08-16T06:52:38.453Z
Devon Ryan
<p>I was wondering that the threshold that we set after doing QC in Seurat. there is an example</p>

<pre><code># GenePlot is typically used to visualize gene-gene relationships, but can be used for anything 
# calculated by the object, i.e. columns in object@meta.data, PC scores etc.
# Since there is a rare subset of cells with an outlier level of high mitochondrial percentage
# and also low UMI content, we filter these as well
par(mfrow = c(1, 2))
GenePlot(object = pbmc, gene1 = "nUMI", gene2 = "percent.mito")
GenePlot(object = pbmc, gene1 = "nUMI", gene2 = "nGene")`
</code></pre>

<p><a href="https://i.sstatic.net/BCbyf.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/BCbyf.png" alt="QC ANALYSIS"></a></p>

<p>Then its filter cell command is under:</p>

<pre><code># We filter out cells that have unique gene counts over 2,500 or less than 200
# Note that low.thresholds and high.thresholds are used to define a 'gate'
# -Inf and Inf should be used if you don't want a lower or upper threshold.
pbmc &lt;- FilterCells(object = pbmc, subset.names = c("nGene", "percent.mito"), low.thresholds = c(200, -Inf), high.thresholds = c(2500, 0.05))` 
</code></pre>

<p>So I want to know whether the threshold setting is depending on the picture I show?</p>

<p>And the below is the Geneplot I have got base on my data. How can I set my thresholds?
<a href="https://i.sstatic.net/IJvQv.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/IJvQv.png" alt="my old geneplot"></a></p>

CC BY-SA 4.0
2023-04-21T20:46:10.553Z
Why have an upper bound on ngenes? Doesn't it indicate a cell is healthy if it is is able to express many genes?
jjeang
<scrnaseq>
how to filter out cell after doing QC
# how to filter out cell after doing QC

(Asked by: username_0 on 2018-08-16)

I was wondering that the threshold that we set after doing QC in Seurat. there is an example
# GenePlot is typically used to visualize gene-gene relationships, but can be used for anything 
# calculated by the object, i.e. columns in object@meta.data, PC scores etc.
# Since there is a rare subset of cells with an outlier level of high mitochondrial percentage
# and also low UMI content, we filter these as well
par(mfrow = c(1, 2))
GenePlot(object = pbmc, gene1 = "nUMI", gene2 = "percent.mito")
GenePlot(object = pbmc, gene1 = "nUMI", gene2 = "nGene")`


Then its filter cell command is under:
# We filter out cells that have unique gene counts over 2,500 or less than 200
# Note that low.thresholds and high.thresholds are used to define a 'gate'
# -Inf and Inf should be used if you don't want a lower or upper threshold.
pbmc <- FilterCells(object = pbmc, subset.names = c("nGene", "percent.mito"), low.thresholds = c(200, -Inf), high.thresholds = c(2500, 0.05))` 

So I want to know whether the threshold setting is depending on the picture I show?
And the below is the Geneplot I have got base on my data. How can I set my thresholds?

**Tags:** scrnaseq
> **Comments:**
> **username_1**: Why have an upper bound on ngenes? Doesn't it indicate a cell is healthy if it is is able to express many genes?  

---

## 1 answers

### Answer by username_2 on 2018-08-16. Score: 1 | Accepted answer

Yes, you end up placing filters where things become inconsistent or similar to background. In the example, which appears to be from the Seurat tutorial, there's a downward plunge in `nGenes vs. nUMI` at around 200 genes and few believable cells with more than 2000-2500 genes, so the tutorials sets filters around there. The 0.05 mitochondrial contamination is a more arbitrary round number and is less supported by the plots (one would use more like 0.06 or 0.07 if one based this solely on the plots).

> **Comments:**
> **username_0**: Thank you@Devon Ryan If my geneplot result shows below/Users/huali/Desktop/Screen Shot 2018-08-15 at 7.35.30 PM.png.                 How should I setting my threshold ?  
> **username_2**: What do you think would be good decent values given those plots? I don't want you to just blindly follow what I say :)  
> **username_0**: I just don't know how people set their thresholds, and want to figure out how they can do to do further analysis base on their QC. So I show the data that I got. Want to find something that can be dig out.  
> **username_2**: In your case `percent.mito` should be less than 0.1 and `nGenes` should be at least 1000.  
> **username_3**: From the graphs, what would be a good upper limit cut-off for nFeatures per UMI?  

---

