OpenMS
OpenPepXLAlgorithm Class Reference

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

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

Inheritance diagram for OpenPepXLAlgorithm:
[legend]
Collaboration diagram for OpenPepXLAlgorithm:
[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

 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_
 
ProgressLoggerImplcurrent_logger_
 
- 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.

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 (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.

Enumerator
EXECUTION_OK 
ILLEGAL_PARAMETERS 
UNEXPECTED_RESULT 
INCOMPATIBLE_INPUT_DATA 

Constructor & Destructor Documentation

◆ OpenPepXLAlgorithm()

Default constructor.

◆ ~OpenPepXLAlgorithm()

~OpenPepXLAlgorithm ( )
override

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 
)
staticprivate

◆ 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.

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_iso_shift_

double cross_link_mass_iso_shift_
private

◆ cross_link_mass_light_

double cross_link_mass_light_
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

◆ varModNames_

StringList varModNames_
private