Class: PhiX::Stock
- Inherits:
-
Object
- Object
- PhiX::Stock
- Includes:
- ActiveModel::Model
- Defined in:
- app/models/phi_x/stock.rb
Overview
== PhiX PhiX is a well characterized bacteriophage with a small, known, genome. It is used to provide short DNA sequences which can get added to sequencing lanes for control and calibration purposes.
== Process PhiX samples arrive on site and have tags applied as required. These may be single indexed (i7 only) or dual indexed (i5 & i7) as required. The single and dual indexed tag sets are fixed and are selected from the ‘Control Tag Group 888’ TagGroup.
Library information is filled in on the PhiXesController#show page and one or more library tubes are generated via PhiX::StocksController#create and the Stock factory. These tubes are considered stocks, and get transferred to the sequencing teams.
Subsequently the sequencing team will split the contents of each LibraryTube into a number of SpikedBuffer tubes, adjusting the volume and concentration as required. This is achieved via a separate form on the PhiXesController#show page, followed by PhiX::SpikedBuffersController#create and the SpikedBuffer factory.
Finally, during the processing of a SequencingPipeline the SpikedBuffer barcode is scanned in during the AddSpikedInControlTask. This adds the SpikedBuffer in as a parent of each Lane in the Batch, which in turn ensures the control can be found by batch.xml generation and Api::Messages::FlowcellIO.
== Configuration Configuration and values are stored in config/phi_x.yml tag_group_name: The name of the tag group to use tag_map_id: The default map_id for tags tag_options: Hash of available tag options, indexed by option name. Values are hashes of i5 and i7 oligos. null indicates no tag. default_tag_option: The option which will be initially selected
PhiX::Stock acts as a factory to generate the required library tubes
Instance Attribute Summary collapse
-
#concentration ⇒ Float
The concentration of the created library in nM.
-
#name ⇒ String
The base name for the created library tubes Will be appended with #n to distinguish multiple tubes.
-
#number ⇒ Integer
The number of library tubes to create.
- #study_id ⇒ Integer
-
#tags ⇒ String
The name for the set of tags to apply.
Instance Method Summary collapse
-
#created_stocks ⇒ Array
Returns the stocks that were create as part of #save Will be an empty array if called before the #save method.
-
#save ⇒ Boolean
Generates stocks if the factory is valid, otherwise returns false and does nothing.
Instance Attribute Details
#concentration ⇒ Float
Returns The concentration of the created library in nM.
19 20 21 |
# File 'app/models/phi_x/stock.rb', line 19 def concentration @concentration end |
#name ⇒ String
Returns the base name for the created library tubes Will be appended with #n to distinguish multiple tubes. eg. (‘Tube name #1’, ‘Tube name #2’).
12 13 14 |
# File 'app/models/phi_x/stock.rb', line 12 def name @name end |
#number ⇒ Integer
Returns The number of library tubes to create.
22 23 24 |
# File 'app/models/phi_x/stock.rb', line 22 def number @number end |
#study_id ⇒ Integer
25 26 27 |
# File 'app/models/phi_x/stock.rb', line 25 def study_id @study_id end |
#tags ⇒ String
Returns The name for the set of tags to apply. eg. ‘Single’, ‘Dual’ Valid options are taken from PhiX.tag_option_names.
16 17 18 |
# File 'app/models/phi_x/stock.rb', line 16 def @tags end |
Instance Method Details
#created_stocks ⇒ Array
Returns the stocks that were create as part of #save Will be an empty array if called before the #save method
49 50 51 |
# File 'app/models/phi_x/stock.rb', line 49 def created_stocks @created_stocks || [] end |
#save ⇒ Boolean
Generates stocks if the factory is valid, otherwise returns false and does nothing
37 38 39 40 41 42 |
# File 'app/models/phi_x/stock.rb', line 37 def save return false unless valid? @created_stocks = generate_stocks true end |