Welcome to the Tapestry webapp.

The COVID-19 pandemic has strained testing capabilities worldwide. There is an urgent need to find economical and scalable ways to test more people. We present Tapestry, a novel quantitative nonadaptive pooling scheme to test many samples using only a few tests. The underlying molecular diagnostic test is any real-time RT-PCR diagnostic panel approved for the detection of the SARS-CoV-2 virus. In cases where most samples are negative for the virus, Tapestry accurately identifies the status of each individual sample with a single round of testing in fewer tests than simple two-round pooling. We also present a companion Android application BYOM Smart Testing which guides users through the pipetting steps required to perform the combinatorial pooling. The results of the pooled tests can be fed into the application to recover the status and estimated viral load for each individual sample.

Full Paper

Performance testing


: This is an interface to test the performance of the group testing framework using inbuilt algorithms for multiple prevalence (# of positive samples) values. It includes the option of first pre-processing COMP which filters out sure negatives and then run the inbuilt algorithm for reduced sample set. Different sets of matrices (varied "test vs sample" parameters) are used to run the tests. The experiment runs multiple synthetic experiments by generating multiple instantiations of the viral load vector for each algorithm, matrix pair. The performance parameters precision, recall, specificity, sure positives, unsure positives and false positives are provided after the code execution.

Please read the instructions below for using the form.


  1. Select different algorithms in Algorithmic section. For each algorithm, choice of using COMP for pre-processing is given. For comparison, both can be selected.
  2. Select the choices for matrices. For each matrix, range of prevalence (# of positive cases) value needs to be submitted. This can be done by choosing values for start, steps and stop. Default value for start, steps, stop are 1,1,7 respectively.
    Please note that the matrix names is "row_size"x"column_size". The values for start and stop need to be in the range 1 to row_size.
  3. Number of experiments to be conducted for each matrix, algorithm pair can be provided in the number of experiments dialog, with 20 used as default value. Once, all data are input, press run code to run the experiments.


The runs will take time depending on number of algorithms, matrices, d range and number of expirements. Do not close the browser during the run.
The l1ls_cv experiments take long time to run. Consider reducing the number of matrices and experiments when using this algorithm.

The algorithm section in some browsers appears two labels together and the checkboxes appear together after that.

Experiment form

Choose algorithms:
combined_COMP_SBL SBL combined_COMP_l1ls l1ls combined_COMP_l1ls_cv l1ls_cv combined_COMP_NNOMP NNOMP combined_COMP_NNOMP_random_cv NNOMP_random_cv
Choose matrices:

16x40 Start Step Stop

21x70 Start Step Stop

27x117 Start Step Stop

45x105 Start Step Stop

45x195 Start Step Stop

63x399 Start Step Stop

93x961 Start Step Stop

20x1140 Start Step Stop