Class: Utility::FixedNormalisationCalculator
- Inherits:
-
Object
- Object
- Utility::FixedNormalisationCalculator
- Includes:
- ActiveModel::Model, CommonDilutionCalculations
- Defined in:
- app/models/utility/fixed_normalisation_calculator.rb
Overview
Handles the Computations for Fixed Normalisation plate creation.
Instance Attribute Summary collapse
-
#config ⇒ Object
included
from CommonDilutionCalculations
readonly
Returns the value of attribute config.
Instance Method Summary collapse
-
#compute_vol_source_reqd(sample_conc) ⇒ float
included
from CommonDilutionCalculations
Computes the volume of source material required for normalisation based on the sample concentration and attributes from the purpose configuration (target amount and volume, minimum source volume).
-
#compute_well_amounts(wells) ⇒ Object
Calculates the well amounts (ng) from the well concentrations and a volume multiplication factor.
-
#compute_well_transfers(parent_plate, filtered_wells) ⇒ Object
Compute the well transfers hash from the parent plate.
-
#construct_dest_qc_assay_attributes(child_uuid, transfer_hash) ⇒ array
included
from CommonDilutionCalculations
Constructs the qc_assays collection details for use when writing calculated concentrations for the newly created child plate.
-
#extract_destination_concentrations(transfer_hash) ⇒ hash
included
from CommonDilutionCalculations
Refactor the transfers hash to give destination concentrations.
-
#initialize(config) ⇒ Object
included
from CommonDilutionCalculations
The calculators all use a common configuration structure stored on the plate purpose.
-
#normalisation_details(wells) ⇒ hash
included
from CommonDilutionCalculations
Creates a hash of well normalisation details for a plate used when generating the well transfers and qc assays.
Instance Attribute Details
#config ⇒ Object (readonly) Originally defined in module CommonDilutionCalculations
Returns the value of attribute config.
Instance Method Details
#compute_vol_source_reqd(sample_conc) ⇒ float Originally defined in module CommonDilutionCalculations
Computes the volume of source material required for normalisation based on the sample concentration and attributes from the purpose configuration (target amount and volume, minimum source volume). Includes checks for minimum source volume and rounding for low diluent volumes due to liquid handler robot restrictions.
#compute_well_amounts(wells) ⇒ Object
Calculates the well amounts (ng) from the well concentrations and a volume multiplication factor.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/models/utility/fixed_normalisation_calculator.rb', line 12 def compute_well_amounts(wells) # sort on well coordinate to ensure wells are in plate column order wells .sort_by(&:coordinate) .each_with_object({}) do |well, well_amounts| next if well.aliquots.blank? # check for well concentration value present if well.latest_concentration.blank? errors.add(:base, "Well #{well.location} does not have a concentration, cannot calculate amount in well") next end # concentration recorded is ng per microlitre, multiply by volume to get amount in ng in well well_amounts[well.location] = well.latest_concentration.value.to_f * source_multiplication_factor end end |
#compute_well_transfers(parent_plate, filtered_wells) ⇒ Object
Compute the well transfers hash from the parent plate
31 32 33 34 |
# File 'app/models/utility/fixed_normalisation_calculator.rb', line 31 def compute_well_transfers(parent_plate, filtered_wells) well_amounts = compute_well_amounts(filtered_wells) build_transfers_hash(well_amounts, parent_plate.number_of_rows) end |
#construct_dest_qc_assay_attributes(child_uuid, transfer_hash) ⇒ array Originally defined in module CommonDilutionCalculations
Constructs the qc_assays collection details for use when writing calculated concentrations for the newly created child plate.
#extract_destination_concentrations(transfer_hash) ⇒ hash Originally defined in module CommonDilutionCalculations
Refactor the transfers hash to give destination concentrations
#initialize(config) ⇒ Object Originally defined in module CommonDilutionCalculations
The calculators all use a common configuration structure stored on the plate purpose.
#normalisation_details(wells) ⇒ hash Originally defined in module CommonDilutionCalculations
Creates a hash of well normalisation details for a plate used when generating the well transfers and qc assays.