class Scaffolder::Test::Sequence

Public Class Methods

new(options = {}) click to toggle source
# File lib/scaffolder/test/sequence.rb, line 6
def initialize(options = {})
  @options = options
end

Public Instance Methods

initialize_copy(source) click to toggle source
Calls superclass method
# File lib/scaffolder/test/sequence.rb, line 10
def initialize_copy(source)
  super
  @options = @options.dup
end
inserts(arg = nil) click to toggle source
# File lib/scaffolder/test/sequence.rb, line 25
def inserts(arg = nil)
  return @options[:inserts] if arg.nil?
  @options[:inserts] ||= Array.new
  if arg.instance_of?(Array)
   arg.each {|a| @options[:inserts] << a}
  else
    @options[:inserts] << arg
  end
  return self
end
to_fasta() click to toggle source
# File lib/scaffolder/test/sequence.rb, line 47
def to_fasta
  fasta = Bio::Sequence.new(sequence).output(:fasta,:header => name)
  inserts.each_with_index do |insert,i|
    fasta << Bio::Sequence.new(insert[:sequence]).output(:fasta,:header => "insert#{i+1}")
  end if inserts
  fasta.strip
end
to_hash() click to toggle source
# File lib/scaffolder/test/sequence.rb, line 36
def to_hash
  hash = {'source' => name}.merge stringify_keys(@options)
  if @options[:inserts]
    hash['inserts'] = Array.new
    @options[:inserts].each_with_index do |insert,i|
      hash['inserts'] << {'source' => "insert#{i+1}"}.merge(stringify_keys(insert))
    end
  end
  {'sequence' => hash}
end

Private Instance Methods

stringify_keys(hash) click to toggle source
# File lib/scaffolder/test/sequence.rb, line 57
def stringify_keys(hash)
  [:start,:stop,:reverse,:open,:close].inject(Hash.new) do |stringified,key|
    stringified[key.to_s] = hash[key] if hash[key]
    stringified
  end
end