Module: Receptacle::DownstreamAliquotsRemoval::PrivateMethods

Defined in:
app/models/receptacle/downstream_aliquots_removal.rb

Overview

Private methods to provide functionality for the mixin

Class Method Summary collapse

Class Method Details

.creation_batches_for_requests(instance) ⇒ Array[Batch]

Get the sequencing creations batches by following the outer requests graph. Supposing this outer requests graph: Library Creation ---> Multiplexing --> Sequencing The path to solve the creation batches is as follows:

  1. Get the submissions from the outer requests that wrap this current node
  2. From each submission, get the multiplexed labware, which is the labware that is the target of a multiplexed request (outer request before sequencing)
  3. From this multiplexed labware, it goes to the next labware created from it (sequencing tube).
  4. For this labware, it access to the creation batches (groups of sequencing requests that will go into a flowcell)
  5. It returns the aggregation of all creation batches from all submissions

Parameters:

  • instance (Receptacle)

    The well we want to obtain creation batche from

Returns:

  • (Array[Batch])

    List of batches



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'app/models/receptacle/downstream_aliquots_removal.rb', line 45

 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

.submissions_for_requests(instance) ⇒ Array[Submission]

Gets the submissions of all outer requests that wrap this well

Parameters:

  • instance (Receptacle)

    The well we want to obtain submissions from

Returns:



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/models/receptacle/downstream_aliquots_removal.rb', line 26

 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