kalekundert / stepwise

Modular, command-line scientific protocols
GNU General Public License v3.0
3 stars 0 forks source link

Option to group reagent in master mixes #67

Open kalekundert opened 2 years ago

kalekundert commented 2 years ago

I just encountered an issue where Reactions made a master mix I didn't want it to. Specifically, I had the following reaction:

Reagent                  Stock    Volume
===================  =========  ========
DNase I buffer             10x      5 µL
rDNase I                   10x      1 µL
RNA                                44 µL

If multiple RNAs are given, Reactions makes a master mix with the enzyme and the 10x buffer. Generally that would be right, but here I don't want to add the enzyme directly to the 10x buffer, so I want to skip the master mix altogether.

Importantly, I need a way to specify this special-case just from the reaction table. I can't do anything from python, since this table is loaded from a config file and I don't necessarily want to avoid master mixes for different configs.

The first thing I thought of was to add a "Master Mix Group" column, maybe abbreviated as "Mix". Any two reagents with the same value in this column would be forced into the same master mix. So in this case, I could do something like:

Reagent                  Stock    Volume  Mix
===================  =========  ========  ===
DNase I buffer             10x      5 µL  1
rDNase I                   10x      1 µL  1
RNA                                44 µL  1

In fact, this might be a better way fill the role that "manual mixes" currently have. It's awkward to use manual mixes, because you have to make sure that the mixes still make sense. These kinds of constraints might be a more natural way to express the same thing.

kalekundert commented 2 years ago

I would also need a way to specify that two reagents should be in different mixes, e.g. the primers and the Q5 master mix in a PCR reaction. I don't care if the primers are in one mix or two, but I want them separate from the master mix so I can pipet more than 0.5 µL without wasting tons of valuable reagent.