def __init__(self, target_volume, target_concentration, number_designs, stock_concentration): """ Constructor: :param target_volume: The requested volume for the new pool stock sample *in ul*. :type target_volume: positive number, unit ul :param target_concentration: The requested pool concentration for the new pool stock sample *in nM*. :type target_concentration: positive number :param number_designs: The number of designs per pool must be the same for all pools to be created. :type number_designs: positive integer :param stock_concentration: The stock concentration for single designs *in nM*. :type stock_concentration: positive number, unit nM """ self.__target_volume = target_volume self.__target_concentration = target_concentration self.__number_designs = number_designs self.__stock_concentration = stock_concentration self.__adjusted_target_vol = None self.__stock_transfer_vol = None self.__buffer_volume = None self.__min_cybio_transfer_vol = get_min_transfer_volume( PIPETTING_SPECS_NAMES.CYBIO)
def __init__(self, target_volume, target_concentration, number_designs, stock_concentration): """ Constructor: :param target_volume: The requested volume for the new pool stock sample *in ul*. :type target_volume: positive number, unit ul :param target_concentration: The requested pool concentration for the new pool stock sample *in nM*. :type target_concentration: positive number :param number_designs: The number of designs per pool must be the same for all pools to be created. :type number_designs: positive integer :param stock_concentration: The stock concentration for single designs *in nM*. :type stock_concentration: positive number, unit nM """ self.__target_volume = target_volume self.__target_concentration = target_concentration self.__number_designs = number_designs self.__stock_concentration = stock_concentration self.__adjusted_target_vol = None self.__stock_transfer_vol = None self.__buffer_volume = None self.__min_cybio_transfer_vol = get_min_transfer_volume( PIPETTING_SPECS_NAMES.CYBIO)
def calculate_iso_volume(cls, number_target_wells, number_replicates, iso_reservoir_spec, optimem_dil_factor, pipetting_specs): """ Calculates the ISO volume required to fill the given number of target wells (assuming the given number of interplate replicates). :param number_target_wells: The number of target wells in all design racks of an experiment design. :type number_target_wells: :class:`int` :param number_replicates: The number of replicates. :type number_replicates: :class:`int` :param optimem_dil_factor: The optimem dilution factor depends on molecule type or final concentration. :type optimem_dil_factor: positive number :param iso_reservoir_spec: The reservoir specs to be assumed. :type iso_reservoir_spec: :class:`thelma.entities.liquidtransfer.ReservoirSpecs` :return: The ISO volume that should be ordered in the ISO to generate an sufficient amount of mastermix solution. :param pipetting_specs: Defines whether to use a static dead volume or a dynamic (represents Biomek-transfer). :type pipetting_specs: :class:`PipettingSpecs` """ required_volume = cls.\ calculate_mastermix_volume_from_target_well_number( number_target_wells, number_replicates, iso_reservoir_spec, pipetting_specs) iso_volume = required_volume / (cls.REAGENT_MM_DILUTION_FACTOR \ * optimem_dil_factor) min_volume = get_min_transfer_volume(pipetting_specs) if iso_volume < min_volume: iso_volume = min_volume return round_up(iso_volume)
def calculate_iso_volume(cls, number_target_wells, number_replicates, iso_reservoir_spec, optimem_dil_factor, pipetting_specs): """ Calculates the ISO volume required to fill the given number of target wells (assuming the given number of interplate replicates). :param number_target_wells: The number of target wells in all design racks of an experiment design. :type number_target_wells: :class:`int` :param number_replicates: The number of replicates. :type number_replicates: :class:`int` :param optimem_dil_factor: The optimem dilution factor depends on molecule type or final concentration. :type optimem_dil_factor: positive number :param iso_reservoir_spec: The reservoir specs to be assumed. :type iso_reservoir_spec: :class:`thelma.entities.liquidtransfer.ReservoirSpecs` :return: The ISO volume that should be ordered in the ISO to generate an sufficient amount of mastermix solution. :param pipetting_specs: Defines whether to use a static dead volume or a dynamic (represents Biomek-transfer). :type pipetting_specs: :class:`PipettingSpecs` """ required_volume = cls.\ calculate_mastermix_volume_from_target_well_number( number_target_wells, number_replicates, iso_reservoir_spec, pipetting_specs) iso_volume = required_volume / (cls.REAGENT_MM_DILUTION_FACTOR \ * optimem_dil_factor) min_volume = get_min_transfer_volume(pipetting_specs) if iso_volume < min_volume: iso_volume = min_volume return round_up(iso_volume)
def get_critical_iso_concentration(cls, stock_concentration): """ Returns the critical ISO concentration in ul. ISO concentrations that are larger than this value might cause slight inaccuracies in the concentration when using the Biomek (due to the transfer volume step width of 0.1 ul). :param stock_concentration: The stock concentration for molecule design pool in nM. :type stock_concentration: positive number :return: critical ISO concentration in ul. """ rs = get_reservoir_specs_standard_96() std_96_min_dead_vol = rs.min_dead_volume * VOLUME_CONVERSION_FACTOR min_biomek_transfer_vol = get_min_transfer_volume( PIPETTING_SPECS_NAMES.BIOMEK) crit_iso_conc = stock_concentration \ / ((std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME) \ / (std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME \ - min_biomek_transfer_vol)) return crit_iso_conc
def get_critical_iso_concentration(cls, stock_concentration): """ Returns the critical ISO concentration in ul. ISO concentrations that are larger than this value might cause slight inaccuracies in the concentration when using the Biomek (due to the transfer volume step width of 0.1 ul). :param stock_concentration: The stock concentration for molecule design pool in nM. :type stock_concentration: positive number :return: critical ISO concentration in ul. """ rs = get_reservoir_specs_standard_96() std_96_min_dead_vol = rs.min_dead_volume * VOLUME_CONVERSION_FACTOR min_biomek_transfer_vol = get_min_transfer_volume( PIPETTING_SPECS_NAMES.BIOMEK) crit_iso_conc = stock_concentration \ / ((std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME) \ / (std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME \ - min_biomek_transfer_vol)) return crit_iso_conc