Class: SequenceLogo::SequenceWithSNP
- Defined in:
- lib/sequence_logo/data_models/sequence_with_snp.rb
Instance Attribute Summary collapse
-
#allele_variants ⇒ Object
readonly
Returns the value of attribute allele_variants.
-
#left ⇒ Object
readonly
Returns the value of attribute left.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#right ⇒ Object
readonly
Returns the value of attribute right.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(left, allele_variants, right, options = {}) ⇒ SequenceWithSNP
constructor
A new instance of SequenceWithSNP.
- #length ⇒ Object
- #render(canvas_factory) ⇒ Object
- #revcomp ⇒ Object
Constructor Details
#initialize(left, allele_variants, right, options = {}) ⇒ SequenceWithSNP
Returns a new instance of SequenceWithSNP.
7 8 9 10 11 12 13 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 7 def initialize(left, allele_variants, right, = {}) raise unless Sequence.valid_sequence?(left) raise unless Sequence.valid_sequence?(right) raise unless allele_variants.all?{|letter| %w[A C G T].include?(letter.upcase) } @left, @allele_variants, @right = left, allele_variants, right @name = [:name] || (left + '_' + allele_variants.join('-') + '_' + right) end |
Instance Attribute Details
#allele_variants ⇒ Object (readonly)
Returns the value of attribute allele_variants.
6 7 8 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 6 def allele_variants @allele_variants end |
#left ⇒ Object (readonly)
Returns the value of attribute left.
6 7 8 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 6 def left @left end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 6 def name @name end |
#right ⇒ Object (readonly)
Returns the value of attribute right.
6 7 8 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 6 def right @right end |
Class Method Details
.from_string(sequence, options = {}) ⇒ Object
15 16 17 18 19 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 15 def self.from_string(sequence, = {}) left, mid, right = sequence.split(/[\[\]]/) allele_variants = mid.split('/') SequenceWithSNP.new(left, allele_variants, right, ) end |
Instance Method Details
#length ⇒ Object
21 22 23 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 21 def length left.length + 1 + right.length end |
#render(canvas_factory) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 31 def render(canvas_factory) canvas = LogoCanvas.new(canvas_factory) canvas.background(canvas_factory.background_fill) left.each_char{|letter| canvas.add_letter(letter) } canvas.add_position_ordered(snp_position_heights) right.each_char{|letter| canvas.add_letter(letter) } canvas.image end |
#revcomp ⇒ Object
25 26 27 28 29 |
# File 'lib/sequence_logo/data_models/sequence_with_snp.rb', line 25 def revcomp SequenceWithSNP.new(Sequence.revcomp(right), allele_variants.map{|letter| Sequence.complement(letter) }, Sequence.revcomp(left)) end |