Class: ViralSeq::DrmRegionConfig
- Inherits:
-
Object
- Object
- ViralSeq::DrmRegionConfig
- Defined in:
- lib/viral_seq/drm_region_config.rb
Overview
DRM configuration for each region
Instance Attribute Summary collapse
-
#drm_class ⇒ Object
Returns the value of attribute drm_class.
-
#drm_list ⇒ Object
Returns the value of attribute drm_list.
-
#drm_range ⇒ Object
Returns the value of attribute drm_range.
-
#drm_version ⇒ Object
Returns the value of attribute drm_version.
-
#ref_info ⇒ Object
Returns the value of attribute ref_info.
-
#region ⇒ Object
Returns the value of attribute region.
-
#seq_coord ⇒ Object
Returns the value of attribute seq_coord.
Instance Method Summary collapse
-
#drm_json ⇒ Hash
summarize the DRM information for the output as JSON for the specific version.
-
#get_reading_frame_number ⇒ Integer
determine the reading frame number based on the sequence coordinates.
-
#initialize(drm_version, region, drm_class, drm_range, drm_list, seq_coord, ref_info) ⇒ DrmRegionConfig
constructor
initialize DRM region configuration.
-
#r1_r2_length ⇒ Hash
calculate the length of R1 and R2 based on the sequence coordinates.
Constructor Details
#initialize(drm_version, region, drm_class, drm_range, drm_list, seq_coord, ref_info) ⇒ DrmRegionConfig
initialize DRM region configuration
16 17 18 19 20 21 22 23 24 |
# File 'lib/viral_seq/drm_region_config.rb', line 16 def initialize(drm_version, region, drm_class, drm_range, drm_list, seq_coord, ref_info) @drm_version = drm_version @region = region @drm_class = drm_class @drm_range = drm_range @drm_list = drm_list @seq_coord = seq_coord @ref_info = ref_info end |
Instance Attribute Details
#drm_class ⇒ Object
Returns the value of attribute drm_class.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def drm_class @drm_class end |
#drm_list ⇒ Object
Returns the value of attribute drm_list.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def drm_list @drm_list end |
#drm_range ⇒ Object
Returns the value of attribute drm_range.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def drm_range @drm_range end |
#drm_version ⇒ Object
Returns the value of attribute drm_version.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def drm_version @drm_version end |
#ref_info ⇒ Object
Returns the value of attribute ref_info.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def ref_info @ref_info end |
#region ⇒ Object
Returns the value of attribute region.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def region @region end |
#seq_coord ⇒ Object
Returns the value of attribute seq_coord.
26 27 28 |
# File 'lib/viral_seq/drm_region_config.rb', line 26 def seq_coord @seq_coord end |
Instance Method Details
#drm_json ⇒ Hash
summarize the DRM information for the output as JSON for the specific version
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/viral_seq/drm_region_config.rb', line 30 def drm_json sdrm = self.drm_list json_hash = {} sdrm.each do |drm_class, drms| json_hash[drm_class] = [] drms.each do |pos, muts| mutation = {} mutation[:position] = pos mutation[:wildtypeCodon] = muts[0] mutation[:mutationCodons] = muts[1] json_hash[drm_class] << mutation end end return json_hash end |
#get_reading_frame_number ⇒ Integer
determine the reading frame number based on the sequence coordinates
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/viral_seq/drm_region_config.rb', line 61 def get_reading_frame_number m1 = (self.seq_coord["minimum"] - self.ref_info["ref_coord"][0]) % 3 if m1.zero? n1 = 0 else n1 = 3 - m1 end if seq_coord["gap"] m2 = (self.seq_coord["gap"]["maximum"] + 1 - self.ref_info["ref_coord"][0]) % 3 if m2.zero? n2 = 0 else n2 = 3 - m2 end return [n1, n2] else return [n1] end end |
#r1_r2_length ⇒ Hash
calculate the length of R1 and R2 based on the sequence coordinates
48 49 50 51 52 53 54 55 56 |
# File 'lib/viral_seq/drm_region_config.rb', line 48 def r1_r2_length seq_coord = self.seq_coord return nil unless seq_coord["gap"] r1_length = seq_coord["gap"]["minimum"] - seq_coord["minimum"] r2_length = seq_coord["maximum"] - seq_coord["gap"]["maximum"] return {r1_length: r1_length, r2_length: r2_length} end |