module MS::Noise

Public Instance Methods

noiseify(opts,max_mz) click to toggle source
# File lib/ms/noise.rb, line 8
def noiseify(opts,max_mz)
  # spectra is {rt => [[mzs],[ints]]}
  density = opts[:noise_density]
  max_int = opts[:noiseMaxInt]
  min_int = opts[:noiseMinInt]
  @noise = {}
  r_times = Sim_Spectra.r_times
  count = 0
  prog = Progress.new("Adding noise:")
  num = 0
  total = r_times.size
  step = total/100.0
  r_times.each do |rt|
    if count > step * (num + 1)
      num = (((count/total)*100.0).to_i)
      prog.update(num)
    end
    nmzs = []
    nints = []
    density.times do
      rmz = RThelper.RandomFloat(0.0,max_mz)
      rint = RThelper.RandomFloat(min_int,max_int)
      nmzs<<rmz
      nints<<rint
    end
    @noise[rt] = [nmzs,nints]
    count += 1
  end
  prog.finish!
  return @noise
end
spec_drops(drop_percentage) click to toggle source
# File lib/ms/noise.rb, line 40
def spec_drops(drop_percentage)
  r_times = Sim_Spectra.r_times
  l = r_times.length
  num_drops = drop_percentage * l
  num_drops.to_i.times do 
    r_times.delete_at(rand(l+1))
  end
  return r_times
end