ms-sequest 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
data/History CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.0.13 / 2010-08-16
2
+
3
+ * compatible with ruby 1.9
4
+ * simplified Rakefile, ditching efforts at gh-pages converter for now
5
+ * removed dependency on Tap
6
+
1
7
  == 0.0.12 / 2010-01-01
2
8
 
3
9
  * moved over to jeweler and tests to bacon (spec/more)
data/README.rdoc CHANGED
@@ -13,8 +13,10 @@ Can read and convert Bioworks Sequest Results Files (SRF).
13
13
 
14
14
  Conversions (see api for options):
15
15
 
16
+ require 'ms/sequest/srf/sqt' # require this in addition to 'ms/sequest/srf'
16
17
  srf.to_sqt # (outputs a file) -> file.sqt
17
18
 
19
+ require 'ms/sequest/srf/search' # require this in addition to 'ms/sequest/srf'
18
20
  srf.to_mgf # (outputs a file) -> file.mgf
19
21
  srf.to_dta # (outputs a dir) -> file
20
22
  srf.to_dta("file.tgz", :tgz) # on the fly tgz (requires archive-tar-minitar)
data/Rakefile CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  require 'rubygems'
3
2
  require 'rake'
4
3
  require 'jeweler'
@@ -6,8 +5,6 @@ require 'rake/testtask'
6
5
  require 'rcov/rcovtask'
7
6
 
8
7
  NAME = "ms-sequest"
9
- WEBSITE_BASE = "website"
10
- WEBSITE_OUTPUT = WEBSITE_BASE + "/output"
11
8
 
12
9
  gemspec = Gem::Specification.new do |s|
13
10
  s.name = NAME
@@ -20,13 +17,11 @@ gemspec = Gem::Specification.new do |s|
20
17
 
21
18
  s.add_dependency("arrayclass", ">= 0.1.0")
22
19
  s.add_dependency("ms-core", ">= 0.0.2")
23
- s.add_dependency("tap", ">= 0.17.1")
24
- s.add_dependency("ms-fasta", ">= 0.2.3")
20
+ s.add_dependency("ms-fasta", ">= 0.4.1")
25
21
 
26
22
  s.add_development_dependency("ms-testdata", ">= 0.18.0")
27
- s.add_development_dependency("spec/more")
23
+ s.add_development_dependency("spec-more")
28
24
  end
29
-
30
25
  Jeweler::Tasks.new(gemspec)
31
26
 
32
27
  Rake::TestTask.new(:spec) do |t|
@@ -46,65 +41,5 @@ Rcov::RcovTask.new do |spec|
46
41
  spec.verbose = true
47
42
  end
48
43
 
49
-
50
- def rdoc_redirect(base_rdoc_output_dir, package_website_page, version)
51
- content = %Q{
52
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
53
- <html><head><title>mspire: } + NAME + %Q{rdoc</title>
54
- <meta http-equiv="REFRESH" content="0;url=#{package_website_page}/rdoc/#{version}/">
55
- </head> </html>
56
- }
57
- FileUtils.mkpath(base_rdoc_output_dir)
58
- File.open("#{base_rdoc_output_dir}/index.html", 'w') {|out| out.print content }
59
- end
60
-
61
- require 'rake/rdoctask'
62
- Rake::RDocTask.new do |rdoc|
63
- base_rdoc_output_dir = WEBSITE_OUTPUT + '/rdoc'
64
- version = File.read('VERSION')
65
- rdoc.rdoc_dir = base_rdoc_output_dir + "/#{version}"
66
- rdoc.title = NAME + ' ' + version
67
- rdoc.rdoc_files.include('README*')
68
- rdoc.rdoc_files.include('lib/**/*.rb')
69
- end
70
-
71
- task :create_redirect do
72
- base_rdoc_output_dir = WEBSITE_OUTPUT + '/rdoc'
73
- rdoc_redirect(base_rdoc_output_dir, gemspec.homepage,version)
74
- end
75
-
76
- task :rdoc => :create_redirect
77
-
78
- namespace :website do
79
- desc "checkout and configure the gh-pages submodule"
80
- task :init do
81
- if File.exist?(WEBSITE_OUTPUT + "/.git")
82
- puts "!! not doing anything, #{WEBSITE_OUTPUT + "/.git"} already exists !!"
83
- else
84
-
85
- puts "(not sure why this won't work programmatically)"
86
- puts "################################################"
87
- puts "[Execute these commands]"
88
- puts "################################################"
89
- puts "git submodule init"
90
- puts "git submodule update"
91
- puts "pushd #{WEBSITE_OUTPUT}"
92
- puts "git co --track -b gh-pages origin/gh-pages ;"
93
- puts "popd"
94
- puts "################################################"
95
-
96
- # not sure why this won't work!
97
- #%x{git submodule init}
98
- #%x{git submodule update}
99
- #Dir.chdir(WEBSITE_OUTPUT) do
100
- # %x{git co --track -b gh-pages origin/gh-pages ;}
101
- #end
102
- end
103
- end
104
- end
105
-
106
44
  task :default => :spec
107
45
 
108
- task :build => :gemspec
109
-
110
- # credit: Rakefile modeled after Jeweler's
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.12
1
+ 0.0.13
data/bin/srf_to_search.rb CHANGED
@@ -39,40 +39,3 @@ ARGV.each do |srf_file|
39
39
  srf.to_dta_files(newfile)
40
40
  end
41
41
  end
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
- =begin
54
-
55
- #require 'tap/task'
56
- task_class = Ms::Sequest::Srf::SrfToSearch
57
-
58
- parser = ConfigParser.new do |opts|
59
- opts.separator "configurations"
60
- opts.add task_class.configurations
61
-
62
- opts.on "--help", "Print this help" do
63
- puts "usage: #{File.basename(__FILE__)} <file>.srf ..."
64
- puts
65
- puts opts
66
- exit(0)
67
- end
68
- end
69
-
70
- parser.parse!(ARGV)
71
-
72
- task = task_class.new(parser.config)
73
-
74
- ARGV.each do |file|
75
- task.execute(file)
76
- end
77
-
78
- =end
data/bin/srf_to_sqt.rb CHANGED
@@ -1,39 +1,35 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require 'tap/task'
5
4
  require 'ms/sequest/srf/sqt'
6
5
 
7
- if ARGV.size == 0
8
- ARGV << "--help"
6
+ opt = {
7
+ :filter => true
8
+ }
9
+ opts = OptionParser.new do |op|
10
+ op.banner = "usage: #{File.basename(__FILE__)} [OPTIONS] <file>.srf ..."
11
+ op.separator "output: <file>.sqt ..."
12
+ op.separator ""
13
+ op.separator "options:"
14
+ op.on("-d", "--db-info", "calculates num aa's and md5sum on db") {|v| opt[:db_info] = v }
15
+ op.on("-p", "--db-path <String>", "If you need to specify the database path") {|v| opt[:new_db_path] = v }
16
+ op.on("-u", "--db-update", "update the sqt file to reflect --db_path") {|v| opt[:db_update] = v }
17
+ op.on("-n", "--no-filter", "by default, pephit must be within peptide_mass_tolerance", "(defined in sequest.params) to be included. Turns this off.") { opt[:filter] = false }
18
+ op.on("-r", "--round", "round floating point values reasonably") {|v| opt[:round] = v }
9
19
  end
20
+ opts.parse!
10
21
 
11
- task_class = Ms::Sequest::Srf::SrfToSqt
12
-
13
- parser = ConfigParser.new do |opts|
14
- opts.separator "configurations"
15
- opts.add task_class.configurations
16
-
17
- opts.on "--help", "Print this help" do
18
- puts "usage: #{File.basename(__FILE__)} <file>.srf ..."
19
- puts "outputs: <file>.sqt ..."
20
- puts
21
- #puts task_class::desc.wrap
22
- #puts
23
- puts opts
24
- #puts
25
- #puts "in tap workflow: tap run -- glob '*.srf' --:i srf_to_sqt"
26
- exit(0)
27
- end
22
+ if ARGV.size == 0
23
+ puts(opts) || exit
28
24
  end
29
25
 
30
- parser.parse!(ARGV)
31
-
26
+ ARGV.each do |srf_file|
27
+ base = srf_file.chomp(File.extname(srf_file))
28
+ outfile = base + '.sqt'
32
29
 
33
- task = task_class.new(parser.config)
34
-
35
- ARGV.each do |file|
36
- task.execute(file)
30
+ srf = Ms::Sequest::Srf.new(srf_file, :link_protein_hits => false, :filter_by_precursor_mass_tolerance => opt.delete(:filter))
31
+ srf.to_sqt(outfile, :db_info => db_info, :new_db_path => db_path, :update_db_path => db_update, :round => round)
37
32
  end
38
33
 
39
34
 
35
+
@@ -97,6 +97,10 @@ class Ms::Sequest::Params
97
97
  # returns self or nil if no sequest found in the io
98
98
  def parse_io(fh)
99
99
  # seek to the SEQUEST file
100
+ if fh.respond_to?(:set_encoding)
101
+ # this mimics ruby1.8 behavior as we read in the file
102
+ fh.set_encoding('ASCII-8BIT')
103
+ end
100
104
  loop do
101
105
  line = fh.gets
102
106
  return nil if line.nil? # we return nil if we reach then end of the file without seeing sequest params
@@ -234,8 +238,8 @@ class Ms::Sequest::Params
234
238
  # based_on may be :precursor or :fragment
235
239
  def mass_index(based_on=:precursor)
236
240
  reply = case based_on
237
- when :precursor : precursor_mass_type
238
- when :fragment : fragment_mass_type
241
+ when :precursor ; precursor_mass_type
242
+ when :fragment ; fragment_mass_type
239
243
  end
240
244
  case reply
241
245
  when 'average'
@@ -257,8 +261,8 @@ class Ms::Sequest::Params
257
261
  def min_number_termini
258
262
  if e_info = @opts["enzyme_info"]
259
263
  case e_info.split(" ")[1]
260
- when "1": return "2"
261
- when "2": return "1"
264
+ when "1" ; return "2"
265
+ when "2" ; return "1"
262
266
  end
263
267
  end
264
268
  warn "No Enzyme termini info, using min_number_termini = '1'"
@@ -38,7 +38,7 @@ module Ms
38
38
  if params.precursor_mass_type == 'average' ; 'AVG'
39
39
  else ; 'MONO'
40
40
  end
41
-
41
+
42
42
  mass_index = params.mass_index
43
43
  static_mods = params.static_mods.map do |k,v|
44
44
  key = k.split(/_/)[1]
@@ -71,9 +71,9 @@ module Ms
71
71
 
72
72
  apmu =
73
73
  case params.peptide_mass_units
74
- when '0' : 'amu'
75
- when '1' : 'mmu'
76
- when '2' : 'ppm'
74
+ when '0' ; 'amu'
75
+ when '1' ; 'mmu'
76
+ when '2' ; 'ppm'
77
77
  end
78
78
 
79
79
  hh = {
@@ -163,28 +163,6 @@ module Ms
163
163
  end
164
164
  end # close the filehandle
165
165
  end # method
166
-
167
- # SrfToSqt::task convert .srf to .sqt files
168
- class SrfToSqt < Tap::Task
169
- config :db_info, false, :short => 'd', &c.flag # calculates num aa's and md5sum on db
170
- # if your database path has changed
171
- # and you want db-info, then give the
172
- # path to the new *directory*
173
- # e.g. /my/new/path
174
- config :db_path, nil, :short => 'p'
175
- config :db_update, false, :short => 'u', &c.flag # update the sqt file to reflect --db_path
176
- config :no_filter, false, :short => 'n', &c.flag # by default, pephit must be within peptide_mass_tolerance (defined in sequest.params) to be included. Turns this off.
177
- config :round, false, :short => 'r', &c.flag # round floating point values reasonably
178
-
179
- def process(srf_file)
180
- new_filename = srf_file.sub(/\.srf$/i, '') << '.sqt'
181
-
182
- srf = Ms::Sequest::Srf.new(srf_file, :link_protein_hits => false, :filter_by_precursor_mass_tolerance => !no_filter)
183
-
184
- srf.to_sqt(new_filename, :db_info => db_info, :new_db_path => db_path, :update_db_path => db_update, :round => round)
185
-
186
- end # process
187
- end # SrfToSqt
188
166
  end # Srf
189
167
  end # Sequest
190
168
  end # Ms
@@ -5,7 +5,12 @@ require 'ms/sequest/params'
5
5
  # returns a hash of all params
6
6
  def simple_parse(filename)
7
7
  hash = {}
8
- IO.read(filename).split(/\r?\n/).select {|v| v =~ /^[a-z]/}.each do |line|
8
+ data = File.open(filename) do |io|
9
+ # this makes it work with ruby 1.9:
10
+ io.set_encoding("ASCII-8BIT") if io.respond_to?(:set_encoding)
11
+ io.read
12
+ end
13
+ data.split(/\r?\n/).select {|v| v =~ /^[a-z]/}.each do |line|
9
14
  if line =~ /([^\s]+)\s*=\s*([^;]+)\s*;?/
10
15
  hash[$1.dup] = $2.rstrip
11
16
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ms-sequest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 13
9
+ version: 0.0.13
5
10
  platform: ruby
6
11
  authors:
7
12
  - John T. Prince
@@ -9,69 +14,77 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-01-01 00:00:00 -07:00
17
+ date: 2010-08-17 00:00:00 -06:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: arrayclass
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 1
30
+ - 0
23
31
  version: 0.1.0
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: ms-core
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 0
44
+ - 2
33
45
  version: 0.0.2
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: tap
37
46
  type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 0.17.1
44
- version:
47
+ version_requirements: *id002
45
48
  - !ruby/object:Gem::Dependency
46
49
  name: ms-fasta
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
50
52
  requirements:
51
53
  - - ">="
52
54
  - !ruby/object:Gem::Version
53
- version: 0.2.3
54
- version:
55
+ segments:
56
+ - 0
57
+ - 4
58
+ - 1
59
+ version: 0.4.1
60
+ type: :runtime
61
+ version_requirements: *id003
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: ms-testdata
57
- type: :development
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
60
66
  requirements:
61
67
  - - ">="
62
68
  - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ - 18
72
+ - 0
63
73
  version: 0.18.0
64
- version:
65
- - !ruby/object:Gem::Dependency
66
- name: spec/more
67
74
  type: :development
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: spec-more
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
70
80
  requirements:
71
81
  - - ">="
72
82
  - !ruby/object:Gem::Version
83
+ segments:
84
+ - 0
73
85
  version: "0"
74
- version:
86
+ type: :development
87
+ version_requirements: *id005
75
88
  description: reads .SRF, .SQT and supports conversions
76
89
  email: jtprince@gmail.com
77
90
  executables:
@@ -100,7 +113,6 @@ files:
100
113
  - lib/ms/sequest/sqt.rb
101
114
  - lib/ms/sequest/srf.rb
102
115
  - lib/ms/sequest/srf/search.rb
103
- - lib/ms/sequest/srf/search/tap.rb
104
116
  - lib/ms/sequest/srf/sqt.rb
105
117
  - script/fasta_ipi_to_ncbi-ish.rb
106
118
  - spec/ms/sequest/bioworks_spec.rb
@@ -121,7 +133,6 @@ files:
121
133
  - spec/testfiles/corrupted_900.srf
122
134
  - spec/testfiles/small.sqt
123
135
  - spec/testfiles/small2.sqt
124
- - tap.yml
125
136
  has_rdoc: true
126
137
  homepage: http://jtprince.github.com/ms-sequest
127
138
  licenses: []
@@ -135,30 +146,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
146
  requirements:
136
147
  - - ">="
137
148
  - !ruby/object:Gem::Version
149
+ segments:
150
+ - 0
138
151
  version: "0"
139
- version:
140
152
  required_rubygems_version: !ruby/object:Gem::Requirement
141
153
  requirements:
142
154
  - - ">="
143
155
  - !ruby/object:Gem::Version
156
+ segments:
157
+ - 0
144
158
  version: "0"
145
- version:
146
159
  requirements: []
147
160
 
148
161
  rubyforge_project: mspire
149
- rubygems_version: 1.3.5
162
+ rubygems_version: 1.3.6
150
163
  signing_key:
151
164
  specification_version: 3
152
165
  summary: An mspire library supporting SEQUEST, Bioworks, SQT, etc
153
166
  test_files:
167
+ - spec/ms/sequest/srf_spec_helper.rb
168
+ - spec/ms/sequest/pepxml_spec.rb
169
+ - spec/ms/sequest/bioworks_spec.rb
154
170
  - spec/ms/sequest/srf/search_spec.rb
155
- - spec/ms/sequest/srf/sqt_spec.rb
156
171
  - spec/ms/sequest/srf/search_spec_helper.rb
157
- - spec/ms/sequest/sqt_spec.rb
172
+ - spec/ms/sequest/srf/sqt_spec.rb
173
+ - spec/ms/sequest/sqt_spec_helper.rb
158
174
  - spec/ms/sequest/params_spec.rb
159
- - spec/ms/sequest/bioworks_spec.rb
175
+ - spec/ms/sequest/sqt_spec.rb
160
176
  - spec/ms/sequest/srf_spec.rb
161
- - spec/ms/sequest/srf_spec_helper.rb
162
- - spec/ms/sequest/sqt_spec_helper.rb
163
- - spec/ms/sequest/pepxml_spec.rb
164
177
  - spec/spec_helper.rb
@@ -1,39 +0,0 @@
1
- require 'tap/task'
2
-
3
- module Ms
4
- module Sequest
5
- class Srf
6
-
7
- # Ms::Sequest::Srf::SrfToSearch::task converts to MS formats for DB
8
- # searching
9
- #
10
- # outputs the appropriate file or directory structure for <file>.srf:
11
- # <file>.mgf # file for mgf
12
- # <file> # the basename directory for dta
13
- class SrfToSearch < Tap::Task
14
- config :format, "mgf", :short => 'f' # mgf|dta (default: mgf)
15
- def process(srf_file)
16
- base = srf_file.sub(/\.srf$/i, '')
17
- newfile =
18
- case format
19
- when 'dta'
20
- base
21
- when 'mgf'
22
- base << '.' << format
23
- end
24
- srf = Ms::Sequest::Srf.new(srf_file, :link_protein_hits => false, :filter_by_precursor_mass_tolerance => false, :read_pephits => false )
25
- # options just speed up reading since we don't need .out info anyway
26
- case format
27
- when 'mgf'
28
- srf.to_mgf(newfile)
29
- when 'dta'
30
- srf.to_dta(newfile)
31
- end
32
- end
33
- end
34
-
35
-
36
- end # Srf
37
- end # Sequest
38
- end # Ms
39
-
data/tap.yml DELETED
File without changes