55 class EmpiricalFormula;
77 double getMZ(
double neutral_mass)
const;
308 String ion_mode_detect_msg =
"";
311 if (map[0].metaValueExists(
"scan_polarity"))
313 StringList pols = ListUtils::create<String>(
String(map[0].getMetaValue(
"scan_polarity")),
';');
314 if (pols.size() == 1 && pols[0].size() > 0)
317 if (pols[0] ==
"positive" || pols[0] ==
"negative")
319 ion_mode_internal = pols[0];
320 OPENMS_LOG_INFO <<
"Setting auto ion-mode to '" << ion_mode_internal <<
"' for file " <<
File::basename(map.getLoadedFilePath()) << std::endl;
322 else ion_mode_detect_msg =
String(
"Meta value 'scan_polarity' does not contain unknown ion mode") +
String(map[0].getMetaValue(
"scan_polarity"));
326 ion_mode_detect_msg =
String(
"ambiguous ion mode: ") +
String(map[0].getMetaValue(
"scan_polarity"));
331 ion_mode_detect_msg =
String(
"Meta value 'scan_polarity' not found in (Consensus-)Feature map");
336 OPENMS_LOG_INFO <<
"Meta value 'scan_polarity' cannot be determined since (Consensus-)Feature map is empty!" << std::endl;
339 if (ion_mode_detect_msg.size() > 0)
341 throw Exception::InvalidParameter(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,
String(
"Auto ionization mode could not resolve ion mode of data (") + ion_mode_detect_msg +
"!");
344 return ion_mode_internal;
350 void searchMass_(
double neutral_query_mass,
double diff_mass, std::pair<Size, Size>& hit_indices)
const;
389 template <
typename T1,
typename T2>
392 return asMass(t1) < asMass(t2);
#define OPENMS_LOG_INFO
Macro if a information, e.g. a status should be reported.
Definition: LogStream.h:465
An algorithm to search for exact mass matches from a spectrum against a database (e....
Definition: AccurateMassSearchEngine.h:264
void init()
parse database and adduct files
void parseStructMappingFile_(const StringList &)
std::vector< std::vector< String > > MassIDMapping
private member variables
Definition: AccurateMassSearchEngine.h:366
String pos_adducts_fname_
Definition: AccurateMassSearchEngine.h:407
bool keep_unidentified_masses_
Definition: AccurateMassSearchEngine.h:419
void exportMzTab_(const QueryResultsTable &overall_results, const Size number_of_maps, MzTab &mztab_out) const
double mass
Definition: AccurateMassSearchEngine.h:371
void queryByConsensusFeature(const ConsensusFeature &cfeat, const Size &cf_index, const Size &number_of_maps, const String &ion_mode, std::vector< AccurateMassSearchResult > &results) const
AccurateMassSearchEngine()
Default constructor.
String mass_error_unit_
Definition: AccurateMassSearchEngine.h:403
StringList db_struct_file_
Definition: AccurateMassSearchEngine.h:411
~AccurateMassSearchEngine() override
Default destructor.
double mass_error_value_
parameter stuff
Definition: AccurateMassSearchEngine.h:402
void run(ConsensusMap &, MzTab &) const
void searchMass_(double neutral_query_mass, double diff_mass, std::pair< Size, Size > &hit_indices) const
void queryByMZ(const double &observed_mz, const Int &observed_charge, const String &ion_mode, std::vector< AccurateMassSearchResult > &results, const EmpiricalFormula &observed_adduct=EmpiricalFormula()) const
search for a specific observed mass by enumerating all possible adducts and search M+X against databa...
std::vector< std::vector< AccurateMassSearchResult > > QueryResultsTable
Definition: AccurateMassSearchEngine.h:361
void annotate_(const std::vector< AccurateMassSearchResult > &, BaseFeature &) const
add search results to a Consensus/Feature
static const char * search_engine_identifier
uses 'AccurateMassSearchEngine' as search engine id for protein and peptide ids which are generated b...
Definition: AccurateMassSearchEngine.h:268
bool iso_similarity_
Definition: AccurateMassSearchEngine.h:405
std::vector< AdductInfo > pos_adducts_
Definition: AccurateMassSearchEngine.h:413
String neg_adducts_fname_
Definition: AccurateMassSearchEngine.h:408
HMDBPropsMapping hmdb_properties_mapping_
Definition: AccurateMassSearchEngine.h:397
std::vector< String > massIDs
Definition: AccurateMassSearchEngine.h:372
String ion_mode_
Definition: AccurateMassSearchEngine.h:404
double computeIsotopePatternSimilarity_(const Feature &feat, const EmpiricalFormula &form) const
void parseMappingFile_(const StringList &)
String database_version_
Definition: AccurateMassSearchEngine.h:417
double computeCosineSim_(const std::vector< double > &x, const std::vector< double > &y) const
bool is_initialized_
true if init_() was called without any subsequent param changes
Definition: AccurateMassSearchEngine.h:399
StringList db_mapping_file_
Definition: AccurateMassSearchEngine.h:410
std::vector< AdductInfo > neg_adducts_
Definition: AccurateMassSearchEngine.h:414
String database_name_
Definition: AccurateMassSearchEngine.h:416
String formula
Definition: AccurateMassSearchEngine.h:373
void updateMembers_() override
This method is used to update extra member variables at the end of the setParameters() method.
void run(FeatureMap &, MzTab &) const
String resolveAutoMode_(const MAPTYPE &map) const
private member functions
Definition: AccurateMassSearchEngine.h:305
std::map< String, std::vector< String > > HMDBPropsMapping
Definition: AccurateMassSearchEngine.h:367
void queryByFeature(const Feature &feature, const Size &feature_index, const String &ion_mode, std::vector< AccurateMassSearchResult > &results) const
void parseAdductsFile_(const String &filename, std::vector< AdductInfo > &result)
std::vector< MappingEntry_ > mass_mappings_
Definition: AccurateMassSearchEngine.h:375
Definition: AccurateMassSearchEngine.h:370
Definition: AccurateMassSearchEngine.h:113
const std::vector< String > & getMatchingHMDBids() const
Size getMatchingIndex() const
std::vector< double > mass_trace_intensities_
Definition: AccurateMassSearchEngine.h:224
std::vector< double > getIndividualIntensities() const
get the observed intensities
void setMasstraceIntensities(const std::vector< double > &)
std::vector< String > matching_hmdb_ids_
Definition: AccurateMassSearchEngine.h:222
double getObservedMZ() const
get the m/z of the small molecule + adduct
std::vector< double > individual_intensities_
Definition: AccurateMassSearchEngine.h:216
AccurateMassSearchResult & operator=(const AccurateMassSearchResult &)
assignment operator
double getFoundMass() const
get the mass returned by the query (uncharged small molecule)
void setQueryMass(const double &)
set the mass used to query the database (uncharged small molecule)
const String & getFoundAdduct() const
double observed_intensity_
Definition: AccurateMassSearchEngine.h:215
void setIsotopesSimScore(const double &)
void setSourceFeatureIndex(const Size &)
const String & getFormulaString() const
double searched_mass_
Definition: AccurateMassSearchEngine.h:210
void setFoundMass(const double &)
set the mass returned by the query (uncharged small molecule)
double theoretical_mz_
Definition: AccurateMassSearchEngine.h:209
AccurateMassSearchResult()
Default constructor.
double getMZErrorPPM() const
get the error between observed and theoretical m/z in ppm
double observed_rt_
Definition: AccurateMassSearchEngine.h:214
Int getCharge() const
get the charge
double isotopes_sim_score_
Definition: AccurateMassSearchEngine.h:225
~AccurateMassSearchResult()
Default destructor.
String empirical_formula_
Definition: AccurateMassSearchEngine.h:221
void setCharge(const Int &)
set the charge
friend std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
void setFoundAdduct(const String &)
double getQueryMass() const
get the mass used to query the database (uncharged small molecule)
void setObservedMZ(const double &)
set the m/z of the small molecule + adduct
AccurateMassSearchResult(const AccurateMassSearchResult &)
copy constructor
void setEmpiricalFormula(const String &)
void setMZErrorPPM(const double)
set the error between observed and theoretical m/z in ppm
Size getSourceFeatureIndex() const
double getObservedRT() const
get the observed rt
double getObservedIntensity() const
get the observed intensity
double getIsotopesSimScore() const
String found_adduct_
Definition: AccurateMassSearchEngine.h:220
double observed_mz_
Stored information/results of DB query.
Definition: AccurateMassSearchEngine.h:208
double db_mass_
Definition: AccurateMassSearchEngine.h:211
void setMatchingIndex(const Size &)
Size source_feature_index_
Definition: AccurateMassSearchEngine.h:218
Size matching_index_
Definition: AccurateMassSearchEngine.h:217
void setObservedIntensity(const double &)
set the observed intensity
void setMatchingHMDBids(const std::vector< String > &)
double mz_error_ppm_
Definition: AccurateMassSearchEngine.h:213
const std::vector< double > & getMasstraceIntensities() const
return trace intensities of the underlying feature;
void setObservedRT(const double &rt)
set the observed rt
Int charge_
Definition: AccurateMassSearchEngine.h:212
void setCalculatedMZ(const double &)
set the theoretical m/z of the small molecule + adduct
void setIndividualIntensities(const std::vector< double > &)
set the observed intensities
double getCalculatedMZ() const
get the theoretical m/z of the small molecule + adduct
Definition: AccurateMassSearchEngine.h:58
AdductInfo(const String &name, const EmpiricalFormula &adduct, int charge, UInt mol_multiplier=1)
double mass_
computed from ef_.getMonoWeight(), but stored explicitly for efficiency
Definition: AccurateMassSearchEngine.h:107
EmpiricalFormula ef_
EF for the actual adduct e.g. 'H' in 2M+H;+1.
Definition: AccurateMassSearchEngine.h:106
const EmpiricalFormula & getEmpiricalFormula() const
EF of adduct itself. Useful for comparison with feature adduct annotation.
String name_
members
Definition: AccurateMassSearchEngine.h:105
UInt getMolMultiplier() const
get molecular multiplier (mono, dimer, trimer)
double getNeutralMass(double observed_mz) const
returns the neutral mass of the small molecule without adduct (creates monomer from nmer,...
int getCharge() const
get charge of adduct
static AdductInfo parseAdductString(const String &adduct)
UInt mol_multiplier_
Mol multiplier, e.g. 2 in 2M+H;+1.
Definition: AccurateMassSearchEngine.h:109
int charge_
negative or positive charge; must not be 0
Definition: AccurateMassSearchEngine.h:108
const String & getName() const
original string used for parsing
bool isCompatible(EmpiricalFormula db_entry) const
double getMZ(double neutral_mass) const
returns the m/z of the small molecule with neutral mass neutral_mass if the adduct is added (given ma...
AdductInfo()
hide default C'tor
A basic LC-MS feature.
Definition: BaseFeature.h:58
A consensus feature spanning multiple LC-MS/MS experiments.
Definition: ConsensusFeature.h:71
A container for consensus elements.
Definition: ConsensusMap.h:88
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:93
Exception indicating that an invalid parameter was handed over to an algorithm.
Definition: Exception.h:341
A container for features.
Definition: FeatureMap.h:105
An LC-MS feature.
Definition: Feature.h:72
static String basename(const String &file)
Data model of MzTab files. Please see the official MzTab specification at https://code....
Definition: MzTab.h:809
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:55
A more convenient string class.
Definition: String.h:61
int Int
Signed integer type.
Definition: Types.h:102
unsigned int UInt
Unsigned integer type.
Definition: Types.h:94
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:70
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
Definition: AccurateMassSearchEngine.h:378
bool operator()(T1 const &t1, T2 const &t2) const
Definition: AccurateMassSearchEngine.h:390
double asMass(double t) const
Definition: AccurateMassSearchEngine.h:384
double asMass(const MappingEntry_ &v) const
Definition: AccurateMassSearchEngine.h:379