Skip to content

Commit

Permalink
changing namespace to mspire from ms
Browse files Browse the repository at this point in the history
  • Loading branch information
jtprince committed Apr 13, 2012
1 parent 24743c5 commit 576c317
Show file tree
Hide file tree
Showing 16 changed files with 81 additions and 81 deletions.
2 changes: 1 addition & 1 deletion lib/ms/lipid.rb → lib/mspire/lipid.rb
@@ -1,5 +1,5 @@

module MS
module Mspire
class Lipid
def self.members
[:lm_id,:common_name,:systematic_name,:formula,:mass,:category,:main_class,:sub_class]
Expand Down
6 changes: 3 additions & 3 deletions lib/ms/lipid/ion.rb → lib/mspire/lipid/ion.rb
@@ -1,12 +1,12 @@

module MS
module Mspire
class Lipid
# a lipid with modifications (typically the mods give it a charge so that
# it can be seen in the mass spec)
class Ion
# an MS::Lipid object
# an Mspire::Lipid object
attr_accessor :lipid
# an MS::Lipid::Modifications object
# an Mspire::Lipid::Modifications object
attr_accessor :modifications
# the key attribute of a query

Expand Down
@@ -1,6 +1,6 @@
require 'ms/mass'
require 'mspire/mass'

module MS
module Mspire
class Lipid


Expand All @@ -27,9 +27,9 @@ def self.formula_and_charge(string)
# electron is added. If gain is false, then the mass diff will be
# negative.
def self.massdiff(formula, charge, gain=true)
MS::Mass.formula_to_exact_mass(formula)
massdiff = MS::Mass.formula_to_exact_mass(formula)
massdiff -= (charge * MS::Mass::ELECTRON) # + charge subtracts, - charge adds
Mspire::Mass.formula_to_exact_mass(formula)
massdiff = Mspire::Mass.formula_to_exact_mass(formula)
massdiff -= (charge * Mspire::Mass::ELECTRON) # + charge subtracts, - charge adds
massdiff = -massdiff unless gain
massdiff
end
Expand All @@ -50,7 +50,7 @@ def self.massdiff(formula, charge, gain=true)
:water => 0,
}

# determined by running formulas through MS::Mass.massdiff
# determined by running formulas through Mspire::Mass.massdiff
MASSDIFFS = {}
FORMULAS.each do |name, formula|
MASSDIFFS[name] = self.massdiff(formula, CHARGE[name])
Expand Down
26 changes: 13 additions & 13 deletions lib/ms/lipid/search.rb → lib/mspire/lipid/search.rb
@@ -1,12 +1,12 @@
require 'ms/spectrum'
require 'mspire/spectrum'
require 'rserve/simpler' # TODO: move to integrated interface with rserve when available
require 'core_ext/array/in_groups'
require 'ms/lipid/search/hit'
require 'ms/lipid/search/bin'
require 'ms/lipid/modification'
require 'ms/lipid/search/probability_distribution'
require 'mspire/lipid/search/hit'
require 'mspire/lipid/search/bin'
require 'mspire/lipid/modification'
require 'mspire/lipid/search/probability_distribution'

module MS
module Mspire
class Lipid
class Search
STANDARD_MODIFICATIONS = {
Expand All @@ -32,11 +32,11 @@ class Search
# true
def self.generate_simple_queries(lipids, mods=STANDARD_MODIFICATIONS, gain_and_loss=false)
possible_lipids = []
real_mods_and_cnts = mods.map {|name, cnts| [MS::Lipid::Modification.new(name), cnts] }
real_mods_and_cnts = mods.map {|name, cnts| [Mspire::Lipid::Modification.new(name), cnts] }
# one of each
real_mods_and_cnts.each do |mod, counts|
counts.each do |cnt|
possible_lipids << MS::Lipid::Search::Query.new(lipid, Array.new(cnt, mod))
possible_lipids << Mspire::Lipid::Search::Query.new(lipid, Array.new(cnt, mod))
end
end
if gain_and_loss
Expand All @@ -52,7 +52,7 @@ def self.generate_simple_queries(lipids, mods=STANDARD_MODIFICATIONS, gain_and_l
self.new(possible_lipids)
end

# ions are MS::Lipid::Ion objects
# ions are Mspire::Lipid::Ion objects
# each one should give a non-nil m/z value
def initialize(ions=[], opts={})
@options = STANDARD_SEARCH.merge(opts)
Expand Down Expand Up @@ -145,7 +145,7 @@ def create_db_isobar_spectrum(ions)
mzs = [] ; query_groups = []
pairs = ions.group_by(&:mz).sort_by(&:first)
pairs.each {|mz, ar| mzs << mz ; query_groups << ar }
MS::Spectrum.new([mzs, query_groups])
Mspire::Spectrum.new([mzs, query_groups])
end

# use_ppm uses ppm or amu if false
Expand Down Expand Up @@ -185,15 +185,15 @@ def create_search_bins(db_isobar_spectrum, min_n_per_bin)
raise 'I think you need some data in your query spectrum!'
when 1
group = groups.first
[ MS::Lipid::Search::Bin.new( Range.new(group.first.first, group.last.first), db_isobar_spectrum ) ]
[ Mspire::Lipid::Search::Bin.new( Range.new(group.first.first, group.last.first), db_isobar_spectrum ) ]
else
search_bins = groups.each_cons(2).map do |points1, points2|
bin = MS::Lipid::Search::Bin.new( Range.new(points1.first.first, points2.first.first, true), db_isobar_spectrum )
bin = Mspire::Lipid::Search::Bin.new( Range.new(points1.first.first, points2.first.first, true), db_isobar_spectrum )
prev = points2
bin
end
_range = Range.new(prev.first.first, prev.last.first)
search_bins << MS::Lipid::Search::Bin.new(_range, db_isobar_spectrum) # inclusive
search_bins << Mspire::Lipid::Search::Bin.new(_range, db_isobar_spectrum) # inclusive
end
end
end
Expand Down
8 changes: 4 additions & 4 deletions lib/ms/lipid/search/bin.rb → lib/mspire/lipid/search/bin.rb
@@ -1,14 +1,14 @@
require 'bin'
require 'mspire/bin'

module MS
module Mspire
class Lipid
class Search

# A Search::Bin is a range that contains the *entire* query spectrum
# (not just the portion covered by the range). the query spectrum, and
# a ProbabilityDistribution -- the probability that a peak's delta to
# nearest peak is that small by chance.
class Bin < ::Bin
class Bin < Mspire::Bin
# the intensity value of the query spectrum should be a query
attr_accessor :db_spectrum
attr_accessor :probability_distribution
Expand All @@ -22,7 +22,7 @@ def <<(query)
@data << query
end

# returns the nearest num_hits MS::Lipid::Search::Hits sorted by delta
# returns the nearest num_hits Mspire::Lipid::Search::Hits sorted by delta
# [with tie going to the lower m/z]
# searches all queries and removes them from the data queue
def queries_to_hit_groups!(num_hits=1)
Expand Down
@@ -1,5 +1,5 @@

module MS
module Mspire
class Lipid
class Search
# this is a group of Lipid::Ion objects that all have the same (or
Expand Down
@@ -1,5 +1,5 @@

module MS
module Mspire
class Lipid
class Search
class Hit
Expand Down
@@ -1,5 +1,5 @@

module MS
module Mspire
class Lipid
class Search
class ProbabilityDistribution
Expand Down
@@ -1,7 +1,7 @@



module MS
module Mspire
class Lipid
class Search
class Query
Expand Down
12 changes: 6 additions & 6 deletions lib/ms/lipid_maps.rb → lib/mspire/lipid_maps.rb
@@ -1,7 +1,7 @@
require 'ms/lipid'
require 'ms/mass'
require 'mspire/lipid'
require 'mspire/mass'

module MS
module Mspire
module LipidMaps
# returns an array of Lipids
# if high_res_mass is true (default), then the formula is used to calculate a higher
Expand All @@ -15,11 +15,11 @@ def self.parse_file(lipidmaps_tsv, high_res_mass=true, skip_clas_defs=true)
nil
else
if seen_first_line
pieces[4] = MS::Mass.formula_to_exact_mass(pieces[3]) if high_res_mass
l = MS::Lipid.new *pieces
pieces[4] = Mspire::Mass.formula_to_exact_mass(pieces[3]) if high_res_mass
l = Mspire::Lipid.new *pieces
else
seen_first_line = true
warn "lipidmaps column headers are not right!" unless pieces.map(&:downcase) == MS::Lipid.members.map(&:to_s)
warn "lipidmaps column headers are not right!" unless pieces.map(&:downcase) == Mspire::Lipid.members.map(&:to_s)
nil
end
end
Expand Down
23 changes: 0 additions & 23 deletions spec/ms/lipid/ion_spec.rb

This file was deleted.

23 changes: 23 additions & 0 deletions spec/mspire/lipid/ion_spec.rb
@@ -0,0 +1,23 @@
require 'spec_helper'


require 'mspire/lipid'
require 'mspire/lipid/modification'
require 'mspire/lipid/ion'

describe Mspire::Lipid::Ion do
before do
lipid = Mspire::Lipid.new
lipid.mass = 300.2
proton = Mspire::Lipid::Modification.new(:proton)
h2o_loss = Mspire::Lipid::Modification.new(:water, :loss => true)
@plus1 = Mspire::Lipid::Ion.new(lipid, [proton, h2o_loss])
@plus2 = Mspire::Lipid::Ion.new(lipid, [proton, proton, h2o_loss])
end

it 'calculates the correct m/z' do
@plus1.mz.should be_within(1e5).of(283.196711735)
@plus2.mz.should be_within(1e5).of(142.101994085)
end

end
@@ -1,9 +1,9 @@
require 'spec_helper'

require 'ms/lipid/modification'
require 'mspire/lipid/modification'

describe MS::Lipid::Modification do
Mod = MS::Lipid::Modification
describe Mspire::Lipid::Modification do
Mod = Mspire::Lipid::Modification

it 'can create common mods easily' do
# water loss
Expand Down Expand Up @@ -35,7 +35,7 @@

mymod.formula = 'CH4'
mymod.charge = 2
mymod.massdiff = MS::Lipid::Modification.massdiff(mymod.formula, mymod.charge)
mymod.massdiff = Mspire::Lipid::Modification.massdiff(mymod.formula, mymod.charge)
mymod.massdiff.should be_within(1e4).of(16.030202)
end
end
28 changes: 14 additions & 14 deletions spec/ms/lipid/search_spec.rb → spec/mspire/lipid/search_spec.rb
@@ -1,21 +1,21 @@
require 'spec_helper'

require 'ms/lipid_maps'
require 'ms/lipid/search'
require 'ms/lipid/search/query'
require 'ms/lipid/modification'
require 'mspire/lipid_maps'
require 'mspire/lipid/search'
require 'mspire/lipid/search/query'
require 'mspire/lipid/modification'

describe MS::Lipid::Search do
describe Mspire::Lipid::Search do
before do
@proton = MS::Lipid::Modification.new(:proton)
@h2o_loss = MS::Lipid::Modification.new(:water, :loss => true)
@proton = Mspire::Lipid::Modification.new(:proton)
@h2o_loss = Mspire::Lipid::Modification.new(:water, :loss => true)
end
describe 'searching a section of lipid maps' do
before do
@lipids = MS::LipidMaps.parse_file(TESTFILES + '/lipidmaps_short.tsv')
@lipids = Mspire::LipidMaps.parse_file(TESTFILES + '/lipidmaps_short.tsv')
@ions = @lipids.map do |lipid|
[[@proton], [@proton, @h2o_loss]].map do |mods|
MS::Lipid::Ion.new(lipid, mods)
Mspire::Lipid::Ion.new(lipid, mods)
end
end.flatten(1)
@samples = Hash[ {
Expand All @@ -27,7 +27,7 @@
[120, 220, 120, 220, 120]],
:sample4 => [[187.157, 396.20, 244.30, 618.22, 933.01],
[30, 33, 38, 99, 22]],
}.map {|key,data| [key, MS::Spectrum.new(data)] } ]
}.map {|key,data| [key, Mspire::Spectrum.new(data)] } ]
@pretend_search_mzs = [187.157, 396.20, 244.30, 618.22, 933.01]
end

Expand All @@ -44,7 +44,7 @@
end

xit 'searches mz values' do
searcher = MS::Lipid::Search.new(@ions, :query_min_count_per_bin => 8, :num_rand_samples_per_bin => 1000, :ppm => false)
searcher = Mspire::Lipid::Search.new(@ions, :query_min_count_per_bin => 8, :num_rand_samples_per_bin => 1000, :ppm => false)
num_nearest_hits = 3
(hit_groups, qvals) = searcher.search(@pretend_search_mzs, 3)
p hit_groups.map(&:first).map(&:pvalue)
Expand All @@ -56,17 +56,17 @@
before do
# this will be specific to your install since it's not part of install
path_to_lipidmaps_db = "#{ENV['HOME']}/tmp/tamil/lipidmaps_20120103_classes_1_2_3_4_5_6_7_8.exact_mass.tsv"
@lipids = MS::LipidMaps.parse_file(path_to_lipidmaps_db)
@lipids = Mspire::LipidMaps.parse_file(path_to_lipidmaps_db)
@ions = @lipids.map do |lipid|
[[@proton], [@proton, @proton], [@proton, @h2o_loss]].map do |mods|
MS::Lipid::Search::Query.new(lipid, mods)
Mspire::Lipid::Search::Query.new(lipid, mods)
end
end.flatten(1)
@pretend_search_mzs = [187.157, 396.20, 244.30, 618.22, 933.01]
end

it 'returns hit groups parallel with input m/zs' do
searcher = MS::Lipid::Search.new(@ions, :query_min_count_per_bin => 1000, :ppm => false)
searcher = Mspire::Lipid::Search.new(@ions, :query_min_count_per_bin => 1000, :ppm => false)
hit_groups = searcher.search(@pretend_search_mzs, 3)
best_hits = hit_groups.map(&:best_hit)
best_hits.map {|hit| hit.observed_mz }.should == @pretend_search_mzs
Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions spec/ms/lipid_spec.rb → spec/mspire/lipid_spec.rb
@@ -1,15 +1,15 @@
require 'spec_helper'

require 'ms/lipid'
require 'mspire/lipid'

describe MS::Lipid do
describe Mspire::Lipid do

before do
@data = ['LMFA00000007', 'n-decanohydroxamic acid', 'N-hydroxydecanamide', 'C10H21NO2', 187.16, 'Fatty Acyls [FA]', 'Other Fatty Acyls [FA00]']
end

it 'can be initialized with an array' do
lipid = MS::Lipid.new(*@data)
lipid = Mspire::Lipid.new(*@data)
lipid.mass.should == @data[4]
lipid.sub_class.should == nil
end
Expand Down

0 comments on commit 576c317

Please sign in to comment.