{"id":356,"date":"2020-04-09T10:47:16","date_gmt":"2020-04-09T08:47:16","guid":{"rendered":"http:\/\/members.loria.fr\/ADeleforge\/?p=356"},"modified":"2020-12-17T18:26:59","modified_gmt":"2020-12-17T16:26:59","slug":"the-maths-of-pool-testing-mixing-samples-to-speed-up-covid-19-detection","status":"publish","type":"post","link":"https:\/\/members.loria.fr\/ADeleforge\/the-maths-of-pool-testing-mixing-samples-to-speed-up-covid-19-detection\/","title":{"rendered":"The Maths of Group Testing: Mixing Samples to Speed Up COVID-19 Detection"},"content":{"rendered":"<p style=\"text-align: right\"><em><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/french_flag.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-501\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/french_flag.jpg\" alt=\"\" width=\"20\" height=\"13\" \/><\/a><a href=\"https:\/\/members.loria.fr\/ADeleforge\/les-maths-du-group-testing-melanger-des-prelevements-pour-accelerer-la-detection-du-covid-19\/\"> Version Fran\u00e7aise Ici <\/a><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/french_flag.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-501\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/french_flag.jpg\" alt=\"\" width=\"20\" height=\"13\" \/><\/a>\u00a0<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/covid_testing.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-452 alignleft\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/covid_testing-300x200.jpg\" alt=\"\" width=\"230\" height=\"153\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/covid_testing-300x200.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/covid_testing.jpg 652w\" sizes=\"auto, (max-width: 230px) 100vw, 230px\" \/><\/a><\/p>\n<p><span style=\"color: #0000ff\"><strong>Update 17\/12\/2020 <span style=\"color: #0000ff\">:<\/span><\/strong> Since the publication of this post, a group of French researchers has created a website gathering recent publications and news articles on the use of group testing for COVID-19 detection around the world. Check it out!<\/span> <a href=\"https:\/\/www.groupool-covid19.org\/\">https:\/\/www.groupool-covid19.org\/<\/a><\/p>\n<p>Now that <a href=\"https:\/\/areweinlockdown.com\/all_countries.html\">a large part of the world&rsquo; population<\/a> is in lockdown to fight against the global spread of the new coronavirus, the crucial question is: What&rsquo;s next? As lock-down measures will progressively be lifted, the key to avoid second and third waves of the pandemics will be <strong>massive and rapid testing<\/strong>, combined with case tracking and targeted quarantining. Unfortunately, the testing capacity of most countries is <a href=\"https:\/\/en.wikipedia.org\/wiki\/COVID-19_testing\">currently not nearly enough<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>Last week, researchers at the Frankfurt Red Cross Blood Donor Service and the Institute for Medical Virology at the University Hospital Frankfurt of Goethe University <a href=\"https:\/\/aktuelles.uni-frankfurt.de\/englisch\/pool-testing-of-sars-cov-02-samples-increases-worldwide-test-capacities-many-times-over\/\">succeeded in developing a procedure<\/a> that makes it possible to <strong>immediately and dramatically increase worldwide testing capacities<\/strong> for detecting SARS-CoV-2, the virus behind COVID-19. The procedure is based on <em><strong>pool testing<\/strong><\/em> (also called <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Group_testing?fbclid=IwAR3Ec79SbLe8tJbYfoGqLJacD64F_lFiDsFGIIzFeTgcoU_Pe5Ochqvth9o\">group testing<\/a><\/strong>), a principle as genius as simple, that was already used to detect syphilis during WWII. Rather than analysing individual patients&rsquo; samples (usually swabs from the throat or nose), one mixes a bunch of samples together, say 8, and runs the test on this cocktail, called a <strong><em>mini-pool<\/em><\/strong>. If the result is negative, you can reliably conclude that none of the 8 patients were infected, <strong>from one single test<\/strong>! If the test is positive, just divide your samples into two groups of 4 and repeat, until either a negative result is reached or a single sample is left.<\/p>\n<figure id=\"attachment_377\" class=\"thumbnail wp-caption aligncenter\" style=\"width: 426px\"><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-377\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing1-300x245.png\" alt=\"\" width=\"416\" height=\"340\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing1-300x245.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing1-768x628.png 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing1.png 832w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/a><figcaption class=\"caption wp-caption-text\"><strong>Figure 1<\/strong>. In this example, <strong>8<\/strong> samples (including 1 positive) are fully analysed by running only <strong>6<\/strong> tests, thanks to group testing. Note that mini-pool #5 did not have to be tested since #4 was tested negative: we deduce its positivity without a test. Depending on the (unknown) position of the positive sample, between 4 and 7 tests will be needed in that example.<\/figcaption><\/figure>\n<p>This procedure could readily be implemented by any laboratory in the world without the need for extra equipment. Given that running a single <a href=\"https:\/\/en.wikipedia.org\/wiki\/Polymerase_chain_reaction\">PCR test<\/a> for COVID-19 takes several hours on <a href=\"https:\/\/en.wikipedia.org\/wiki\/Thermal_cycler\">dedicated machines<\/a>, cutting down their number could <strong>save precious time <\/strong>in the ongoing fight against SARS-CoV-2.<\/p>\n<p>But <strong><em>how much<\/em><\/strong> time exactly? The figure below shows the theoretical average number of test per sample needed using group testing as a function of the population&rsquo;s infection rate for different mini-pool sizes:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/ntests_full.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-449\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/ntests_full-1024x690.png\" alt=\"\" width=\"542\" height=\"365\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/ntests_full-1024x690.png 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/ntests_full-300x202.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/ntests_full-768x518.png 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/ntests_full.png 1083w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/a><\/p>\n<p>Note that using mini-pools of size 1 corresponds to classical testing: one test per sample. The graph shows that if the proportion of infected people is larger than about 25% in the tested population, group testing is not advantageous compared to conventional testing. However, in a scenario where large campaigns of tests are conducted on random people in cities in order to track and isolate positive cases, it is reasonable to assume that no more than 10% of the population will be infected by COVID-19 at any given time. Here is a zoomed version of the above graph for infection rates below 10%. We also show on the right the <em>inverse <\/em>of the graph,\u00a0which represents the average <strong><em>speed-up<\/em><\/strong> brought by group testing:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/both_zoom.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-450\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/both_zoom-1024x590.png\" alt=\"\" width=\"637\" height=\"367\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/both_zoom-1024x590.png 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/both_zoom-300x173.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/both_zoom-768x442.png 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/both_zoom.png 1274w\" sizes=\"auto, (max-width: 637px) 100vw, 637px\" \/><\/a><\/p>\n<p>We see that for infection rates around 5%, using mini-pools of 4 already <strong>boosts testing capacities by a factor of 2.5<\/strong>, while for infection rates around 1% mini-pools of 16 may <strong>speed up tests by a factor of 10 or more<\/strong> ! It is also interesting to note that for infections rates above 6%, using pools of more than 4 samples does not significantly improve results.<\/p>\n<p>Deriving the formulas for those graphs is actually a quite fun maths\u00a0 problem! In the rest of this blog post, I will try to explain how to do it in an accessible way. My goal is to provide an example of interesting and useful maths exercise to enjoy during lockdown. I also secretly hope that it can help <strong>raising awareness in group testing<\/strong>, which <a href=\"https:\/\/trends.google.com\/trends\/explore?geo=US&amp;q=group%20testing,pool%20testing\">does not seem to have received a lot of attention<\/a> as of yet by politicians or media. <em>Let&rsquo;s spread the word together!<\/em><\/p>\n<h2>1. Hypotheses<\/h2>\n<p>First, we will assume that each test can detect a positive sample inside a mini-pool with <strong>100% accuracy<\/strong> (no <a href=\"https:\/\/en.wikipedia.org\/wiki\/False_positives_and_false_negatives\">false positives<\/a> or false negatives). The <a href=\"https:\/\/aktuelles.uni-frankfurt.de\/englisch\/pool-testing-of-sars-cov-02-samples-increases-worldwide-test-capacities-many-times-over\/\">German study on SARS-CoV-2<\/a> mentioned earlier showed that mini-pools of <strong>5 samples<\/strong> can be used without degrading accuracy. <a href=\"https:\/\/www.medrxiv.org\/content\/10.1101\/2020.03.26.20039438v1\">This recent paper<\/a> from the Israel Institute of Technology and the Rambam Health Care Campus (Haifa, Israel) suggests that pools of up to <strong>32<\/strong> or even <strong>64<\/strong> samples could be used while keeping the false-negative rate relatively low. Amplification cycles (running multiple tests) can also be used to improve reliability, but this will not be investigated here.<\/p>\n<p>Second, we will suppose that all samples have the same <strong>independent probability<\/strong> <em>P<sub>+<\/sub><\/em> (between 0 and 1) of being positive, representing the population&rsquo;s <strong>infection rate<\/strong>. Note that this independence assumption does not hold if we test, <em>e.g.<\/em>, a group of people leaving in the same house. Here, we assume that samples are taken <em>uniformly at random<\/em> in an infected population.<\/p>\n<p>Finally, for the sake of exposure, we will only consider mini-pools of size <em>N<\/em> where <em>N<\/em> is a <strong>power of 2<\/strong>, <em>e.g.<\/em>, 2<sup>3 <\/sup>= 2 x 2 x 2 = 8. This will make computations easier and cleaner.<\/p>\n<h2>2. Worst-case number of tests<\/h2>\n<p>As a warm up exercise, let us find what is the <strong>maximal number of tests <\/strong><em>T<\/em><sub>max <\/sub><strong>needed<\/strong> to analyse an initial mini-pool of <em>N=<\/em>2<em><sup>K<\/sup><\/em> samples. This corresponds to the \u00ab\u00a0worst case\u00a0\u00bb where <strong>every mini-pool<\/strong> along the procedure is tested<strong> positive<\/strong> and hence has to be split into two and further analysed. An example of this situation is illustrated below:<\/p>\n<figure id=\"attachment_380\" class=\"thumbnail wp-caption aligncenter\" style=\"width: 528px\"><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-380\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing2-1024x607.png\" alt=\"\" width=\"518\" height=\"307\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing2-1024x607.png 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing2-300x178.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing2-768x455.png 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing2.png 1037w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/a><figcaption class=\"caption wp-caption-text\"><strong>Figure 2.<\/strong> A \u00ab\u00a0bad\u00a0\u00bb example where pool-testing 8 samples requires 15 tests.<\/figcaption><\/figure>\n<p>By counting the number of positive mini-pools of size &gt;1, we see that:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-418\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn1-300x39.png\" alt=\"\" width=\"210\" height=\"27\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn1-300x39.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn1-768x99.png 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn1.png 841w\" sizes=\"auto, (max-width: 210px) 100vw, 210px\" \/><\/a><\/p>\n<p>Using the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Geometric_series#Formula\">formula for sums of geometrical series<\/a>, we obtain:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-419\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn2-300x47.png\" alt=\"\" width=\"192\" height=\"30\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn2-300x47.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn2-750x119.png 750w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn2.png 761w\" sizes=\"auto, (max-width: 192px) 100vw, 192px\" \/><\/a><\/p>\n<p><em>Shoot, <\/em>in the worst case, we have to run<strong> more tests<\/strong> than when simply testing the <em>N<\/em> samples individually! Is pool-testing really that good after all?<\/p>\n<p>Well, it all depends on <em><strong>how often<\/strong><\/em> this worst situation happens. To get an idea of this, let us stick to the example of <strong>Figure 2<\/strong> where <strong>exactly half<\/strong> of the samples to be tested are positive. Then, the worst case only happens when the samples are precisely in the alternated order <span style=\"color: #ff0000\"><strong>+<\/strong><\/span>,<strong>&#8211;<\/strong>,<span style=\"color: #ff0000\"><strong>+<\/strong><\/span>,<strong>&#8211;<\/strong>,&#8230; The probability of this to happen is the number of alternated orderings divided by the total number of orderings:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-484\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn3-300x57.jpg\" alt=\"\" width=\"217\" height=\"41\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn3-300x57.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn3-768x145.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn3.jpg 864w\" sizes=\"auto, (max-width: 217px) 100vw, 217px\" \/><\/a><\/p>\n<p>To order <em>N<\/em> samples, there are <em>N<\/em> ways of choosing the first one, then (<em>N<\/em>-1) ways of choosing the second one, (<em>N<\/em>-2) ways of choosing the third one, etc. The total number of orderings is hence<em> N<\/em> x (<em>N<\/em>-1) x (<em>N<\/em>-2) x &#8230; x 1 = <em>N<\/em>! (\u00ab\u00a0<em>N factorial\u00a0\u00bb<\/em>). To order them alternately, there are (<em>N<\/em>\/2)! ways to order positive samples and (<em>N<\/em>\/2)! ways to order negative samples, hence (N\/2)! x (N\/2)! = ((N\/2)!)\u00b2 ways in total. We obtain:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn4.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-483\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn4-300x75.jpg\" alt=\"\" width=\"185\" height=\"46.5\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn4-300x75.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn4.jpg 740w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>where we used the following combinatorics notation:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-412\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn5-300x107.png\" alt=\"\" width=\"126\" height=\"45\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn5-300x107.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn5.png 506w\" sizes=\"auto, (max-width: 126px) 100vw, 126px\" \/><\/a><\/p>\n<p>pronounced \u00ab\u00a0<em>n choose k\u00a0\u00bb<\/em>. This counts the number of ways of placing <em>k<\/em> identical elements into <em>n<\/em> available positions. Here is a summary of our results for different values of <em>N<\/em>:<\/p>\n<table  class=\" table table-hover\" style=\"width: 100%\">\n<tbody>\n<tr>\n<td><strong>Initial mini-pool size<\/strong> <em>N<\/em><\/td>\n<td><strong>Maximum number of tests<\/strong> <em>T<\/em><sub>max<\/sub><\/td>\n<td><strong>Probability<\/strong> <em>P<\/em><sub>worst<\/sub> (for 50% infection)<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>1\/2<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>7<\/td>\n<td>1\/6<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>15<\/td>\n<td>1\/70<\/td>\n<\/tr>\n<tr>\n<td>16<\/td>\n<td>31<\/td>\n<td>1\/12,870<\/td>\n<\/tr>\n<tr>\n<td>32<\/td>\n<td>63<\/td>\n<td>1\/601,080,390<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As can be seen, the worst case happens very rarely when using sufficiently large mini-pools. That&rsquo;s reassuring!<\/p>\n<h2>3. Average number of tests<\/h2>\n<p>Let us now look at the more general problem of the <strong>average number of tests<\/strong> needed when using mini-pools of size <em>N<\/em>, for a given infection rate <em>P<sub>+<\/sub><\/em>. To tackle this we will need to introduce appropriate notations (which is often the most difficult part of real-world maths problems). We will denote by <em>m<sup>(i)<\/sup><\/em> a mini-pool of <em>i<\/em> samples, i.e., a <em>pool of i<\/em>. The mini-pools of a given size will be numbered \u00ab\u00a0from left to right\u00a0\u00bb, as shown in the example below:<\/p>\n<figure id=\"attachment_485\" class=\"thumbnail wp-caption aligncenter\" style=\"width: 540px\"><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-485\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing3-1024x594.png\" alt=\"\" width=\"530\" height=\"307\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing3-1024x594.png 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing3-300x174.png 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing3-768x445.png 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/pool-testing3.png 1061w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/a><figcaption class=\"caption wp-caption-text\"><strong>Figure 3.<\/strong> Numbering of mini-pools for an initial mini-pool of 8 samples.<\/figcaption><\/figure>\n<p>With this notation, the individual samples are hence written as <em>pools of 1<\/em>, that is, <em>m<sub>1<\/sub><sup>(1)<\/sup><\/em>, <em>m<sub>2<\/sub><sup>(1)<\/sup><\/em>, &#8230; , <em>m<sub>N<\/sub><sup>(1)<\/sup><\/em>. We will use R<sub>+<\/sub>[<em>m<sup>(i)<\/sup><\/em>] to denote the <em>positivity<\/em> of a pool, where\u00a0<em>R<\/em><sub>+<\/sub>[<em>m<sup>(i)<\/sup><\/em>]=1 if <em>m<sup>(i)<\/sup><\/em> contains a positive sample and <em>R<\/em><sub>+<\/sub>[<em>m<sup>(i)<\/sup><\/em>]=0 otherwise. Similarly we will denote by <em>R<\/em><sub>&#8211;<\/sub>[<em>m<sup>(i)<\/sup><\/em>] = ( 1 &#8211; <em>R<\/em><sub>+<\/sub>[<em>m<sup>(i)<\/sup><\/em>] ) the <em>negativity<\/em> of a pool.<\/p>\n<p>When doing a group test, we first need to test the initial mini-pool containing all samples. Then, whenever a mini-pool is tested positive, we split it into 2 pools of equal size and run further tests on them. A first approach to estimate the number of test needed is hence to count twice the <strong>number of positive mini-pools<\/strong> of size 2 or more. Following our notations, this gives:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-461\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6-300x105.jpg\" alt=\"\" width=\"417\" height=\"146\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6-300x105.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6-1024x359.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6-768x269.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6-1536x538.jpg 1536w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn6.jpg 1666w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\" \/><\/a><\/p>\n<p>This can be written in a more compact way using the mathematical symbol for sums:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-462\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn7-300x82.jpg\" alt=\"\" width=\"190\" height=\"52\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn7-300x82.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn7-750x209.jpg 750w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn7.jpg 762w\" sizes=\"auto, (max-width: 190px) 100vw, 190px\" \/><\/a><\/p>\n<p>However this formula is missing \u00ab\u00a0shortcuts\u00a0\u00bb, such as the one showed in <strong>Figure 1<\/strong>. When a mini-pool is tested positive, if the first half of it is tested negative, then there is no need to test the second half: we know it must be positive. To remove these shortcuts in our count, we need to correct the above formula as follows:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-463\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn8-300x43.jpg\" alt=\"\" width=\"359\" height=\"51\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn8-300x43.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn8-1024x145.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn8-768x109.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn8.jpg 1444w\" sizes=\"auto, (max-width: 359px) 100vw, 359px\" \/><\/a><\/p>\n<p>The new term removes one test whenever the first half of a pool is negative while the second half is positive. For what follows, it will be convenient to rewrite this formula only in terms of the <em>negativity<\/em> of mini-pools:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-466\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9-300x34.jpg\" alt=\"\" width=\"453\" height=\"51\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9-300x34.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9-1024x115.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9-768x86.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9-1536x173.jpg 1536w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn9.jpg 1821w\" sizes=\"auto, (max-width: 453px) 100vw, 453px\" \/><\/a><\/p>\n<p>We now want to know how much <em>T<\/em> will be <strong>in average<\/strong>, given that each individual sample has a probability <em>P<\/em><sub>+<\/sub> of being positive. This quantity is called the \u00ab\u00a0<em>expectation of T\u00a0\u00bb<\/em> and we note it E{<em>T<\/em>}. Using the fact that the expectation is <em>linear<\/em> and that the expectation of the product of two independent variables is the product of their expectations, we have from\u00a0 the previous formula:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-491\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10-300x29.jpg\" alt=\"\" width=\"594\" height=\"57\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10-300x29.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10-1024x98.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10-768x74.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10-1536x147.jpg 1536w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn10-2048x197.jpg 2048w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><\/a><\/p>\n<p>We are left with the problem of computing the expectations of the mini-pools&rsquo; negativities. By our hypothesis, a single sample is negative with probability <em>P<sub>&#8211;<\/sub><\/em>=(1-<em>P<\/em><sub>+<\/sub>). Hence, we have:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-470\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn11-300x54.jpg\" alt=\"\" width=\"127\" height=\"23\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn11-300x54.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn11.jpg 512w\" sizes=\"auto, (max-width: 127px) 100vw, 127px\" \/><\/a><\/p>\n<p>for any <em>n<\/em> between 1 and <em>N<\/em>. In addition, a mixture of <em>i<\/em> samples will be tested negative<strong> if and only if every sample in it is negative<\/strong>. Its expected negativity is hence the <strong>product<\/strong> of the expected negativity of each sample, <em>i.e.<\/em>,\u00a0(<em>P<sub>&#8211; <\/sub><\/em>) x (<em>P<sub>&#8211; <\/sub><\/em>) x (<em>P<sub>&#8211; <\/sub><\/em>) x &#8230; This gives:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn12.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-493\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn12-300x52.jpg\" alt=\"\" width=\"130\" height=\"22.5\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn12-300x52.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn12.jpg 519w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Inserting these in the previous expression of E{<em>T<\/em>} we obtain:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-474\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13-300x39.jpg\" alt=\"\" width=\"389\" height=\"51\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13-300x39.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13-1024x134.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13-768x101.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13-1536x201.jpg 1536w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn13.jpg 1550w\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" \/><\/a><\/p>\n<p>After simplification, we finally obtain the following general formula for the average number of tests:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn14.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-475\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn14-300x50.jpg\" alt=\"\" width=\"330\" height=\"54.5\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn14-300x50.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn14-1024x169.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn14-768x127.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn14.jpg 1320w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>It is also convenient to express the average number of test <strong>per sample<\/strong>. To do this, we divide the above expression by the initial size of the mini-pool, <em>N<\/em>=2<sup><em>K<\/em><\/sup>:<\/p>\n<p><a href=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn15.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-476\" src=\"http:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn15-300x59.jpg\" alt=\"\" width=\"307\" height=\"60\" srcset=\"https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn15-300x59.jpg 300w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn15-1024x200.jpg 1024w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn15-768x150.jpg 768w, https:\/\/members.loria.fr\/ADeleforge\/wp-content\/blogs.dir\/192\/files\/sites\/192\/2020\/04\/eqn15.jpg 1235w\" sizes=\"auto, (max-width: 307px) 100vw, 307px\" \/><\/a><\/p>\n<p>This expression is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Polynomial\">polynomial<\/a> in <em>P<\/em><sub>&#8211;<\/sub>. As expected, we see that if the population is 100% infected (<em>P<\/em><sub>&#8211; <\/sub>= 0), pool-testing requires about twice as many tests as the regular procedure (the \u00ab\u00a0worst-case\u00a0\u00bb situation studied in the last section). We also see that the number of needed tests decreases with the infection rate, as showed in the graphs at the beginning of this post.<\/p>\n<p>Here is a table detailing <strong>mean numbers of tests per samples<\/strong> as a function of infection rate and initial mini-pool size:<\/p>\n<table  class=\" table table-hover\" style=\"width: 100%\">\n<tbody>\n<tr>\n<td style=\"text-align: left\"><strong>Infection rate \u25ba<br \/>\n<\/strong><strong>\u25bc Initial mini-pool size<\/strong><\/td>\n<td><b>0.5%<\/b><\/td>\n<td><b>1%<\/b><\/td>\n<td><b>2%<\/b><\/td>\n<td><b>3%<\/b><\/td>\n<td><b>5%<\/b><\/td>\n<td><b>8%<\/b><\/td>\n<td><b>10%<\/b><\/td>\n<td><b>20%<\/b><\/td>\n<td><b>50%<\/b><\/td>\n<\/tr>\n<tr>\n<td><strong>2<\/strong><\/td>\n<td>0.51<\/td>\n<td>0.51<\/td>\n<td>0.53<\/td>\n<td>0.54<\/td>\n<td>0.57<\/td>\n<td>0.62<\/td>\n<td>0.64<\/td>\n<td>0.78<\/td>\n<td>1.12<\/td>\n<\/tr>\n<tr>\n<td><strong>4<\/strong><\/td>\n<td>0.26<\/td>\n<td>0.28<\/td>\n<td>0.31<\/td>\n<td>0.34<\/td>\n<td>0.39<\/td>\n<td>0.48<\/td>\n<td>0.53<\/td>\n<td><em>0.77<\/em><\/td>\n<td>1.30<\/td>\n<\/tr>\n<tr>\n<td><strong>8<\/strong><\/td>\n<td>0.15<\/td>\n<td>0.17<\/td>\n<td>0.21<\/td>\n<td>0.25<\/td>\n<td><em>0.33<\/em><\/td>\n<td><em>0.45<\/em><\/td>\n<td><em>0.52<\/em><\/td>\n<td>0.82<\/td>\n<td>1.41<\/td>\n<\/tr>\n<tr>\n<td><strong>16<\/strong><\/td>\n<td>0.09<\/td>\n<td>0.12<\/td>\n<td>0.18<\/td>\n<td><em>0.23<\/em><\/td>\n<td><em>0.33<\/em><\/td>\n<td>0.46<\/td>\n<td>0.54<\/td>\n<td>0.87<\/td>\n<td>1.47<\/td>\n<\/tr>\n<tr>\n<td><strong>32<\/strong><\/td>\n<td><em>0.07<\/em><\/td>\n<td><em>0.10<\/em><\/td>\n<td><em>0.17<\/em><\/td>\n<td><em>0.23<\/em><\/td>\n<td>0.34<\/td>\n<td>0.48<\/td>\n<td>0.57<\/td>\n<td>0.90<\/td>\n<td>1.51<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>4. Open questions<\/h2>\n<p>There are still interesting open questions left to explore. In particular, if the tests are not 100% accurate, what is the best way to reduce errors using multiple cross tests? How to generalise these formulas to initial pools which are not powers of two? I leave these questions to the interested readers, and maybe I&rsquo;ll come back to it in a future blog post!<\/p>\n<p><em>Stay safe everyone!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Version Fran\u00e7aise Ici \u00a0 &nbsp; Update 17\/12\/2020 : Since the publication of this post, a group of French researchers has created a website gathering recent publications and news articles on the use of group testing for COVID-19 detection around the world. Check it out! https:\/\/www.groupool-covid19.org\/ Now that a large part of the world&rsquo; population is [&hellip;]<\/p>\n","protected":false},"author":176,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-356","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/posts\/356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/users\/176"}],"replies":[{"embeddable":true,"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/comments?post=356"}],"version-history":[{"count":116,"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/posts\/356\/revisions"}],"predecessor-version":[{"id":589,"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/posts\/356\/revisions\/589"}],"wp:attachment":[{"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/media?parent=356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/categories?post=356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/members.loria.fr\/ADeleforge\/wp-json\/wp\/v2\/tags?post=356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}