OpenPepXLAlgorithm Class Reference

Search for peptide pairs linked with a labeled cross-linker. More...

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

Inheritance diagram for OpenPepXLAlgorithm:
Collaboration diagram for OpenPepXLAlgorithm:

Public Types

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

Public Member Functions

 OpenPepXLAlgorithm ()
 Default constructor. More...
 ~OpenPepXLAlgorithm () override
 Default destructor. More...
ExitCodes run (PeakMap &unprocessed_spectra, ConsensusMap &cfeatures, std::vector< FASTAFile::FASTAEntry > &fasta_db, std::vector< ProteinIdentification > &protein_ids, std::vector< PeptideIdentification > &peptide_ids, OPXLDataStructs::PreprocessedPairSpectra &preprocessed_pair_spectra, std::vector< std::pair< Size, Size > > &spectrum_pairs, 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 (UInt64 bytes_processed=0) const
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...

Static Private Member Functions

static OPXLDataStructs::PreprocessedPairSpectra preprocessPairs_ (const PeakMap &spectra, const std::vector< std::pair< Size, Size > > &spectrum_pairs, const double cross_link_mass_iso_shift, double fragment_mass_tolerance, double fragment_mass_tolerance_xlinks, bool fragment_mass_tolerance_unit_ppm, bool deisotope)

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_light_
double cross_link_mass_iso_shift_
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_
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_
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_

Detailed Description

Search for peptide pairs linked with a labeled cross-linker.

This tool performs a search for cross-links in the given mass spectra. It uses linked MS1 features to pair up MS2 spectra and uses these pairs to find the fragment peaks that contain the linker and those that do not.

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, linked features from FeatureFinderMultiplex 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. A ConsensusMap, that links the MS1 feature pairs from heavy and light cross-linkers is also required. This can be generated by the tool FeatureFinderMultiplex. Setting up FeatureFinderMultiplex: In the FeatureFinderMultiplex parameters you have to change the mass of one of the labels to the difference between the light and heavy (e.g. change the mass of Arg6 to 12.075321 for labeled DSS) in the advanced options. The parameter -labels should have one empty label ( [] ) and the label you adapted (e.g. [][Arg6]). For the other settings refer to the documentation of FeatureFinderMultiplex.


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 (cross_linker:mass_light), 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. The masses refer to the light version of the linker. The parameter cross_linker:mass_iso_shift defines the difference between the light and heavy versions of the cross-linker and the mono-links. 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 arising from different cross-linkers having 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 → OpenPepXL → pot. successor tools
- -

Member Enumeration Documentation

◆ ExitCodes

enum ExitCodes

Exit codes.


Constructor & Destructor Documentation

◆ OpenPepXLAlgorithm()

Default constructor.

◆ ~OpenPepXLAlgorithm()

~OpenPepXLAlgorithm ( )

Default destructor.

Member Function Documentation

◆ preprocessPairs_()

static OPXLDataStructs::PreprocessedPairSpectra preprocessPairs_ ( const PeakMap spectra,
const std::vector< std::pair< Size, Size > > &  spectrum_pairs,
const double  cross_link_mass_iso_shift,
double  fragment_mass_tolerance,
double  fragment_mass_tolerance_xlinks,
bool  fragment_mass_tolerance_unit_ppm,
bool  deisotope 

◆ run()

ExitCodes run ( PeakMap unprocessed_spectra,
ConsensusMap cfeatures,
std::vector< FASTAFile::FASTAEntry > &  fasta_db,
std::vector< ProteinIdentification > &  protein_ids,
std::vector< PeptideIdentification > &  peptide_ids,
OPXLDataStructs::PreprocessedPairSpectra preprocessed_pair_spectra,
std::vector< std::pair< Size, Size > > &  spectrum_pairs,
std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > > &  all_top_csms,
PeakMap spectra 

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

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_ ( )

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_

◆ add_b_ions_

String add_b_ions_

◆ add_c_ions_

String add_c_ions_

◆ add_losses_

String add_losses_

◆ add_x_ions_

String add_x_ions_

◆ add_y_ions_

String add_y_ions_

◆ add_z_ions_

String add_z_ions_

◆ cross_link_mass_iso_shift_

double cross_link_mass_iso_shift_

◆ cross_link_mass_light_

double cross_link_mass_light_

◆ cross_link_mass_mono_link_

DoubleList cross_link_mass_mono_link_

◆ cross_link_name_

String cross_link_name_

◆ cross_link_residue1_

StringList cross_link_residue1_

◆ cross_link_residue2_

StringList cross_link_residue2_

◆ decoy_prefix_

bool decoy_prefix_

◆ decoy_string_

String decoy_string_

◆ deisotope_mode_

String deisotope_mode_

◆ enzyme_name_

String enzyme_name_

◆ fixedModNames_

StringList fixedModNames_

◆ fragment_mass_tolerance_

double fragment_mass_tolerance_

◆ fragment_mass_tolerance_unit_ppm_

bool fragment_mass_tolerance_unit_ppm_

◆ fragment_mass_tolerance_xlinks_

double fragment_mass_tolerance_xlinks_

◆ max_precursor_charge_

Int max_precursor_charge_

◆ max_variable_mods_per_peptide_

Size max_variable_mods_per_peptide_

◆ min_precursor_charge_

Int min_precursor_charge_

◆ missed_cleavages_

Size missed_cleavages_

◆ number_top_hits_

Int number_top_hits_

◆ peptide_min_size_

Size peptide_min_size_

◆ precursor_correction_steps_

IntList precursor_correction_steps_

◆ precursor_mass_tolerance_

double precursor_mass_tolerance_

◆ precursor_mass_tolerance_unit_ppm_

bool precursor_mass_tolerance_unit_ppm_

◆ varModNames_

StringList varModNames_