OpenMS
OpenPepXLLFAlgorithm Class Reference

Search for cross-linked peptide pairs in tandem MS spectra. More...

#include <OpenMS/ANALYSIS/XLMS/OpenPepXLLFAlgorithm.h>

Inheritance diagram for OpenPepXLLFAlgorithm:
[legend]
Collaboration diagram for OpenPepXLLFAlgorithm:
[legend]

Public Types

enum  ExitCodes { EXECUTION_OK , ILLEGAL_PARAMETERS , UNEXPECTED_RESULT , INCOMPATIBLE_INPUT_DATA }
 Exit codes. More...
 
- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 

Public Member Functions

 OpenPepXLLFAlgorithm ()
 Default constructor. More...
 
 ~OpenPepXLLFAlgorithm () override
 Default destructor. More...
 
ExitCodes run (PeakMap &unprocessed_spectra, std::vector< FASTAFile::FASTAEntry > &fasta_db, std::vector< ProteinIdentification > &protein_ids, std::vector< PeptideIdentification > &peptide_ids, std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > > &all_top_csms, PeakMap &spectra)
 Performs the main function of this class, the search for cross-linked peptides. More...
 
- Public Member Functions inherited from DefaultParamHandler
 DefaultParamHandler (const String &name)
 Constructor with name that is displayed in error messages. More...
 
 DefaultParamHandler (const DefaultParamHandler &rhs)
 Copy constructor. More...
 
virtual ~DefaultParamHandler ()
 Destructor. More...
 
DefaultParamHandleroperator= (const DefaultParamHandler &rhs)
 Assignment operator. More...
 
virtual bool operator== (const DefaultParamHandler &rhs) const
 Equality operator. More...
 
void setParameters (const Param &param)
 Sets the parameters. More...
 
const ParamgetParameters () const
 Non-mutable access to the parameters. More...
 
const ParamgetDefaults () const
 Non-mutable access to the default parameters. More...
 
const StringgetName () const
 Non-mutable access to the name. More...
 
void setName (const String &name)
 Mutable access to the name. More...
 
const std::vector< String > & getSubsections () const
 Non-mutable access to the registered subsections. More...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress () const
 Ends the progress display. More...
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 

Private Member Functions

void updateMembers_ () override
 This method is used to update extra member variables at the end of the setParameters() method. More...
 

Private Attributes

String decoy_string_
 
bool decoy_prefix_
 
Int min_precursor_charge_
 
Int max_precursor_charge_
 
double precursor_mass_tolerance_
 
bool precursor_mass_tolerance_unit_ppm_
 
IntList precursor_correction_steps_
 
double fragment_mass_tolerance_
 
double fragment_mass_tolerance_xlinks_
 
bool fragment_mass_tolerance_unit_ppm_
 
StringList cross_link_residue1_
 
StringList cross_link_residue2_
 
double cross_link_mass_
 
DoubleList cross_link_mass_mono_link_
 
String cross_link_name_
 
StringList fixedModNames_
 
StringList varModNames_
 
Size max_variable_mods_per_peptide_
 
Size peptide_min_size_
 
Size missed_cleavages_
 
String enzyme_name_
 
Int number_top_hits_
 
String deisotope_mode_
 
bool use_sequence_tags_
 
Size sequence_tag_min_length_
 
String add_y_ions_
 
String add_b_ions_
 
String add_x_ions_
 
String add_a_ions_
 
String add_c_ions_
 
String add_z_ions_
 
String add_losses_
 

Additional Inherited Members

- Static Public Member Functions inherited from DefaultParamHandler
static void writeParametersToMetaValues (const Param &write_this, MetaInfoInterface &write_here, const String &key_prefix="")
 Writes all parameters to meta values. More...
 
- Protected Member Functions inherited from DefaultParamHandler
void defaultsToParam_ ()
 Updates the parameters after the defaults have been set in the constructor. More...
 
- Static Protected Member Functions inherited from ProgressLogger
static String logTypeToFactoryName_ (LogType type)
 Return the name of the factory product used for this log type. More...
 
- Protected Attributes inherited from DefaultParamHandler
Param param_
 Container for current parameters. More...
 
Param defaults_
 Container for default parameters. This member should be filled in the constructor of derived classes! More...
 
std::vector< Stringsubsections_
 Container for registered subsections. This member should be filled in the constructor of derived classes! More...
 
String error_name_
 Name that is displayed in error messages during the parameter checking. More...
 
bool check_defaults_
 If this member is set to false no checking if parameters in done;. More...
 
bool warn_empty_defaults_
 If this member is set to false no warning is emitted when defaults are empty;. More...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

Search for cross-linked peptide pairs in tandem MS spectra.

This tool performs a search for cross-links in the given mass spectra.

It executes the following steps in order:

  • Processing of spectra: deisotoping and filtering
  • Digesting and preprocessing the protein database, building a peptide pair index dependent on the precursor masses of the MS2 spectra
  • Generating theoretical spectra of cross-linked peptides and aligning the experimental spectra against those
  • Scoring of cross-link spectrum matches
  • Using PeptideIndexer to map the peptides to all possible source proteins

See below for available parameters and more functionality.

Input: MS2 spectra and fasta database of proteins expected to be cross-linked in the sample

The spectra should be provided as one PeakMap. If you have multiple files, e.g. for multiple fractions, you should run this tool on each file separately. The database should be provided as a vector of FASTAEntries containing the target and decoy proteins.

Parameters

The parameters for fixed and variable modifications refer to additional modifications beside the cross-linker. The linker used in the experiment has to be described using the cross-linker specific parameters. Only one mass is allowed for a cross-linker that links two peptides, while multiple masses are possible for mono-links of the same cross-linking reagent. Mono-links are cross-linkers, that are linked to one peptide by one of their two reactive groups. To search for isotopically labeled pairs of cross-linkers see the tool OpenPepXL. The parameters -cross_linker:residue1 and -cross_linker:residue2 are used to enumerate the amino acids, that each end of the linker can react with. This way any heterobifunctional cross-linker can be defined. To define a homobifunctional cross-linker, these two parameters should have the same value. The parameter -cross_linker:name is used to solve ambiguities caused by different cross-linkers with the same mass after the linking reaction (see section on output for clarification).

Output: XL-MS Identifications with scores and linked positions in the proteins

The input parameters protein_ids and peptide_ids are filled with XL-MS search parameters and IDs

pot. predecessor tools → OpenPepXLLF → pot. successor tools
- -

Member Enumeration Documentation

◆ ExitCodes

enum ExitCodes

Exit codes.

Enumerator
EXECUTION_OK 
ILLEGAL_PARAMETERS 
UNEXPECTED_RESULT 
INCOMPATIBLE_INPUT_DATA 

Constructor & Destructor Documentation

◆ OpenPepXLLFAlgorithm()

Default constructor.

◆ ~OpenPepXLLFAlgorithm()

~OpenPepXLLFAlgorithm ( )
override

Default destructor.

Member Function Documentation

◆ run()

ExitCodes run ( PeakMap unprocessed_spectra,
std::vector< FASTAFile::FASTAEntry > &  fasta_db,
std::vector< ProteinIdentification > &  protein_ids,
std::vector< PeptideIdentification > &  peptide_ids,
std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > > &  all_top_csms,
PeakMap spectra 
)

Performs the main function of this class, the search for cross-linked peptides.

Parameters
unprocessed_spectraThe input PeakMap of experimental spectra
fasta_dbThe protein database containing targets and decoys
protein_idsA result vector containing search settings. Should contain one PeptideIdentification.
peptide_idsA result vector containing cross-link spectrum matches as PeptideIdentifications and PeptideHits. Should be empty.
preprocessed_pair_spectraA result structure containing linear and cross-linked ion spectra. Will be overwritten. This is only necessary for writing out xQuest type spectrum files.
spectrum_pairsA result vector containing paired spectra indices. Should be empty. This is only necessary for writing out xQuest type spectrum files.
all_top_csmsA result vector containing cross-link spectrum matches as CrossLinkSpectrumMatches. Should be empty. This is only necessary for writing out xQuest type spectrum files.
spectraA result vector containing the input spectra after preprocessing and filtering. Should be empty. This is only necessary for writing out xQuest type spectrum files.

◆ updateMembers_()

void updateMembers_ ( )
overrideprivatevirtual

This method is used to update extra member variables at the end of the setParameters() method.

Also call it at the end of the derived classes' copy constructor and assignment operator.

The default implementation is empty.

Reimplemented from DefaultParamHandler.

Member Data Documentation

◆ add_a_ions_

String add_a_ions_
private

◆ add_b_ions_

String add_b_ions_
private

◆ add_c_ions_

String add_c_ions_
private

◆ add_losses_

String add_losses_
private

◆ add_x_ions_

String add_x_ions_
private

◆ add_y_ions_

String add_y_ions_
private

◆ add_z_ions_

String add_z_ions_
private

◆ cross_link_mass_

double cross_link_mass_
private

◆ cross_link_mass_mono_link_

DoubleList cross_link_mass_mono_link_
private

◆ cross_link_name_

String cross_link_name_
private

◆ cross_link_residue1_

StringList cross_link_residue1_
private

◆ cross_link_residue2_

StringList cross_link_residue2_
private

◆ decoy_prefix_

bool decoy_prefix_
private

◆ decoy_string_

String decoy_string_
private

◆ deisotope_mode_

String deisotope_mode_
private

◆ enzyme_name_

String enzyme_name_
private

◆ fixedModNames_

StringList fixedModNames_
private

◆ fragment_mass_tolerance_

double fragment_mass_tolerance_
private

◆ fragment_mass_tolerance_unit_ppm_

bool fragment_mass_tolerance_unit_ppm_
private

◆ fragment_mass_tolerance_xlinks_

double fragment_mass_tolerance_xlinks_
private

◆ max_precursor_charge_

Int max_precursor_charge_
private

◆ max_variable_mods_per_peptide_

Size max_variable_mods_per_peptide_
private

◆ min_precursor_charge_

Int min_precursor_charge_
private

◆ missed_cleavages_

Size missed_cleavages_
private

◆ number_top_hits_

Int number_top_hits_
private

◆ peptide_min_size_

Size peptide_min_size_
private

◆ precursor_correction_steps_

IntList precursor_correction_steps_
private

◆ precursor_mass_tolerance_

double precursor_mass_tolerance_
private

◆ precursor_mass_tolerance_unit_ppm_

bool precursor_mass_tolerance_unit_ppm_
private

◆ sequence_tag_min_length_

Size sequence_tag_min_length_
private

◆ use_sequence_tags_

bool use_sequence_tags_
private

◆ varModNames_

StringList varModNames_
private