Olink Sequencing Counts

We support Olink sequencing and have included running ngs2counts in our sequencing pipeline to produce the counts for all lanes that have the library type “Olink”. These counts are performed across one or more lanes on the flowcell, which is unusual for our service where everything else is supplied on a lane by lane basis.

Counting

To produce the counts our pipeline selects the lanes that contain Olink data and groups them by SLX identifier. ngs2counts is then run per SLX pool across the lane or lanes that contain that pool. The result is a zip archive containing the results of the count and the run_metadata.json file. The file is named to be attached to the minimum lane number for each SLX pool, though it will have the counts for all lanes for the same pool. It will be named:

<SLX>.<FLOWCELL>.s_<LANE>.olink_counts.zip

So if you have sequenced three lanes on the flowcell “233MNYLT4” from your pool “SLX-0”, and those lanes are 2, 5 and 7, the counts archive will be

SLX-0.233MNYLT4.s_2.olink_counts.zip

The ngs2counts option –library-mapping needs a number for the library as well as telling it which lanes should be included. This is an arbitrary number, so we have chosed to use the minimum lane number as this library number. In the example above, that would mean the counts for SLX-0 would be given the library number 2. This choice ensures that if there is more than one Olink pool on the flowcell they will each be given a different number.

A Little History

This mechanism is a change from the delivery of the first Olink lanes in 2025. The documentation on the Olink web site is a little sparse when using ngs2counts in isolation, and the first runs were using their “Reveal” kit. This produced a single CSV file with the counts and a run_metadata.json file per lane, which did fit neatly into our sequencing service structure. January 2026 gave us the first of one of their “Explore” kits, resulting in 16 CSV files per lane. We had also had feedback that users needed their counts to be across the lanes in the flowcell, and combining them is much more complicated with the “Explore” kits than the little script written for the “Reveal” data sets (see https://github.com/crukci-bioinformatics/combine-olink). Hence we have updating processing to create counts in the manner described on this page.