What are linked reads
Linked reads are short read (e.g. Illumina) data. What makes them different is that they contain an added DNA segment (“barcode”) that lets us associate sequences as having originated from a single DNA molecule. That means if we have 4 sequences from a library that all contain the same added barcode, then we infer that they must have originated from the same original DNA molecule. Different barcode = different molecule of origin. If the sequences would map to the same genomic region during sequence alignment, we would know that those sequences with the same barcode originated from a single DNA fragment from a single homologous chromosome from a single cell. That’s right, built-in phase information.

What linked reads look like
Section titled “What linked reads look like”Linked-read data is sequence data as you would expect it, encoded in a FASTQ file. Different technologies put
the linked-read barcodes in different places, so the first processing step (after sample demultiplexing)
to identify/validate the linked-read barcode on every sequence, remove the barcode from the sequence,
and preserve it somewhere in the read header. The result of that processing step is considered the final
appearance of linked-read sequence data, which varies somewhat between technologies. The diagram below preserves the nucleotide
barcode under the OX:Z tag and recodes it under BX:Z using the haplotagging “ACBD” segment format.

Linked-read varieties
Section titled “Linked-read varieties”There are a handful of linked-read sample preparation methods, but that’s largely an implementation detail. All of those methods are laboratory procedures to take genomic DNA and do the necessary modifications to fragment long DNA molecules, tag the resulting fragments with the same DNA barcode, then add the necessary Illumina adapters. It’s not unlike the different RAD flavors (e.g. EZrad, ddRAD, 2B-rad)– they all give you RAD data in the end, but vary in how you get there in terms of cost and bench time. We obviously subscribe to BLink-seq 🤓.
It’s worth describing the obvious differences of the raw (FASTQ) data. Knowing these details might help you make sense of compatibilties/incompatibilities for software, or how you can convert between styles. We strongly advocate for using Standard format.
| Type | Location | Format | Invalid Encoding | Example |
|---|---|---|---|---|
| 10X | R1 read | ATCG |
N |
AGGTTGGGTAAGATA... |
| BLink-seq | BX:Z and VX:i tags |
ACBD |
VX:i:0 |
BX:Z:31_442_512 VX:i:1 |
| Haplotagging | BX:Z tag |
ACBD |
00 segment |
BX:Z:A04C54B96D11 |
| stLFR | end of sequence ID | #1_2_3 |
0 segment |
@A003432423434:1:324#12_432_1 |
| TELLseq | end of sequence ID | :ATCG |
N |
@A003432423434:1:324:TTACCACGAGG |
10X Genomics
Section titled “10X Genomics”The elder of the bunch and also a discontinued commercial product. 10X-style FASTQ files have the linked-read barcode
as the first 16bp of the forward (R1) read. For these data to be compatible with the 10X LongRanger suite,
the barcode must stay in the read. Moving the first 16bp into the read header breaks LongRanger compatibility.

Specification
Section titled “Specification”- barcode is the first 16bp of the
R1read - barcode stays in the sequence data for LongRanger compatibility
- limited to ~4.7 million barcodes
BLink-seq
Section titled “BLink-seq”BLink-seq began as haplotagging, but when the team couldn’t get haplotagging to work, they decided to keep changing the design until it worked, resulting in an independent development cycle with a different chemistry. Because of these haplotagging origins, it shares the ACBD combinatorial barcode encoding format. As we frequently say on this website, BLink-seq is an open-source approach to linked-read chemistry, with the protocol freely provided and reagents readily available from various suppliers.
- ~7 million barcodes per sample
- the barcode is encoded in a
BX:ZSAM tag in the sequence header comment - combinatorial barcodes inline at start of R1 read
- it uses a
VX:itag to indicate if a barcode is valid or notVX:i:0is invalidVX:i:1is valid
Haplotagging
Section titled “Haplotagging”Haplotagging is currently a non-commercial linked-read chemistry, although
the inventors are in the process of trying to commercialize it.
Haplotagging barcodes are combinatorial and are made up of four 6bp segments. Two of these segments (“A” and “C”) are the first 12bp of the I1 read and
the other two (“B” and “D”) are the first 12bp of the I2 read, both of which are provided by Illumina for standard sequencing runs.
The barcodes are stored in the sequence header under the BX:Z SAM tag, recoded in their “ACBD” format.

Specification
Section titled “Specification”- ~84 million possible barcode combinations (~900,000 per sample)
- 4 barcode segments
Asegment is the first 6bp of theI1readCsegment is the next 6bp of theI1read (7-12)Bsegment is the first 6bp of theI2readDsegment is the next 6bp of theI2read (7-12)
- barcode stored as
BX:Ztag in the read header inACBDformat- e.g.
@A003432423434:1:324 BX:Z:A45C01B84D21
- e.g.
- invalid barcode segment encoded with
00(e.g.,C00)
Single-Tube Long Fragment Reads
Another of the presently available commercial linked-read options. stLFR data uses combinatorial barcodes
made up for three 10bp segments which are at the end of the R2 read. Demultiplexing these data results
in the barcode being moved to the sequence ID using a pound (#) sign between the sequence ID and barcode, with
the barcode recoded in the 1_2_3 format, where each segment is an integer.

Specification
Section titled “Specification”- depending on the link sequence between segments, will be either the last 54bp or 42bp of the
R2read- 54 base barcode: 10+6+10+18+10
- 42 base barcode: 10+6+10+6+10
- barcode appended to sequence header with
#sign- e.g.
@A003432423434:1:324#12_432_1
- e.g.
- invalid barcode segment encoded as
0(e.g.,1_0_29) - advertised to have a capacity over 3.6 billion, with up to 50 million per sample
- actual results may vary
TELL-seq
Section titled “TELL-seq”One of the presently available commercial linked-read options. TELLseq data is very similar to 10X, except the
barcode is 18bp long and contained in the I1 read that Illumina provides with the standard R1 and R2 reads. The
barcode gets appended in the read header using a colon (:).

Specification
Section titled “Specification”- barcode is the first 18bp of the I1 read
- barcode is appended to sequence header
- e.g.
@A00234534562:1:544:AATTATACCACAGCGGTA
- e.g.
- invalid barcode contains at least one
Ncharacter - advertised to have a capacity over 2 billion barcodes
- realistically use <24 million