Skip to content

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.

simplified overview of linked reads

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. 10X linked read data before and after demultiplexing

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

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.

10X Genomics

  • barcode is the first 16bp of the R1 read
  • barcode stays in the sequence data for LongRanger compatibility
  • limited to ~4.7 million barcodes

Bead-barcoded Linked-read Sequencing

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:Z SAM tag in the sequence header comment
  • combinatorial barcodes inline at start of R1 read
  • it uses a VX:i tag to indicate if a barcode is valid or not
    • VX:i:0 is invalid
    • VX:i:1 is valid

Haplotype tagging

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.

Haplotagging

  • ~84 million possible barcode combinations (~900,000 per sample)
  • 4 barcode segments
    • A segment is the first 6bp of the I1 read
    • C segment is the next 6bp of the I1 read (7-12)
    • B segment is the first 6bp of the I2 read
    • D segment is the next 6bp of the I2 read (7-12)
  • barcode stored as BX:Z tag in the read header in ACBD format
    • e.g. @A003432423434:1:324 BX:Z:A45C01B84D21
  • 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.

stLFR

  • depending on the link sequence between segments, will be either the last 54bp or 42bp of the R2 read
    • 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
  • 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

Transposase Enzyme-Linked Long-read Sequencing

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 (:).

TELL-seq

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