Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3.4
- """
- Calculate titration volumes from concentrate.
- Pariksheet Nanda <omsai@member.fsf.org> 2015
- License: Public Domain
- """
- from argparse import ArgumentParser
- if __name__ == '__main__':
- parser = ArgumentParser(
- #'titer',
- description='Calculate titration volumes from concentrate.'
- )
- parser.add_argument(
- 'concentrate_density',
- type=float,
- help='original solution density (in 10^4 cells / ml).'
- )
- parser.add_argument(
- '-t',
- '--diluted-density',
- type=float,
- default=10.0,
- help='required solution density (default: 10x10^4 cells/ml).'
- )
- parser.add_argument(
- '-v',
- '--media-volume',
- type=float,
- default=10.0,
- help='final volume of media only (default: 10 ml).'
- )
- args = parser.parse_args()
- if args.concentrate_density < args.diluted_density:
- raise ValueError("Stock solution density {0} cannot be less than diluted {1}.".format(args.concentrate_density, args.diluted_density))
- concentrate_sub_volume = (
- args.diluted_density * args.media_volume
- / (args.concentrate_density - args.diluted_density)
- )
- """
- We derive the above equation as follows:
- c1 * v1 = c2 * v2
- Where 1 = concentrate solution and 2 = diluted solution.
- We need to solve for v1:
- c1 * v1 = c2 * (v_media + v1)
- c1 * v1 = c2 * v_media + c2 * v1
- c1 * v1 - c2 * v1 = c2 * v_media
- v1 * (c1 - c2) = c2 * v_media
- v1 = c2 * v_media / (c1 - c2)
- """
- print('Add {0} ul of stock to {1} ml of media, to get a dilution of {2} x 10^4 cells/ml using a concentrate density of {3} x 10^4 cells/ml'.format(
- int(concentrate_sub_volume * 1000),
- args.media_volume,
- args.diluted_density,
- args.concentrate_density,
- ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement