Class: IlluminaHtp::Requests::HeronTailedRequest

Inherits:
StdLibraryRequest show all
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.

Author:

  • Genome Research Ltd.

Constant Summary

Constants included from Metadata

Metadata::SECTION_FIELDS

Constants included from Request::Statemachine

Request::Statemachine::ACTIVE, Request::Statemachine::COMPLETED_STATE, Request::Statemachine::INACTIVE, Request::Statemachine::OPENED_STATE, Request::Statemachine::SORT_ORDER

Constants included from StandardNamedScopes

StandardNamedScopes::SORT_FIELDS, StandardNamedScopes::SORT_ORDERS

Instance Method Summary collapse

Methods included from Request::HasPrimerPanel

#update_pool_information

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

included

Methods inherited from CustomerRequest

#customer_accepts_responsibility!, #generate_create_request_event, #generate_destroy_request_event, #generate_request_event, #update_responsibilities!

Methods inherited from Request

accessioning_required?, #add_comment, #associated_studies, #cancelable?, #copy, #current_request_event, #customer_accepts_responsibility!, delegate_validator, #detect_descriptor, #eventful_studies, for_study, #format_qc_information, #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 Request::Statistics

#asset_statistics, #progress_statistics, #sample_statistics_new

Methods included from EventfulRecord

#has_many_events, #has_many_lab_events, #has_one_event_with_family

Methods included from Metadata

#has_metadata

Methods included from Batch::RequestBehaviour

included, #recycle_from_batch!, #return_for_inbox!, #with_batch_id

Methods included from Request::Statemachine

#cancellable?, #change_decision!, #closed?, #failed_downstream!, #failed_upstream!, #finished?, #on_blocked, #on_cancelled, #on_failed, #on_hold, #on_passed, #on_started, #open?, #terminated?, #transfer_aliquots

Methods included from StandardNamedScopes

included

Methods included from Commentable

#after_comment_addition

Methods included from AASM::Extensions

#transition_to

Methods included from Uuid::Uuidable

included, #unsaved_uuid!, #uuid

Methods included from Api::RequestIO::Extensions

included, #json_root

Methods included from Aliquot::DeprecatedBehaviours::Request

#tag, #tag_number

Methods inherited from ApplicationRecord

convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!

Methods included from Squishify

extended

Instance Method Details

#aliquot_attributesHash

Passed into cloned aliquots at the beginning of a pipeline to set appropriate options

Returns:

  • (Hash)

    A hash of aliquot attributes


41
42
43
44
45
46
47
48
49
50
51
# File 'app/models/illumina_htp/requests/heron_tailed_request.rb', line 41

def aliquot_attributes
  {
    study_id: initial_study_id,
    project_id: initial_project_id,
    library_type: library_type,
    insert_size: insert_size,
    primer_panel_id: primer_panel_id,
    library_id: asset_id,
    request_id: id
  }
end