OpenMS
SearchEngineBase Class Reference

Base class for Search Engine Adapters. More...

#include <OpenMS/APPLICATIONS/SearchEngineBase.h>

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

Public Member Functions

 SearchEngineBase ()=delete
 No default constructor. More...
 
 SearchEngineBase (const SearchEngineBase &)=delete
 No default copy constructor. More...
 
 SearchEngineBase (const String &name, const String &description, bool official=true, const std::vector< Citation > &citations={}, bool toolhandler_test=true)
 Constructor. More...
 
 ~SearchEngineBase () override
 Destructor. More...
 
String getRawfileName (int ms_level=2) const
 Reads the '-in' argument from internal parameters (usually an mzML file) and checks if MS2 spectra are present and are centroided. More...
 
String getDBFilename (const String &db="") const
 Reads the '-database' argument from internal parameters (or from db) and tries to find the db in search directories (if it cannot be found immediately). If not found, an exception is thrown. More...
 
virtual void registerPeptideIndexingParameter_ (Param peptide_indexing_parameter)
 Adds option to reassociate peptides with proteins (and annotate target/decoy information) More...
 
virtual SearchEngineBase::ExitCodes reindex_ (std::vector< ProteinIdentification > &protein_identifications, std::vector< PeptideIdentification > &peptide_identifications) const
 Reindex peptide to protein association. More...
 
- Public Member Functions inherited from TOPPBase
 TOPPBase ()=delete
 No default constructor. More...
 
 TOPPBase (const TOPPBase &)=delete
 No default copy constructor. More...
 
 TOPPBase (const String &name, const String &description, bool official=true, const std::vector< Citation > &citations={}, bool toolhandler_test=true)
 Constructor. More...
 
virtual ~TOPPBase ()
 Destructor. More...
 
ExitCodes main (int argc, const char **argv)
 Main routine of all TOPP applications. More...
 
String getToolPrefix () const
 Returns the prefix used to identify the tool. More...
 
String getDocumentationURL () const
 Returns a link to the documentation of the tool (accessible on our servers and only after inclusion in the nightly branch or a release). More...
 

Additional Inherited Members

- Public Types inherited from TOPPBase
enum  ExitCodes {
  EXECUTION_OK , INPUT_FILE_NOT_FOUND , INPUT_FILE_NOT_READABLE , INPUT_FILE_CORRUPT ,
  INPUT_FILE_EMPTY , CANNOT_WRITE_OUTPUT_FILE , ILLEGAL_PARAMETERS , MISSING_PARAMETERS ,
  UNKNOWN_ERROR , EXTERNAL_PROGRAM_ERROR , PARSE_ERROR , INCOMPATIBLE_INPUT_DATA ,
  INTERNAL_ERROR , UNEXPECTED_RESULT
}
 Exit codes. More...
 
- Static Public Member Functions inherited from TOPPBase
static void setMaxNumberOfThreads (int num_threads)
 Sets the maximal number of usable threads. More...
 
- Protected Member Functions inherited from TOPPBase
virtual void registerOptionsAndFlags_ ()=0
 Sets the valid command line options (with argument) and flags (without argument). More...
 
String getParamArgument_ (const Param::ParamEntry &entry) const
 Utility function that determines a suitable argument value for the given Param::ParamEntry. More...
 
std::vector< ParameterInformationparamToParameterInformation_ (const Param &param) const
 Translates the given parameter object into a vector of ParameterInformation, that can be utilized for cl parsing. More...
 
ParameterInformation paramEntryToParameterInformation_ (const Param::ParamEntry &entry, const String &argument="", const String &full_name="") const
 Transforms a ParamEntry object to command line parameter (ParameterInformation). More...
 
void registerParamSubsectionsAsTOPPSubsections_ (const Param &param)
 
void registerFullParam_ (const Param &param)
 Register command line parameters for all entries in a Param object. More...
 
void registerStringOption_ (const String &name, const String &argument, const String &default_value, const String &description, bool required=true, bool advanced=false)
 Registers a string option. More...
 
void setValidStrings_ (const String &name, const std::vector< String > &strings)
 Sets the valid strings for a string option or a whole string list. More...
 
void setValidStrings_ (const String &name, const std::string vstrings[], int count)
 Sets the valid strings for a string option or a whole string list. More...
 
void registerInputFile_ (const String &name, const String &argument, const String &default_value, const String &description, bool required=true, bool advanced=false, const StringList &tags=StringList())
 Registers an input file option. More...
 
void registerOutputFile_ (const String &name, const String &argument, const String &default_value, const String &description, bool required=true, bool advanced=false)
 Registers an output file option. More...
 
void registerOutputPrefix_ (const String &name, const String &argument, const String &default_value, const String &description, bool required=true, bool advanced=false)
 Registers an output file prefix used for tools with multiple file output. More...
 
void setValidFormats_ (const String &name, const std::vector< String > &formats, const bool force_OpenMS_format=true)
 Sets the formats for a input/output file option or for all members of an input/output file lists. More...
 
void registerDoubleOption_ (const String &name, const String &argument, double default_value, const String &description, bool required=true, bool advanced=false)
 Registers a double option. More...
 
void setMinInt_ (const String &name, Int min)
 Sets the minimum value for the integer parameter(can be a list of integers,too) name. More...
 
void setMaxInt_ (const String &name, Int max)
 Sets the maximum value for the integer parameter(can be a list of integers,too) name. More...
 
void setMinFloat_ (const String &name, double min)
 Sets the minimum value for the floating point parameter(can be a list of floating points,too) name. More...
 
void setMaxFloat_ (const String &name, double max)
 Sets the maximum value for the floating point parameter(can be a list of floating points,too) name. More...
 
void registerIntOption_ (const String &name, const String &argument, Int default_value, const String &description, bool required=true, bool advanced=false)
 Registers an integer option. More...
 
void registerIntList_ (const String &name, const String &argument, const IntList &default_value, const String &description, bool required=true, bool advanced=false)
 Registers a list of integers option. More...
 
void registerDoubleList_ (const String &name, const String &argument, const DoubleList &default_value, const String &description, bool required=true, bool advanced=false)
 Registers a list of doubles option. More...
 
void registerStringList_ (const String &name, const String &argument, const StringList &default_value, const String &description, bool required=true, bool advanced=false)
 Registers a list of strings option. More...
 
void registerInputFileList_ (const String &name, const String &argument, const StringList &default_value, const String &description, bool required=true, bool advanced=false, const StringList &tags=StringList())
 Registers a list of input files option. More...
 
void registerOutputFileList_ (const String &name, const String &argument, const StringList &default_value, const String &description, bool required=true, bool advanced=false)
 Registers a list of output files option. More...
 
void registerFlag_ (const String &name, const String &description, bool advanced=false)
 Registers a flag. More...
 
void registerSubsection_ (const String &name, const String &description)
 Registers an allowed subsection in the INI file (usually from OpenMS algorithms). More...
 
void registerTOPPSubsection_ (const String &name, const String &description)
 Registers an allowed subsection in the INI file originating from the TOPP tool itself. More...
 
void addEmptyLine_ ()
 Adds an empty line between registered variables in the documentation. More...
 
String getStringOption_ (const String &name) const
 Returns the value of a previously registered string option. More...
 
double getDoubleOption_ (const String &name) const
 Returns the value of a previously registered double option. More...
 
Int getIntOption_ (const String &name) const
 Returns the value of a previously registered integer option. More...
 
StringList getStringList_ (const String &name) const
 Returns the value of a previously registered StringList. More...
 
IntList getIntList_ (const String &name) const
 Returns the value of a previously registered IntList. More...
 
DoubleList getDoubleList_ (const String &name) const
 Returns the value of a previously registered DoubleList. More...
 
bool getFlag_ (const String &name) const
 Returns the value of a previously registered flag. More...
 
const ParameterInformationfindEntry_ (const String &name) const
 Finds the entry in the parameters_ array that has the name name. More...
 
Param const & getParam_ () const
 Return all parameters relevant to this TOPP tool. More...
 
void checkParam_ (const Param &param, const String &filename, const String &location) const
 Checks top-level entries of param according to the information during registration. More...
 
void fileParamValidityCheck_ (const StringList &param_value, const String &param_name, const ParameterInformation &p) const
 checks if files of an input file list exist More...
 
void fileParamValidityCheck_ (String &param_value, const String &param_name, const ParameterInformation &p) const
 checks if an input file exists (respecting the flags) More...
 
void checkIfIniParametersAreApplicable_ (const Param &ini_params)
 Checks if the parameters of the provided ini file are applicable to this tool. More...
 
void printUsage_ ()
 Prints the tool-specific command line options and appends the common options. More...
 
virtual ExitCodes main_ (int argc, const char **argv)=0
 The actual "main" method. main_() is invoked by main(). More...
 
void writeLogInfo_ (const String &text) const
 Writes a string to the log file and to OPENMS_LOG_INFO. More...
 
void writeLogWarn_ (const String &text) const
 Writes a string to the log file and to OPENMS_LOG_WARN. More...
 
void writeLogError_ (const String &text) const
 Writes a string to the log file and to OPENMS_LOG_ERROR. More...
 
void writeDebug_ (const String &text, UInt min_level) const
 Writes a string to the log file and to OPENMS_LOG_DEBUG if the debug level is at least min_level. More...
 
void writeDebug_ (const String &text, const Param &param, UInt min_level) const
 Writes a String followed by a Param to the log file and to OPENMS_LOG_DEBUG if the debug level is at least min_level. More...
 
ExitCodes runExternalProcess_ (const QString &executable, const QStringList &arguments, const QString &workdir="") const
 Runs an external process via ExternalProcess and prints its stderr output on failure or if debug_level > 4. More...
 
ExitCodes runExternalProcess_ (const QString &executable, const QStringList &arguments, String &proc_stdout, String &proc_stderr, const QString &workdir="") const
 
const StringgetIniLocation_ () const
 Returns the location of the ini file where parameters are taken from. E.g. if the command line was TOPPTool -instance 17, then this will be "TOPPTool:17:". Note the ':' at the end. More...
 
const StringtoolName_ () const
 Returns the tool name. More...
 
void inputFileReadable_ (const String &filename, const String &param_name) const
 Checks if an input file exists, is readable and is not empty. More...
 
void outputFileWritable_ (const String &filename, const String &param_name) const
 Checks if an output file is writable. More...
 
bool parseRange_ (const String &text, double &low, double &high) const
 Parses a range string ([a]:[b]) into two variables (doubles) More...
 
bool parseRange_ (const String &text, Int &low, Int &high) const
 Parses a range string ([a]:[b]) into two variables (integers) More...
 
void addDataProcessing_ (ConsensusMap &map, const DataProcessing &dp) const
 Data processing setter for consensus maps. More...
 
void addDataProcessing_ (FeatureMap &map, const DataProcessing &dp) const
 Data processing setter for feature maps. More...
 
void addDataProcessing_ (PeakMap &map, const DataProcessing &dp) const
 Data processing setter for peak maps. More...
 
DataProcessing getProcessingInfo_ (DataProcessing::ProcessingAction action) const
 Returns the data processing information. More...
 
DataProcessing getProcessingInfo_ (const std::set< DataProcessing::ProcessingAction > &actions) const
 Returns the data processing information. More...
 
template<typename Writer >
void writeToolDescription_ (Writer &writer, std::string write_type, std::string fileExtension)
 Helper function avoiding repeated code between CTD, JSON and CWL. More...
 
- Protected Attributes inherited from TOPPBase
String version_
 Version string (if empty, the OpenMS/TOPP version is printed) More...
 
String verboseVersion_
 Version string including additional revision/date time information. Note: This differs from version_ only if not provided by the user. More...
 
bool official_
 Flag indicating if this an official TOPP tool. More...
 
std::vector< Citationcitations_
 Papers, specific for this tool (will be shown in '–help') More...
 
bool toolhandler_test_
 Enable the ToolHandler tests. More...
 
ProgressLogger::LogType log_type_
 Type of progress logging. More...
 
bool test_mode_
 Test mode. More...
 
Int debug_level_
 Debug level set by -debug. More...
 
- Static Protected Attributes inherited from TOPPBase
static String topp_ini_file_
 .TOPP.ini file for storing system default parameters More...
 
static const Citation cite_openms_
 The OpenMS citation. More...
 

Detailed Description

Base class for Search Engine Adapters.

It is build on top of TOPPBase and provides convenience functions for regular tasks in SearchEngines.

This base class enforces a common parameter scheme upon each adapter. E.g. '-database' and '-in'. This might be extended/changed in the future.

Constructor & Destructor Documentation

◆ SearchEngineBase() [1/3]

SearchEngineBase ( )
delete

No default constructor.

◆ SearchEngineBase() [2/3]

SearchEngineBase ( const SearchEngineBase )
delete

No default copy constructor.

◆ SearchEngineBase() [3/3]

SearchEngineBase ( const String name,
const String description,
bool  official = true,
const std::vector< Citation > &  citations = {},
bool  toolhandler_test = true 
)

Constructor.

Must match TOPPBase' Ctor!

Parameters
nameTool name.
descriptionShort description of the tool (one line).
officialIf this is an official TOPP tool contained in the OpenMS/TOPP release. If true the tool name is checked against the list of TOPP tools and a warning printed if missing.
citationsAdd one or more citations if they are associated specifically to this TOPP tool; they will be printed during --help
toolhandler_testCheck if this tool is registered with the ToolHandler (disable for unit tests only)

◆ ~SearchEngineBase()

~SearchEngineBase ( )
override

Destructor.

Member Function Documentation

◆ getDBFilename()

String getDBFilename ( const String db = "") const

Reads the '-database' argument from internal parameters (or from db) and tries to find the db in search directories (if it cannot be found immediately). If not found, an exception is thrown.

Parameters
db[Optional] Instead of reading the '-database', you can provide a custom name here (might be required for special db formats, see OMSSA)
Returns
filename for DB (might be a relative or absolute path)
Exceptions
OpenMS::Exception::FileNotFoundif database name could not be resolved

◆ getRawfileName()

String getRawfileName ( int  ms_level = 2) const

Reads the '-in' argument from internal parameters (usually an mzML file) and checks if MS2 spectra are present and are centroided.

If the file is an mzML file, the spectra annotation can be checked. If no MS2 or profile MS2 data is found, an exception is thrown. If the file is any other format, the overhead of reading in the file is too large and we just issue a general warning that centroided data should be used.

Parameters
ms_levelThe MS level to check for their type (centroided/profile)
Returns
A filename (might be a relative or absolute path)
Exceptions
OpenMS::Exception::FileEmptyif no spectra are found (mzML only)
OpenMS::Exception::IllegalArgumentif spectra are not centroided (mzML only)

◆ registerPeptideIndexingParameter_()

virtual void registerPeptideIndexingParameter_ ( Param  peptide_indexing_parameter)
virtual

Adds option to reassociate peptides with proteins (and annotate target/decoy information)

Parameters
peptide_indexing_parameterpeptide indexer settings. May be modified to enable search engine specific defaults (e.g., not-tryptic etc.).

◆ reindex_()

virtual SearchEngineBase::ExitCodes reindex_ ( std::vector< ProteinIdentification > &  protein_identifications,
std::vector< PeptideIdentification > &  peptide_identifications 
) const
virtual

Reindex peptide to protein association.