Module: Mspire::Ident::PeptideHit::Qvalue

Defined in:
lib/mspire/ident/peptide_hit/qvalue.rb

Constant Summary collapse

FILE_EXTENSION =
'.phq.tsv'
FILE_DELIMITER =
"\t"
HEADER =
%w(run_id id aaseq charge qvalue)

Class Method Summary collapse

Class Method Details

.from_file(filename) ⇒ Object Also known as: from_phq

returns an array of PeptideHit objects from a phq.tsv



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/mspire/ident/peptide_hit/qvalue.rb', line 35

def from_file(filename)
  searches = Hash.new {|h,id|  h[id] = Mspire::Ident::Search.new(id) }
  peptide_hits = []
  File.open(filename) do |io|
    header = io.readline.chomp.split(FILE_DELIMITER)
    raise "bad headers" unless header == HEADER 
    io.each do |line|
      line.chomp!
      (run_id, id, aaseq, charge, qvalue) = line.split(FILE_DELIMITER)
      ph = Mspire::Ident::PeptideHit.new
      ph.search = searches[run_id]
      ph.id = id; ph.aaseq = aaseq ; ph.charge = charge.to_i ; ph.qvalue = qvalue.to_f
      peptide_hits << ph
    end
  end
  peptide_hits
end

.to_file(filename, hits, qvalues = []) ⇒ Object

writes the peptide hits to a phq.tsv file. qvalues is a parallel array to hits that can provide qvalues if not inherent to the hits returns the filename. Expects each hit to implement #search_id, #id, #aaseq and #charge



24
25
26
27
28
29
30
31
32
# File 'lib/mspire/ident/peptide_hit/qvalue.rb', line 24

def to_file(filename, hits, qvalues=[])
  File.open(filename,'w') do |out|
    out.puts HEADER.join(FILE_DELIMITER)
    hits.zip(qvalues) do |hit, qvalue|
      out.puts [hit.search_id, hit.id, hit.aaseq, hit.charge, qvalue || hit.qvalue].join(FILE_DELIMITER)
    end
  end
  filename
end

.to_phq(base, hits, qvalues = []) ⇒ Object

writes to the file, adding an extension



16
17
18
# File 'lib/mspire/ident/peptide_hit/qvalue.rb', line 16

def to_phq(base, hits, qvalues=[])
  to_file(base + FILE_EXTENSION, hits, qvalues)
end