-

Please Enter Your Search
search icon
Nothing found for your search
Search results from other manuals
Nothing found for your search

1 Plan a batch

If everything you submit uses the same cartridge and the same chip, skip this chapter: put the oligos in the queue in any order and the machine will work through them.

It matters when a batch is mixed — some plain oligos, some with a fluorophore, some with a quencher. The machine will still run all of it without being told anything extra, but the order you submit in decides how much of the work is synthesis and how much is changing consumables.

1.1 What the machine adds for you

You never queue a cartridge change or a chip insertion. You queue oligos, and the machine works out what has to happen in between. You can see it doing so: every queued entry carries a processTypes array listing the steps it will actually perform.

Queue one oligo on a machine that has just been switched on and it plans six steps:

insertChip -> cartridgeInit -> cartridgeActivate -> initializeSystem -> insertChip -> synthesis

Queue a second oligo of the same kind behind it and it plans two:

insertChip -> synthesis

The difference is everything the first one had to set up and the second one inherits. The setup is not quick either: activating a cartridge alone takes about 20 minutes before any synthesis starts. This is the single most useful field in the queue: before starting anything, read processTypes and see what you have actually asked for.

1.2 Why grouping is worth the effort

Because a cartridge change is not free.

  • A chip is single-use. Every oligo costs one, whatever you do.
  • Changing a cartridge discards the one that is installed, with whatever is left in it.
  • Changing the cartridge type while a cartridge is installed additionally inserts a Manual cleaning run before the new cartridge can be set up. That is a procedure in its own right — protective equipment, a syringe, acetonitrile — and somebody has to stand at the Kilobaser and do it. See Manual cleaning in Operation.

So the cost is not per oligo, it is per transition between kinds. Consider four oligos — two plain, two with a 6-FAM and BHQ-1 probe — submitted in the two obvious orders. These numbers come from the processTypes the machine planned for each:

Submitted as Cartridge changes Manual cleanings Total machine steps
plain, probe, plain, probe 3 3 35
plain, plain, probe, probe 1 1 20

Same four oligos, same Kilobaser, same result. Alternating them costs three manual cleanings, each of which needs a person; grouping them costs one.

The rule that falls out of this is simple: oligos that need the same cartridge and chip should be adjacent in the queue. Not sorted in any particular way, just contiguous.

1.3 Grouping a real assay

The example assay is six plain primers plus one dual-labeled probe:

Oligo Length Cartridge Chip
LAMP-042_RPP30-F3 18 nt 2 Standard 2 Standard
LAMP-042_RPP30-B3 18 nt 2 Standard 2 Standard
LAMP-042_RPP30-FIP 42 nt 2 Standard 2 Standard
LAMP-042_RPP30-BIP 43 nt 2 Standard 2 Standard
LAMP-042_RPP30-LF 20 nt 2 Standard 2 Standard
LAMP-042_RPP30-LB 21 nt 2 Standard 2 Standard
LAMP-042_RPP30-P 24 nt 3 6-FAM 3-BHQ1 6-FAM plus BHQ-1

Two groups, so one transition. Put the six primers first and the probe last, and the machine inserts exactly one cartridge change and one cleaning, at the boundary.

1.4 Check the sequences fit

A cartridge holds a fixed number of bases, and each of the four bases has its own allowance. Both limits apply, so a set of sequences skewed towards one base can run out before the total does.

Cartridge Total bases Per base Use within, once activated
2 Standard 150 75 14 days
2-XL XL Standard 300 150 14 days
3 6-FAM 100 75 7 days

The six primers above come to 162 bases, which does not fit a standard cartridge. You can run them on two standard cartridges, or on one XL. kb_queue_assay.py reports this before you queue anything:

Standard Cartridge + Standard chip  (2 / 2)
  6 oligos, 162 bases
  ! 162 bases needs 2 cartridges (Standard Cartridge holds 150)

Re-run it with --cartridge 2-XL and the warning goes away.

Note the difference in how long each stays usable. A fluorophore cartridge expires in half the time of a standard one, and the clock starts when it is activated, not when it is installed. If a batch is going to sit in the queue for a week, put the fluorophore work at the end for that reason too.

1.5 Which combinations exist

Not every cartridge works with every chip, and the valid pairs are a property of the device, not of this guide. Read them at runtime from ccSettings.operations in GET /api/init, where a pair exists exactly when it can be run:

operations = kb.init()["ccSettings"]["operations"]
sorted(operations["3"])      # -> ['1', '1000', '2', '3-BHQ1', '3-single-label']
sorted(operations["2"])      # -> ['1', '1000', '2', '2-nocap']

Two things worth reading off that. A 6-FAM cartridge also runs the plain 2 chip, so it can make unmodified oligos — useful if you are already on it. And a standard cartridge never runs 3-BHQ1, so a quencher oligo can never be made on one, whatever you ask for.

Validating locally is worth the few lines, because the device rejects an impossible combination with 2-11-20, whose message is "provided processType is invalid" — which sends you looking at the wrong field entirely.

1.6 Putting it together

kb_queue_assay.py does all of the above: it reads the compatibility matrix from the device, groups the file by cartridge and chip, puts fluorophore groups last, checks each group against the cartridge budget, and then queues each group with one call.

python3 kb_queue_assay.py --host kilobaser.lab.example.org --user apibot \
    --insecure --dry-run kb_lamp_primers.fasta

Run it with --dry-run first. It prints the plan and touches nothing.

1.7 If you would rather not

Nothing here is mandatory. Submitting a mixed batch in arbitrary order produces the same oligos; it just spends more consumables and asks more of whoever is at the Kilobaser. If your users select a handful of oligos at a time and somebody is standing there anyway, queue them in whatever order they arrive and move on. Group when batches get large enough that the consumable cost is worth a few lines of code.