💩 Shedding of SARS-CoV-2 RNA in faeces

https://github.com/tillahoffmann/shedding/workflows/CI/badge.svg https://readthedocs.org/projects/shedding/badge/?version=latest https://img.shields.io/github/stars/tillahoffmann/shedding?style=social

Uncertainties surrounding the concentration of viral RNA fragments in the faeces of individuals infected with SARS-CoV-2 poses a major challenge for wastewater-based surveillance of Covid-19. This repository serves to collate data from quantitative studies on RNA load in faecal samples to constrain the shedding distribution.

📊 Datasets

Datasets can be found in the publications directory as JSON files following a common schema (see schema.json for details). All RNA loads are reported as log10 gene copies per mL. The results from individual samples are linked to patients wherever possible to provide longitudional information.

Key

Assay

LOQ

Patients

Samples

Detailed data

Temporal data

n

+

-

n

+

-

Cheung et al. 2020

?

?

59

9 (15.3%)

50 (84.7%)

?

?

?

-

-

Han et al. 2020

PowerChek-E

3.76

2

2 (100.0%)

0 (0.0%)

9

8

1

+

symptoms

Jeong et al. 2020

S

0.30

5

3 (60.0%)

2 (40.0%)

5

3

2

+

symptoms

Kim et al. 2020

RdRp_SARSr

?

38

8 (21.1%)

30 (78.9%)

129

13

116

-

-

Lui et al. 2020

2019-nCoV_N1

2.84

11

11 (100.0%)

0 (0.0%)

43

23

20

+

symptoms

Ng et al. 2020

2019-nCoV_N1

2.54

21

21 (100.0%)

0 (0.0%)

81

?

?

-

-

Pan et al. 2020

HKU-N

?

17

9 (52.9%)

8 (47.1%)

?

?

?

-

-

Wang et al. 2020

CCDC-ORF1ab

1.38

14

6 (42.9%)

8 (57.1%)

14

6

8

+

-

Wölfel et al. 2020

RdRp_SARSr, E_Sarbeco

2.00

9

8 (88.9%)

1 (11.1%)

82

68

14

+

symptoms

Zhang et al. 2020

ORF1ab

?

12

10 (83.3%)

2 (16.7%)

51

?

?

-

-

Zheng et al. 2020

ORF1ab

3.00

85

50 (58.8%)

35 (41.2%)

842

?

?

+

-

(Source code, png)

_images/plot_datasets.png

Overview of viral RNA load data available in different publications. Black vertical dotted lines represent the level of quantification or threshold for a sample to be considered positive. Arrows represent limits of viral RNA load reported in some studies. Squares and triangles represent the mean and median, respectively.

🤝 Contributing

Contributions in the form of new datasets or corrections are most welcome in the form of pull requests from forks. See here for more details on how to contribute.

🧪 Reproducing results

Results can be reproduced by following these steps:

  • Make sure you have python 3.8 or newer installed.

  • Install the python dependencies by running pip install -r requirements.txt (ideally in a dedicated virtual environment).

  • Install the polychord sampler by running make pypolychord (you may have to run make pypolychord twice if it fails in the first run).

  • Reproduce the figures (in the workspace/figures directory) and results (in the results.html file) by running make workspace/results.html.

If you are familiar with docker, you may also reproduce results in a container by following these steps:

  • Run make image to build the docker image.

  • Run make container to start a container with the workspace folder mounted.

  • Reproduce the figures (in the workspace/figures directory) and results (in the results.html file) by running make workspace/results.html.

Note

Reproducing the results will take a considerable amount of time (several hours if you have a fast machine, days if you have a slow machine). You have two options to speed up the process (and they can be combined).

  1. Use make -j [number of processors you use] results.html which will distribute the workload across the given number of processors.

  2. Use SEEDS=0 NLIVE=1 NREPEAT=1 make results.html which will only run the inference for one random number generator seed and use fewer points for the nested sampling (giving rise to less reliably but faster results).

Note

Storing intermediate results produced by pypolychord can take up to 10GB of disk space.

If you are not able to reproduce the results using the steps above, try running make tests which may help identify the problem. Otherwise, please raise a new issue.

📋 Contents