Sha256: 344f11baa03f4894a65769970c1a23e0ba0d1c707db227012c9ce1f2c2f2243b

Contents?: true

Size: 958 Bytes

Versions: 8

Compression:

Stored size: 958 Bytes

Contents

#!/usr/bin/ruby

require 'rexml/document'

if ARGV.size == 0
  puts "usage: #{File.basename(__FILE__)} <file>-prot.xml ..."
  puts "outputs a .csv file"
  exit
end

class Protein
  attr_accessor :name, :pi, :ni
  def initialize(name, pi, ni)
    @name, @pi, @ni = name, pi, ni
  end
end

class Listener
  attr_accessor :proteins

  def initialize
    @proteins = []
  end

  def tag_start(name, attrs)
    if name == "protein" 
      protein = Protein.new( attrs['protein_name'], attrs['probability'].to_f, attrs['total_number_peptides'].to_i) 
      @proteins.push( protein )
    end
  end

  def method_missing(*args) ; end

end

ARGV.each do |file|
  File.open("output.csv", 'w') do |out|
    listener = Listener.new
    REXML::Document.parse_stream(File.new(file), listener)
    listener.proteins.sort_by {|prot| [prot.pi, prot.ni, prot.name] }.reverse.each do |protein|
      out.puts [protein.name, protein.pi, protein.ni].join("\t")
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mspire-0.4.9 script/get_apex_values_rexml.rb
mspire-0.3.0 script/get_apex_values_rexml.rb
mspire-0.3.1 script/get_apex_values_rexml.rb
mspire-0.3.9 script/get_apex_values_rexml.rb
mspire-0.4.4 script/get_apex_values_rexml.rb
mspire-0.4.2 script/get_apex_values_rexml.rb
mspire-0.4.5 script/get_apex_values_rexml.rb
mspire-0.4.7 script/get_apex_values_rexml.rb