Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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
Example #6
0
    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