Module: Bioinform::ConversionAlgorithms::PCM2PWMConverter

Defined in:
lib/bioinform/conversion_algorithms/pcm2pwm_converter.rb

Class Method Summary collapse

Class Method Details

.convert(pcm, parameters = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/bioinform/conversion_algorithms/pcm2pwm_converter.rb', line 4

def self.convert(pcm, parameters = {})
  default_parameters = {pseudocount: Math.log(pcm.count),
                        probability: (pcm.probability || [0.25, 0.25, 0.25, 0.25])
                        }
  parameters = default_parameters.merge(parameters)
  probability = parameters[:probability]
  pseudocount = parameters[:pseudocount]
  matrix = pcm.each_position.map do |pos|
    pos.each_index.map do |index|
      Math.log((pos[index] + probability[index] * pseudocount) / (probability[index]*(pcm.count + pseudocount)) )
    end
  end
  PWM.new(pcm.get_parameters.merge(matrix: matrix))
end