Module: TraceVisualization::Algorithm

Includes:
TraceVisualization, Repetitions
Defined in:
lib/trace_visualization/algorithm.rb

Overview

Main algorithm

Constant Summary

Constants included from TraceVisualization

FORBIDDEN_CHARS, TERMINATION_CHAR, VERSION

Class Method Summary collapse

Methods included from Repetitions

char_counter_inc, decode_psy1_result, le_letter, naive, naive_all, psy1, psy1_original

Methods included from TraceVisualization

assert_instance_of, set_default_options

Class Method Details

.process(mapping, options = {}) ⇒ Object

Run main algorithm of approximate repeats processing

Parameters:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/trace_visualization/algorithm.rb', line 16

def self.process(mapping, options = {})
  TraceVisualization.assert_instance_of(mapping, Mapping)
  
  Utils.set_default_options(options, { :positions_min_size => 3, :k => 3 })

  context = Context.new(mapping)

  # First step - calculate strict repetitions
  context.repetitions = Repetitions.psy1(mapping, options[:positions_min_size])
  
  # Second step - iterative process concatenation & incrementation algorithms for approximate repeats processing
  Filter.strict_repetitions_filter(mapping, context, options)
  
  for kk in 1 .. options[:k]
    Concatenation.process(context, { 
      :k => kk,
      :positions_min_size => options[:positions_min_size]
    })
    
    Filter.repetitions_filter(mapping, context, options)
  end
  
  context.repetitions
end