Class: TandemSearchTool

Inherits:
SearchTool show all
Defined in:
lib/protk/tandem_search_tool.rb

Instance Attribute Summary collapse

Attributes inherited from Tool

#option_parser, #options, #options_defined_by_user

Instance Method Summary collapse

Methods inherited from SearchTool

#database_info

Methods inherited from Tool

#add_boolean_option, #add_value_option, #check_options, default_output_path, extension_from_filename, #jobid_prefix, #jobid_prefix=, #method_missing, #run, #supported_options

Constructor Details

#initializeTandemSearchTool

Returns a new instance of TandemSearchTool.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/protk/tandem_search_tool.rb', line 23

def initialize

  super([
    :database,
    :explicit_output,
    :over_write,
    :enzyme,
    :modifications,
    :mass_tolerance_units,
    :mass_tolerance,
    :multi_isotope_search,
    :missed_cleavages,
    :cleavage_semi,
    :methionine_oxidation,
    :glyco,
    :acetyl_nterm,
    :threads
      ])

  @xtandem_keys_with_single_multiplicity = {
    :fragment_tol => "spectrum, fragment monoisotopic mass error",
    :missed_cleavages => "scoring, maximum missed cleavage sites",
    :cleavage_semi => "protein, cleavage semi",
    :precursor_tolu => "spectrum, parent monoisotopic mass error units",
    :multi_isotope_search => "spectrum, parent monoisotopic mass isotope error",
    :fragment_tolu => "spectrum, fragment monoisotopic mass error units",
    :acetyl_nterm => "protein, quick acetyl",
    :output_spectra => "output, spectra",
    :threads => "spectrum, threads"
  }

  @xtandem_keys_for_precursor_tol = {
    :precursor_tol => ["spectrum, parent monoisotopic mass error minus", "spectrum, parent monoisotopic mass error plus"]
  }

  @defaults_path="#{File.dirname(__FILE__)}/data/tandem_params.xml"
  @taxonomy_path="#{File.dirname(__FILE__)}/data/taxonomy_template.xml"
  @default_data_path="#{File.dirname(__FILE__)}/data/"
  
  @option_parser.banner = "Run an X!Tandem msms search on a set of mzML input files.\n\nUsage: tandem_search.rb [options] file1.mzML file2.mzML ..."
  @options.output_suffix="_tandem"

  add_value_option(:tandem_params,"isb_native",['-T', '--tandem-params tandem', 'Either the full path to an xml file containing a complete set of default parameters, or one of the following (isb_native,isb_kscore,gpm). Default is isb_native'])
  add_boolean_option(:keep_params_files,false,['-K', '--keep-params-files', 'Keep X!Tandem parameter files'])
  add_boolean_option(:output_spectra,false,['--output-spectra', 'Include spectra in the output file'])

end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Tool

Instance Attribute Details

#default_data_pathObject (readonly)

Returns the value of attribute default_data_path.



19
20
21
# File 'lib/protk/tandem_search_tool.rb', line 19

def default_data_path
  @default_data_path
end

#defaults_pathObject (readonly)

Returns the value of attribute defaults_path.



17
18
19
# File 'lib/protk/tandem_search_tool.rb', line 17

def defaults_path
  @defaults_path
end

#supported_xtandem_keysObject (readonly)

Returns the value of attribute supported_xtandem_keys.



21
22
23
# File 'lib/protk/tandem_search_tool.rb', line 21

def supported_xtandem_keys
  @supported_xtandem_keys
end

#taxonomy_pathObject (readonly)

Returns the value of attribute taxonomy_path.



18
19
20
# File 'lib/protk/tandem_search_tool.rb', line 18

def taxonomy_path
  @taxonomy_path
end

Instance Method Details

#params_doc(db_info, taxo_path, input_path, output_path) ⇒ Object



244
245
246
247
248
249
250
251
252
# File 'lib/protk/tandem_search_tool.rb', line 244

def params_doc(db_info,taxo_path,input_path,output_path)
    params_parser=XML::Parser.file(@defaults_path)
    std_params=params_parser.parse

    
    throw "Invalid input db_info must be a FastaDatabase object" unless db_info.class==FastaDatabase

  generate_parameter_doc(std_params,output_path,input_path,db_info,taxo_path)
end

#taxonomy_doc(db_info) ⇒ Object



223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# File 'lib/protk/tandem_search_tool.rb', line 223

def taxonomy_doc(db_info)
  throw "Invalid input db_info must be a FastaDatabase object" unless db_info.class==FastaDatabase
  database_path=db_info.path
  taxon=db_info.name
  # Parse taxonomy template file
  #
  taxo_parser=XML::Parser.file(@taxonomy_path)
  taxo_doc=taxo_parser.parse

  taxon_label=taxo_doc.find('/bioml/taxon')
  throw "Exactly one taxon label is required in the taxonomy_template file" unless taxon_label.length==1
  taxon_label[0].attributes['label']=taxon

  db_file=taxo_doc.find('/bioml/taxon/file')
  throw "Exactly one database file is required in the taxonomy_template file" unless db_file.length==1
  db_file[0].attributes['URL']=database_path

  taxo_doc
end