Module: Bio::Sequence::QualityScore::Phred

Includes:
Converter
Included in:
Fastq::FormatData::FASTQ_ILLUMINA, Fastq::FormatData::FASTQ_SANGER
Defined in:
lib/bio/sequence/quality_score.rb

Overview

Bio::Sequence::QualityScore::Phred is a module having quality calculation methods for the PHRED quality score.

BioRuby internal use only (mainly from Bio::Fastq).

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Converter

#convert_nothing, #convert_scores_from_phred_to_solexa, #convert_scores_from_solexa_to_phred

Class Method Details

.convert_scores_to_solexaObject



135
# File 'lib/bio/sequence/quality_score.rb', line 135

alias convert_scores_to_solexa    convert_scores_from_phred_to_solexa

.p2qObject

Probability to PHRED score conversion.

The values may be truncated or incorrect if overflows/underflows occurred during the calculation.


Arguments:

  • (required) probabilities: (Array containing Float) probabilities

Returns

(Array containing Float) scores



128
129
130
131
132
133
134
# File 'lib/bio/sequence/quality_score.rb', line 128

def phred_p2q(probabilities)
  probabilities.collect do |p|
    p = Float::MIN if p < Float::MIN
    q = -10 * Math.log10(p)
    q.finite? ? q.round : q
  end
end

.q2pObject

PHRED score to probability conversion.


Arguments:

  • (required) scores: (Array containing Integer) scores

Returns

(Array containing Float) probabilities (0<=p<=1)



109
110
111
112
113
114
115
116
117
118
119
# File 'lib/bio/sequence/quality_score.rb', line 109

def phred_q2p(scores)
  scores.collect do |q|
    r = 10 ** (- q / 10.0)
    if r > 1.0 then
      r = 1.0
    #elsif r < 0.0 then
    #  r = 0.0
    end
    r
  end
end

Instance Method Details

#phred_p2q(probabilities) ⇒ Object Also known as: p2q

Probability to PHRED score conversion.

The values may be truncated or incorrect if overflows/underflows occurred during the calculation.


Arguments:

  • (required) probabilities: (Array containing Float) probabilities

Returns

(Array containing Float) scores



121
122
123
124
125
126
127
# File 'lib/bio/sequence/quality_score.rb', line 121

def phred_p2q(probabilities)
  probabilities.collect do |p|
    p = Float::MIN if p < Float::MIN
    q = -10 * Math.log10(p)
    q.finite? ? q.round : q
  end
end

#phred_q2p(scores) ⇒ Object Also known as: q2p

PHRED score to probability conversion.


Arguments:

  • (required) scores: (Array containing Integer) scores

Returns

(Array containing Float) probabilities (0<=p<=1)



98
99
100
101
102
103
104
105
106
107
108
# File 'lib/bio/sequence/quality_score.rb', line 98

def phred_q2p(scores)
  scores.collect do |q|
    r = 10 ** (- q / 10.0)
    if r > 1.0 then
      r = 1.0
    #elsif r < 0.0 then
    #  r = 0.0
    end
    r
  end
end

#quality_score_typeObject

Type of quality scores.


Returns

(Symbol) the type of quality score.



89
90
91
# File 'lib/bio/sequence/quality_score.rb', line 89

def quality_score_type
  :phred
end