Class: ControlPlate
- Inherits:
-
Plate
- Object
- ActiveRecord::Base
- ApplicationRecord
- Asset
- Labware
- Plate
- ControlPlate
- Defined in:
- app/models/control_plate.rb
Overview
A ControlPlate is a Plate containing control samples Often these controls may be used multiple times as part of Pipeline QC. A Sample with control set to true, does not necessarily enter the pipleine via a ControlPlate.
The main differences control plates show from standard plates is:
- When Cherrypicking via a robot with Robot::Verification::SourceDestControlBeds such as the Hamilton they are asigned a seperate bed to reduce the risk of contamination
Constant Summary
Constants included from Metadata
Instance Attribute Summary
Attributes inherited from Labware
Instance Method Summary collapse
-
#pick_as_control? ⇒ Boolean
When Cherrypicking, especially on the Hamilton, control plates get placed on a seperate bed.
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, #plate_columns, plate_ids_from_requests, #plate_rows, #plate_type, #plate_type=, #priority, #receptacles_with_position, #related_studies, #sanger_barcode=, #scored?, #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 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, map_retention_instructions, #parent, #received_date, #retention_instructions, #role, #scanned_in_date, search_for_count_of_labware, search_for_labware, #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
#pick_as_control? ⇒ Boolean
When Cherrypicking, especially on the Hamilton, control plates get placed on a seperate bed. This is currently set to true. However, as the behaviouir needs to be explicitly enabled in the Hamilton software, we may need to make this conditional in the future.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/models/control_plate.rb', line 15 do # NOTE: The following attribute is not required for Microarray Genotyping. # I think this might be broken and suggests that there should be separate classes for project: one for # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping # that doesn't. include ProjectManager::Associations include BudgetDivision::Associations custom_attribute(:project_cost_code, required: true) custom_attribute(:funding_comments) custom_attribute(:collaborators) custom_attribute(:external_funding_source) custom_attribute(:sequencing_budget_cost_centre) custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS) custom_attribute(:gt_committee_tracking_id) before_validation do |record| record.project_cost_code = nil if record.project_cost_code.blank? record.project_funding_model = nil if record.project_funding_model.blank? end end |