Unbiased and error-detecting combinatorial pooling experiments with balanced constant-weight Gray codes for consecutive positives detection

  • Guanchen He
  • , Vasilisa A. Kovaleva
  • , Carl Barton
  • , Paul G. Thomas
  • , Mikhail V. Pogorelyy
  • , Hannah V. Meyer*
  • , Qin Huang*
  • *Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

Abstract

Motivation: Combinatorial pooling schemes have enabled the measurement of thousands of experiments in a small number of reactions. This efficiency is achieved by distributing the items to be measured across multiple reaction units called pools. However, current methods for the design of pooling schemes do not adequately address the need for balanced item distribution across pools, a property particularly important for biological applications. Results: Here, we introduce balanced constant-weight Gray codes for detecting consecutive positives (DCP-CWGCs) for the efficient construction of combinatorial pooling schemes. Balanced DCP-CWGCs ensure uniform item distribution across pools, allow for the identification of consecutive positive items such as overlapping biological sequences, and enable error detection by ensuring a constant number of tests on each item and pair of consecutive items. For the efficient construction of balanced DCP-CWGCs, we have released an open-source python package codePUB, with implementations of the two core algorithms: a branch-and-bound algorithm (BBA) and a recursive combination with BBA (rcBBA). Simulations using codePUB show that our algorithms can construct long, balanced DCP-CWGCs that allow for error detection in tractable runtime.

Original languageEnglish
Article numberbtaf611
JournalBioinformatics
Volume41
Issue number12
DOIs
StatePublished - 1 Dec 2025

Fingerprint

Dive into the research topics of 'Unbiased and error-detecting combinatorial pooling experiments with balanced constant-weight Gray codes for consecutive positives detection'. Together they form a unique fingerprint.

Cite this