Sha256: 1ef151863099a0992dc76ba5ee8496ecffea47432e32a00bad86549ef3483191

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

#!/usr/bin/env ruby

require 'mspire/mzml'
require 'optparse'

opt = {
  filter_zero_intensity: true,
  retention_times: true,
}
opts = OptionParser.new do |op|
  op.banner = "usage: #{File.basename($0)} <file>.mzML ..."
  op.separator "outputs: <file>.mgf"
  #op.on("--no-filter-zeros", "won't remove values with zero intensity") {|v| opt[:filter_zero_intensity] = false }
  # the default is set in ms/msrun/search.rb -> set_opts
  op.on("--no-retention-times", "won't include RT even if available") {|v| opt[:retention_times] = false }
end

opts.parse!

if ARGV.size == 0
  puts opts
  exit
end

ARGV.each do |file|
  if File.exist?(file)
    Mspire::Mzml.foreach(file).with_index do |spectrum,i|
      next unless spectrum.ms_level > 1
      puts "BEGIN IONS"
      # id, spectrumid, 
      rt = spectrum.retention_time
      title = [i, "id_#{spectrum.id}", "rt_#{rt.round}"].join('.')
      puts "TITLE=#{title}"
      puts "RTINSECONDS=#{rt}" if opt[:retention_times]
      puts "PEPMASS=#{spectrum.precursor_mz}"
      puts "CHARGE=#{spectrum.precursor_charge}+"
      spectrum.each do |mz,int|
        puts [mz, int].join(" ")
      end
      puts "END IONS"
      puts ""
    end
  else
    puts "missing file: #{file} [skipping]"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mspire-0.8.6 script/mzml_to_mgf.rb