<p>At each step in the SLiTing and pooling the barcodes added are not random, but are taken  from a predefined list of possible barcodes. </p>

<p>When the reads arrive, first you filter by reads that have >1 low quality bases in the UMI region (which is truely random).</p>

<p>Then you compare the sequences in the 3 cell-barcode regions against the list of allowed barcodes for each of those positions. If a read is not within an edit distance of one from one of those barcodes, it is discarded.</p>

<p>Finally the reads that pass these filters can be aligned.</p>

CC BY-SA 4.0
2018-09-27T18:16:19.283Z
2018-09-27T18:16:19.283Z
Ian Sudbery
<p>It should not be interpreted as "Reads with low quality in more than one base in any of the three 8 nt cell barcodes were also discarded". They only care if the cell barcodes match what are valid cell barcodes within 1 mismatch, the individual qualities are ignored. This sort of filtering turns out to be pretty common in practice, since you have to write a maximum edit distance into whatever you use to demultiplex by cells (or labeling each read, as was likely done in this case).</p>

CC BY-SA 4.0
2018-09-27T16:55:31.647Z
2018-09-27T16:55:31.647Z
Devon Ryan
<p>Cell barcodes =/= sequence reads.  The default settings on Illumina's bcl2fastq work exactly the same way; they allow a read to count for a sample if there is a single mismatch in the index, but not more.</p>

CC BY-SA 4.0
2018-09-27T20:13:39.853Z
2018-09-27T20:28:13.003Z
2018-09-27T20:28:13.003Z
swbarnes2
<p>In the methods of <a href="http://science.sciencemag.org/content/360/6385/176" rel="nofollow noreferrer">this paper</a>, the authors say:</p>

<blockquote>
  <p>Reads were then filtered based on quality score in the UMI region. Any read with >1 low-quality base (phred &lt;=10) were discarded. <strong>Reads with more than one mismatch in any of the three 8 nt cell barcodes were also discarded</strong>. The cDNA reads (Read 1) were then mapped to either a combined mm10- hg19 genome or the mm10 genome using STAR (44).</p>
</blockquote>

<p>I understand how to filter based on mismatch <em>after</em> mapping but in this case it is done <em>before</em> mapping. Has this to be interpreted as "Reads with <em>low quality in more than one base</em> in any of the three 8 nt cell barcodes were also discarded"?</p>

<scrnaseq><read-mapping><reads><barcode>
How to detect mismatch before mapping in RNA-Seq data
# How to detect mismatch before mapping in RNA-Seq data

(Asked by: username_0 on 2018-09-27)

In the methods of [this paper](http://science.sciencemag.org/content/360/6385/176), the authors say:

> Reads were then filtered based on quality score in the UMI region. Any read with >1 low-quality base (phred <=10) were discarded. **Reads with more than one mismatch in any of the three 8 nt cell barcodes were also discarded**. The cDNA reads (Read 1) were then mapped to either a combined mm10- hg19 genome or the mm10 genome using STAR (44).

I understand how to filter based on mismatch *after* mapping but in this case it is done *before* mapping. Has this to be interpreted as "Reads with *low quality in more than one base* in any of the three 8 nt cell barcodes were also discarded"?

**Tags:** scrnaseq, read-mapping, reads, barcode

---

## 3 answers

### Answer by username_1 on 2018-09-27. Score: 2 | Accepted answer

At each step in the SLiTing and pooling the barcodes added are not random, but are taken from a predefined list of possible barcodes.

When the reads arrive, first you filter by reads that have >1 low quality bases in the UMI region (which is truely random).

Then you compare the sequences in the 3 cell-barcode regions against the list of allowed barcodes for each of those positions. If a read is not within an edit distance of one from one of those barcodes, it is discarded.

Finally the reads that pass these filters can be aligned.


---

### Answer by username_2 on 2018-09-27. Score: 1

It should not be interpreted as "Reads with low quality in more than one base in any of the three 8 nt cell barcodes were also discarded". They only care if the cell barcodes match what are valid cell barcodes within 1 mismatch, the individual qualities are ignored. This sort of filtering turns out to be pretty common in practice, since you have to write a maximum edit distance into whatever you use to demultiplex by cells (or labeling each read, as was likely done in this case).


---

### Answer by username_3 on 2018-09-27. Score: 0

Cell barcodes =/= sequence reads. The default settings on Illumina's bcl2fastq work exactly the same way; they allow a read to count for a sample if there is a single mismatch in the index, but not more.


---

