Pooling algorithm

The pooling algorithm assigns each tile (amplicon) to a pool, subject to requirements that allow each pool to be multiplexed.

To assign each tile to a pool, the pooling algorithm performs the following steps.

  1. Sorts amplicons by decreasing priority.

  2. Starts with one available pool.

  3. Empties all available pools.

  4. For each sorted amplicon, the algorithm performs the following tasks.

    1. If there is at least one pool in which the amplicon can be multiplexed, the algorithm puts the amplicon into the first compatible pool that maximizes the distance between the amplicon and any other amplicon in the pool.

    2. If a new pool can be added, the algorithm adds a new available pool and returns to step 3.

    3. If a new pool cannot be added, the algorithm puts the amplicon into the overflow (unpooled) list.