-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
splitting mixes #22
Comments
Release notesWe have added the function The advantages of this, compared to manually creating the larger mix:
Usage: from alhambra_mixes import Mix, FixedConcentration, FixedVolume, Strand, split_mix
# create mix of staples to be used in downstream mix
staples = [Strand(f'stap{i}', concentration='1uM') for i in range(10)]
staple_mix = Mix(
actions = [FixedConcentration(components=staples, fixed_concentration='100 nM')],
name='staple mix',
)
# describe other components in mix
m13 = Strand('m13 100nM', concentration='100nM')
buffer_10x = Component(name='10x buffer', concentration='100 mM')
# describe single mix desired for each individual "small" test tube
mix = Mix(
actions=[
FixedVolume(components=[buffer_10x], fixed_volume=f'10 uL'),
FixedConcentration(components=[m13], fixed_concentration=f'1 nM'),
FixedConcentration(components=[staple_mix], fixed_concentration=f'10 nM'),
],
name='master mix',
fixed_total_volume=f"100 uL",
)
# call split_mix to create "large" mix from which smaller mixes can be aliquoted
sm = split_mix(mix=mix, num_tubes=5, excess=0.1)
print(sm.instructions()) This should print the following:
Note that we require 500 µL total, but because excess was 0.1 (10%), we have 550 µL total, to guarantee that even with pipetting error on the first 4 aliquots, there will still be more than 100 µL remaining for the 5th aliquot. The full function API (as of this writing) is A "split mix" is a The Parameters mix: The :any: num_tubes: The number of test tubes into which to split the large mix. excess: A fraction (between 0 and 1) indicating how much extra of the large mix to make. This is useful when For example, if the total volume is 100 uL and Note: using Returns: A "large" mix, from which |
closes #22: added `split_mix` function for splitting a single large mix into several smaller mixes
Sometimes one wants to make a single large mix and split it across several test tubes. Have a way to specify this where one simply indicates the desired volumes/concentrations in each individual test tube, as well as the number of them (and possibly their names), and it should automatically figure out the volumes to mix in the large Mix, and print instructions for that and for splitting/aliquotting into several individual test tubes.
It should also support having a small excess (say default of 5% extra) in case there are a large number of test tubes, so that the final one does not suffer from the volume being significantly lower due to pipetting error on the other aliquots.
The text was updated successfully, but these errors were encountered: