Class: SequenceLogo::Sequence
- Defined in:
- lib/sequence_logo/data_models/sequence.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#sequence ⇒ Object
readonly
Returns the value of attribute sequence.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(sequence, options = {}) ⇒ Sequence
constructor
A new instance of Sequence.
- #length ⇒ Object
- #render(canvas_factory) ⇒ Object
- #revcomp ⇒ Object
Constructor Details
#initialize(sequence, options = {}) ⇒ Sequence
Returns a new instance of Sequence.
6 7 8 9 10 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 6 def initialize(sequence, = {}) raise 'Wrong sequence' unless Sequence.valid_sequence?(sequence) @sequence = sequence @name = [:name] || sequence end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
5 6 7 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 5 def name @name end |
#sequence ⇒ Object (readonly)
Returns the value of attribute sequence.
5 6 7 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 5 def sequence @sequence end |
Class Method Details
.complement(sequence) ⇒ Object
29 30 31 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 29 def self.complement(sequence) sequence.tr('acgtACGT', 'tgcaTGCA') end |
.revcomp(sequence) ⇒ Object
32 33 34 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 32 def self.revcomp(sequence) complement(sequence).reverse end |
.valid_sequence?(sequence) ⇒ Boolean
36 37 38 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 36 def self.valid_sequence?(sequence) sequence.match /\A[acgt]+\z/i end |
Instance Method Details
#length ⇒ Object
12 13 14 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 12 def length sequence.length end |
#render(canvas_factory) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 20 def render(canvas_factory) canvas = LogoCanvas.new(canvas_factory) canvas.background(Magick::HatchFill.new('white', 'white')) sequence.each_char do |letter| canvas.add_letter(letter) end canvas.image end |
#revcomp ⇒ Object
16 17 18 |
# File 'lib/sequence_logo/data_models/sequence.rb', line 16 def revcomp Sequence.new(Sequence.revcomp(sequence), name: name) end |