ms-sequest 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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