Class: IlluminaHtp::Requests::HeronTailedRequest
- Inherits:
-
StdLibraryRequest
- Object
- ActiveRecord::Base
- ApplicationRecord
- Request
- CustomerRequest
- Request::LibraryCreation
- StdLibraryRequest
- IlluminaHtp::Requests::HeronTailedRequest
- Includes:
- Request::HasPrimerPanel
- Defined in:
- app/models/illumina_htp/requests/heron_tailed_request.rb
Overview
Class HeronRequest provides a means of tracking Heron Tailed requests
The heron process uses a very similar technique to GBS, however rather than using the primer panel to amplify specific loci, it uses a panel to amplify the entire SARS-CoV-2 genome.
In the tailed process the library is processed in two parallel processes, each of which applies duplicate tags. These two processes are later merged. In order to allow for aliquot de-duplication when this merge occurs, we want the same library id generated for both forks of the process. This is as separate library ids would result in two aliquots in the merged tube, which would violate the uniqueness constraint added to ensure tag uniqueness. In order to achieve this we set the library id upfront. This is achieved by adding it to the aliquot_attributes.
Note: This may cause problems in future if two submissions are processed from the same cherrypicked plate, as both would share library ids.
Constant Summary
Constants included from Metadata
Constants included from StandardNamedScopes
StandardNamedScopes::SORT_FIELDS, StandardNamedScopes::SORT_ORDERS
Instance Method Summary collapse
-
#aliquot_attributes ⇒ Hash
Passed into cloned aliquots at the beginning of a pipeline to set appropriate options.
Methods included from Request::HasPrimerPanel
Methods inherited from StdLibraryRequest
#on_failed, #update_pool_information, #valid_purpose?
Methods inherited from Request::LibraryCreation
fragment_size_details, #on_started, #update_pool_information
Methods included from Request::CustomerResponsibility
Methods inherited from CustomerRequest
#customer_accepts_responsibility!, #generate_create_request_event, #generate_destroy_request_event, #generate_request_event, #update_responsibilities!
Methods inherited from Request
#add_comment, #associated_studies, #cancelable?, #copy, #current_request_event, #customer_accepts_responsibility!, delegate_validator, #detect_descriptor, #eventful_studies, for_study, #format_qc_information, get_all_comments, #has_passed, #lab_events_for_batch, #manifest_processed!, #most_recent_event_named, #next_request_type_id, #next_requests, #next_requests_via_asset, #next_requests_via_submission, number_expected_for_submission_id_and_request_type_id, #previous_failed_requests?, #priority, #product_line, #project=, #project_id=, #ready?, #request_type_updatable?, #return_pending_to_inbox!, #run_events, #source_labware, #study=, #study_id=, #submission_plate_count, #submitted_at, #target_purpose, #target_tube, #update_pool_information, #update_priority, #update_responsibilities!
Methods included from EventfulRecord
#has_many_events, #has_many_lab_events, #has_one_event_with_family
Methods included from Metadata
Methods included from Batch::RequestBehaviour
included, #recycle_from_batch!, #return_for_inbox!, #with_batch_id
Methods included from StandardNamedScopes
Methods included from Commentable
Methods included from AASM::Extensions
Methods included from Uuid::Uuidable
included, #unsaved_uuid!, #uuid
Methods included from Api::RequestIo::Extensions
Methods included from Aliquot::DeprecatedBehaviours::Request
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
#aliquot_attributes ⇒ Hash
Passed into cloned aliquots at the beginning of a pipeline to set appropriate options
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/models/illumina_htp/requests/heron_tailed_request.rb', line 41 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 |