# Sequencing Swabs

**Update 2024-02-26**: due to a [serious typo](https://github.com/naobservatory/jefftk-analysis/commit/3075bae70b8986938c2b71c4b1e8436b98896754) all the results in this post were off by a factor of 100. Sequencing from individuals still looks promising, but by less than it did before. I've updated the numbers in the post, and added notes above the charts to explain how they're wrong. Thanks to Simon Grimm for catching my mistake.

*While this is about an area I work in, I'm speaking for myself and not my organization.*

At the [Nucleic Acid Observatory](https://naobservatory.org/) we've been mostly looking at metagenomic sequencing of wastewater as a way to identify a potential future '[stealth](https://www.gcsp.ch/publications/securing-civilisation-against-catastrophic-pandemics)' pandemic, but this isn't because wastewater is the ideal sample type: sewage is actually really—the joke writes itself. Among other things it's inconsistent, microbially diverse, and the nucleic acids are have degraded a lot. Instead the key advantage of wastewater is how practical it is to get wide coverage. Swabbing the noses and/or throats of everyone in Greater Boston a few times a week would be nuts, but [sampling the wastewater](https://www.mwra.com/biobot/biobotdata.htm) gets you [3M](https://www.mwra.com/02org/html/whatis.htm) people in a single sample. \[1\]

Imagine, though, that people were enthusiastic about taking samples and giving them to you to sequence. How much better would that be? What does "better" even mean? In [Grimm et al. (2023)](https://www.medrxiv.org/content/10.1101/2023.12.22.23300450v1.full) we operationalized "better" as RA~i~(1%): what fraction of shotgun metagenomic sequencing reads might come from the pathogen of interest when 1% of people have been infected in the last week. For example, in our re-analysis of [Rothman et al. (2021)](https://pubmed.ncbi.nlm.nih.gov/34550753/) we found a RA~i~(1%) of ~1e-7 for SARS-CoV-2, which means we'd estimate that in a week where 1% of people contracted Covid-19, one in 10M sequencing reads would come from the virus. Let's say you were able to get throat swabs instead; what might RA~i~(1%) look like?

The ideal way to determine this would be to swab a lot of people, run untargeted sequencing, analyze the data, and link it to trustworthy data on how many people were sick. But while public health researchers do broad surveillance, collecting and testing swabs for specific things, as far as I can tell no one has combined this with metagenomic sequencing. \[2\] Instead, we can get a rough estimate from looking at studies that just sequenced sick people.

In [Lu et al. (2021)](https://www.nature.com/articles/s41421-021-00248-3) they ran shotgun metagenomic RNA sequencing on throat swabs from sixteen Covid patients in Wuhan. Patients with higher viral load, and so lower Ct values on their qPCR tests (roughly the number of times you need to double the amount of SARS-CoV-2 in the sample until it's detectable), consistently had higher relative abundance:

[![](https://www.jefftk.com/covid-throat-swab-relative-abundance.png)](https://www.jefftk.com/covid-throat-swab-relative-abundance-big.png)

*Larger version of [Fig 2.a.1](https://www.nature.com/articles/s41421-021-00248-3#:~:text=Fig.%202%3A%20Genome%20coverage%20of%20SARS%2DCoV%2D2.), reconstructed from [Supplementary Table S1](https://static-content.springer.com/esm/art%3A10.1038%2Fs41421-021-00248-3/MediaObjects/41421_2021_248_MOESM1_ESM.pdf))*

Imagine we got swabs from a lot of people, of which 1% were sick. What sort of relative abundances might we get? If we collect only a few swabs it depends a lot on whether we get anyone who's sick, and if we do get a sick person then it matters a lot how high their viral load is. On the other hand, if we collect a very large number of swabs then we'll just get the average across the population. Assuming for the moment that we can model "sick" as "similar to one of those sixteen hospitalized patients", here's a bit of simulating ([code](https://github.com/naobservatory/jefftk-analysis/blob/main/2024-01-30--simulate-swabs.py)):

\[EDIT: the y-axis on this chart is 100x too high. For example, the black line should be just below 1e-3\]

[![](https://www.jefftk.com/simulated-ra-1pct-for-throat-swabs.png)](https://www.jefftk.com/simulated-ra-1pct-for-throat-swabs-big.png)

This is 10k simulations, ordered by the relative abundance each gave. For example, if 1% of people are sick and you only swab 50 people then in half the simulations no one in the sample is sick and the relative abundance is 0, which is why the blue n=50 line only shows up for percentiles 50% and above. On the other hand, if we collect a huge number of swabs we end up with pretty consistently 0.08% of sequencing reads coming from SARS-CoV-2. With 200 swabs the median RA~i~(1%) value is 0.01%.

One major issue with this approach is that the data was collected from hospitalized patients only. Having a high viral load seems like the sort of thing that should make you more likely to be hospitalized, so that should bias Ct values down. On the other hand, people tend to have lower viral loads later in their infections, and hospitalization takes a while, which would bias Ct values up. Here's a chart illustrating this from [Knudtzen et al. (2021)](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0258421):

[![](https://www.jefftk.com/ct-by-days-into-disease-and-hospitalization.png)](https://www.jefftk.com/ct-by-days-into-disease-and-hospitalization-big.png)

*Note that Cq and Ct are different abbreviations for [same thing](https://en.wikipedia.org/wiki/Cycle_of_quantification/qualification).*

Is there a paper that tells us what sort of Ct values we should expect if we sample a broad swath of infected people?

[Souverein et al. (2022)](https://academic.oup.com/ofid/article/9/7/ofac223/6576478) looked at a year's worth of SARS-CoV-2 PCR tests from a public health facility in the Netherlands. The good news is these tests averaged two days from symptom onset and they got results from 20,207 people. The bad news is we only have data from people who decided to get tested, which still excludes asymptomatics, and these were combined nasopharyngeal (NP, "deep nose") and oropharyngeal (OP, "throat") swabs instead of just throat swabs. Still, pretty good! Comparing their Ct values to what we see in Lu et al. (2021), it looks like viral loads are generally a lot higher:

[![](https://www.jefftk.com/viral-loads-in-lu-vs-souverein.png)](https://www.jefftk.com/viral-loads-in-lu-vs-souverein-big.png)

There are two issues with taking this chart literally. One is that the combined swabs in Souverein should generally have given lower Ct scores for the same viral load than throat-only swabs would have given. A quick scan gives me [Berenger et al. (2020)](https://www.medrxiv.org/content/10.1101/2020.05.05.20084889v1.full) where they found a median Ct 3.2 points lower for nasopharyngeal than throat samples, so we could try to adjust for this by assuming the Lu Ct values would have been 3.2 points lower:

[![](https://www.jefftk.com/viral-loads-in-lu-vs-souverein-adjusted.png)](https://www.jefftk.com/viral-loads-in-lu-vs-souverein-adjusted-big.png)

The other issue, however, is worse: even though it's common to talk about Ct scores as if they're an absolute measurement of viral load, they're dependent on your testing setup. A sample that would read Ct 25 with the approach taken in one study might read Ct 30 with the approach in another. Comparisons based on Ct *within* a study don't have this problem, but ones across studies do.

So, what can we do? My best guess currently is that the Lu data gives maybe slightly lower relative abundances than you'd get sampling random people, but it's hard to say. I'm going to be a bit unprincipled here, and stick with the Lu data but drop the 20% of samples with the highest viral loads (3 of 16) to get a conservative estimate of how high a relative abundance we might see with throat swabs. This cuts RA~i~(1%) by a factor of ten:

\[EDIT: the y-axis on this chart is 100x too high. For example, the black line should be just below 1e-4\]

[![](https://www.jefftk.com/simulated-ra-1pct-for-throat-swabs-drop-three.png)](https://www.jefftk.com/simulated-ra-1pct-for-throat-swabs-drop-three-big.png)

I really don't know if this is enough to where the remaining samples are a good representation of what you'd see with random people in the community, including asymptomatics, but let's go ahead with it. Then with 200 swabs the median RA~i~(1%) value is now 4e-5, a ~400x higher relative abundance than we see with wastewater. \[3\] If you could cost-effectively swab a large and diverse group of people, this would allow surveillance with much lower sequencing costs than wastewater. But that's a big "if": swabbing cost goes up in proportion to the number of people, and it's hard to avoid drawing from a correlated subgroup.

*Thanks to Simon Grimm for conversations leading to this post and for sending me Lu et al. (2021), to Will Bradshaw for feedback on the draft and pointing me to Knudtzen et al. (2021) and Souverein et al. (2022), and to Mike McLaren for feedback on the draft.*

  
\[1\] Technically it gets you that in two samples, since Biobot tracks the North System and South System separately. But you can combine them if you want simpler logistics.

\[2\] If you know of someone who has, or who would if they had the money for sequencing, please let me know!

\[3\] [Pathogen identification](https://www.jefftk.com/p/computational-approaches-to-pathogen-detection) would also be much easier with swabs, since it's a far simpler microbiome and the nucleic acids should be in much better condition.

*Comment via: [facebook](https://www.facebook.com/jefftk/posts/YmBNyhopAmZ7M8t43), [facebook](https://www.facebook.com/jefftk/posts/pfbid0KmuT4BR2REBXCVr4zDaVKwKKGdedtMByzPUtnTiPtQGKcyQ4aeziaAeBa5qASWzil), [lesswrong](https://lesswrong.com/posts/ZrNbigaWCHbTTns29), [the EA Forum](https://forum.effectivealtruism.org/posts/YmBNyhopAmZ7M8t43), [mastodon](https://mastodon.mit.edu/@jefftk/111853683657388071)*