Class: LibraryType

Inherits:
ApplicationRecord show all
Includes:
SharedBehaviour::Named
Defined in:
app/models/library_type.rb

Overview

Note:

For historical reasons, library type is not a relationship on request_metadata

A library type is an identifier which describes how a library has been produced Whereas RequestType is largely internal to sequencescape, a library type directly reflects the science, and thus has a many to many relationship with request type. LibraryType gets exposed in the multi-lims warehouse, and can affect downstream processing.

Some library types have no request type associated. These may be used by external pipelines, such as Traction, or may be of use exclusively for library manifests.

or on aliquot. This is because library_types used to by hardcoded in the Request class.

Class Method Summary collapse

Methods included from SharedBehaviour::Named

included

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

extended

Class Method Details

.records_in(file_name) ⇒ Object



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

 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