Class: PlateTemplate
- Inherits:
-
Plate
- Object
- ActiveRecord::Base
- ApplicationRecord
- Asset
- Labware
- Plate
- PlateTemplate
- Includes:
- Lot::Template
- Defined in:
- app/models/plate_template.rb
Overview
Virtual plate used in Cherrypicking and GateKeeper to block out empty wells or layout pre-assigned samples.
Constant Summary
Constants included from Metadata
Instance Attribute Summary
Attributes inherited from Labware
Instance Method Summary collapse
- #add_well_by_map_description(well, map_description) ⇒ Object
- #stamp_to(plate) ⇒ Object
-
#update_params!(details = {}) ⇒ Object
rubocop:todo Metrics/AbcSize.
Methods included from Lot::Template
Methods inherited from Plate
#after_comment_addition, #all_submission_ids, #buffer_required?, #cherrypick_completed, #comments, #compatible_purposes, #convert_to, create_with_barcode!, #details, #find_well_by_name, #generate_barcode, #height, #invalid_positions, #iteration, #maps, #name_for_label, #number_of_blank_samples, #occupied_well_count, #pick_as_control?, #plate_columns, plate_ids_from_requests, #plate_rows, #plate_type, #plate_type=, #priority, #receptacles_with_position, #related_studies, #sanger_barcode=, #scored?, search_for_plates, #state, #stock_plate, #stock_plate?, #stock_wells, #subject_type, #submission_ids, #submission_ids_as_source, #submissions, #team, #unique_positions_on_plate, #update_qc_values_with_parser, #update_volume, #well_hash, #wells_in_column_order, #wells_in_row_order, #width
Methods included from QcFile::Associations
Methods included from Metadata
Methods included from SubmissionPool::Association::Plate
Methods included from Barcode::Barcodeable
#any_barcode_matching?, #barcode_format, #barcode_number, #cgap_barcode, #cgap_barcode=, #external_barcode, #external_barcode=, #external_identifier, #fluidigm_barcode, #fluidigm_barcode=, #foreign_barcode=, #generate_barcode, included, #infinium_barcode, #infinium_barcode=, #prefix, #primary_barcode, #printable_target, #sanger_barcode
Methods included from PlateCreation::CreationChild
Methods included from Plate::PoolingMetadata
Methods included from Plate::FluidigmBehaviour
#apply_fluidigm_data, included, #retrieve_fluidigm_data
Methods included from Asset::Ownership::Owned
Methods included from Transfer::State::PlateState
Methods included from Transfer::Associations
Methods included from Api::PlateIo::Extensions
Methods inherited from Labware
#ancestor_of_purpose, #ancestors_of_purpose, #child, #display_name, #external_identifier, find_by_barcode, find_from_any_barcode, #generate_name, #labware, #labwhere_location, labwhere_locations, #parent, #received_date, #retention_instructions, #role, #scanned_in_date, #source_plate, #source_plates, #spiked_in_buffer, #state, #storage_location
Methods included from SharedBehaviour::Named
Methods included from AssetLink::Associations
Methods included from Uuid::Uuidable
included, #unsaved_uuid!, #uuid
Methods included from Commentable
Methods inherited from Asset
#ancestor_of_purpose, #asset_type_for_request_types, #barcode_number, #compatible_purposes, #contained_samples, #details, #generate_barcode, #get_qc_result_value_for, #has_stock_asset?, #label, #label=, #original_stock_plates, #prefix, #printable?, #printable_target, #register_stock!, #request_types, #type, #update_from_qc
Methods included from EventfulRecord
#has_many_events, #has_many_lab_events, #has_one_event_with_family
Methods included from Event::PlateEvents
#event_date, #fluidigm_stamp_date, #gel_qc_date, #pico_date, #qc_started_date, #sequenom_stamp_date
Methods inherited from ApplicationRecord
alias_association, convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!
Methods included from Squishify
Instance Method Details
#add_well_by_map_description(well, map_description) ⇒ Object
22 23 24 25 26 |
# File 'app/models/plate_template.rb', line 22 def add_well_by_map_description(well, map_description) wells << well well.map = Map.find_by(description: map_description, asset_size: size) well.save! end |
#stamp_to(plate) ⇒ Object
28 29 30 31 32 |
# File 'app/models/plate_template.rb', line 28 def stamp_to(plate) ActiveRecord::Base.transaction do wells.each { |well| plate.wells.located_at(well.map_description).first.aliquots = well.aliquots.map(&:dup) } end end |
#update_params!(details = {}) ⇒ Object
rubocop:todo Metrics/AbcSize
10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/models/plate_template.rb', line 10 def update_params!(details = {}) # rubocop:todo Metrics/AbcSize self.name = details[:name] wells.delete_all self.size = (details[:rows]).to_i * (details[:cols]).to_i save! unless details[:wells].nil? empty_wells = details[:wells].keys empty_wells.each { |well| add_well_by_map_description(Well.create!, well) } end end |