73 double getObservedMZ()
const;
76 void setObservedMZ(
const double&);
79 double getCalculatedMZ()
const;
82 void setCalculatedMZ(
const double&);
85 double getQueryMass()
const;
88 void setQueryMass(
const double&);
91 double getFoundMass()
const;
94 void setFoundMass(
const double&);
97 Int getCharge()
const;
100 void setCharge(
const Int&);
103 double getMZErrorPPM()
const;
106 void setMZErrorPPM(
const double);
109 double getObservedRT()
const;
112 void setObservedRT(
const double& rt);
115 double getObservedIntensity()
const;
118 void setObservedIntensity(
const double&);
121 std::vector<double> getIndividualIntensities()
const;
124 void setIndividualIntensities(
const std::vector<double>&);
126 Size getMatchingIndex()
const;
127 void setMatchingIndex(
const Size&);
129 Size getSourceFeatureIndex()
const;
130 void setSourceFeatureIndex(
const Size&);
132 const String& getFoundAdduct()
const;
133 void setFoundAdduct(
const String&);
135 const String& getFormulaString()
const;
136 void setEmpiricalFormula(
const String&);
138 const std::vector<String>& getMatchingHMDBids()
const;
139 void setMatchingHMDBids(
const std::vector<String>&);
142 const std::vector<double>& getMasstraceIntensities()
const;
143 void setMasstraceIntensities(
const std::vector<double>&);
145 double getIsotopesSimScore()
const;
146 void setIsotopesSimScore(
const double&);
213 static constexpr
char search_engine_identifier[] =
"AccurateMassSearchEngine";
226 void queryByMZ(
const double& observed_mz,
const Int& observed_charge,
const String& ion_mode, std::vector<AccurateMassSearchResult>& results,
const EmpiricalFormula& observed_adduct =
EmpiricalFormula())
const;
227 void queryByFeature(
const Feature& feature,
const Size& feature_index,
const String& ion_mode, std::vector<AccurateMassSearchResult>& results)
const;
228 void queryByConsensusFeature(
const ConsensusFeature& cfeat,
const Size& cf_index,
const Size& number_of_maps,
const String& ion_mode, std::vector<AccurateMassSearchResult>& results)
const;
245 void updateMembers_()
override;
255 String ion_mode_detect_msg =
"";
258 if (map[0].metaValueExists(
"scan_polarity"))
260 StringList pols = ListUtils::create<String>(
String(map[0].getMetaValue(
"scan_polarity")),
';');
261 if (pols.size() == 1 && !pols[0].empty())
264 if (pols[0] ==
"positive" || pols[0] ==
"negative")
266 ion_mode_internal = pols[0];
267 OPENMS_LOG_INFO <<
"Setting auto ion-mode to '" << ion_mode_internal <<
"' for file " <<
File::basename(map.getLoadedFilePath()) << std::endl;
269 else ion_mode_detect_msg =
String(
"Meta value 'scan_polarity' does not contain unknown ion mode") +
String(map[0].getMetaValue(
"scan_polarity"));
273 ion_mode_detect_msg =
String(
"ambiguous ion mode: ") +
String(map[0].getMetaValue(
"scan_polarity"));
278 ion_mode_detect_msg =
String(
"Meta value 'scan_polarity' not found in (Consensus-)Feature map");
283 OPENMS_LOG_INFO <<
"Meta value 'scan_polarity' cannot be determined since (Consensus-)Feature map is empty!" << std::endl;
286 if (!ion_mode_detect_msg.empty())
288 throw Exception::InvalidParameter(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,
String(
"Auto ionization mode could not resolve ion mode of data (") + ion_mode_detect_msg +
"!");
291 return ion_mode_internal;
295 void parseStructMappingFile_(
const StringList&);
296 void parseAdductsFile_(
const String& filename, std::vector<AdductInfo>& result);
297 void searchMass_(
double neutral_query_mass,
double diff_mass, std::pair<Size, Size>& hit_indices)
const;
300 void annotate_(
const std::vector<AccurateMassSearchResult>&,
BaseFeature&)
const;
303 std::vector<AccurateMassSearchResult> extractQueryResults_(
const Feature& feature,
const Size& feature_index,
const String& ion_mode_internal,
Size& dummy_count)
const;
306 void addMatchesToID_(
308 const std::vector<AccurateMassSearchResult>& amr,
317 double computeCosineSim_(
const std::vector<double>& x,
const std::vector<double>& y)
const;
323 void exportMzTab_(
const QueryResultsTable& overall_results,
const Size number_of_maps,
MzTab& mztab_out,
const std::vector<String>& file_locations)
const;
351 template <
typename T1,
typename T2>
354 return asMass(t1) < asMass(t2);
363 bool legacyID_ =
true;
String formula
Definition: AccurateMassSearchEngine.h:335
std::vector< AdductInfo > pos_adducts_
Definition: AccurateMassSearchEngine.h:377
String ion_mode_
Definition: AccurateMassSearchEngine.h:368
String mass_error_unit_
Definition: AccurateMassSearchEngine.h:367
bool operator()(T1 const &t1, T2 const &t2) const
Definition: AccurateMassSearchEngine.h:352
double searched_mass_
Definition: AccurateMassSearchEngine.h:155
A more convenient string class.
Definition: String.h:58
bool iso_similarity_
Definition: AccurateMassSearchEngine.h:369
bool keep_unidentified_masses_
Definition: AccurateMassSearchEngine.h:384
Definition: AccurateMassSearchEngine.h:339
String empirical_formula_
Definition: AccurateMassSearchEngine.h:166
double db_mass_
Definition: AccurateMassSearchEngine.h:156
std::vector< std::vector< String > > MassIDMapping
private member variables
Definition: AccurateMassSearchEngine.h:328
A container for features.
Definition: FeatureMap.h:98
#define OPENMS_LOG_INFO
Macro if a information, e.g. a status should be reported.
Definition: LogStream.h:470
Definition: IdentificationData.h:112
A container for consensus elements.
Definition: ConsensusMap.h:83
String database_name_
Definition: AccurateMassSearchEngine.h:380
std::vector< double > individual_intensities_
Definition: AccurateMassSearchEngine.h:161
double theoretical_mz_
Definition: AccurateMassSearchEngine.h:154
StringList db_mapping_file_
Definition: AccurateMassSearchEngine.h:374
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
A basic LC-MS feature.
Definition: BaseFeature.h:58
std::vector< String > matching_hmdb_ids_
Definition: AccurateMassSearchEngine.h:167
String found_adduct_
Definition: AccurateMassSearchEngine.h:165
double observed_rt_
Definition: AccurateMassSearchEngine.h:159
Definition: AccurateMassSearchEngine.h:57
HMDBPropsMapping hmdb_properties_mapping_
Definition: AccurateMassSearchEngine.h:359
std::vector< AdductInfo > neg_adducts_
Definition: AccurateMassSearchEngine.h:378
String resolveAutoMode_(const MAPTYPE &map) const
private member functions
Definition: AccurateMassSearchEngine.h:252
String pos_adducts_fname_
Definition: AccurateMassSearchEngine.h:371
std::map< String, std::vector< String > > HMDBPropsMapping
Definition: AccurateMassSearchEngine.h:329
Int charge_
Definition: AccurateMassSearchEngine.h:157
String & toLower()
Converts the string to lowercase.
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
std::vector< std::vector< AccurateMassSearchResult > > QueryResultsTable
Definition: AccurateMassSearchEngine.h:321
double observed_mz_
Stored information/results of DB query.
Definition: AccurateMassSearchEngine.h:153
Exception indicating that an invalid parameter was handed over to an algorithm.
Definition: Exception.h:339
An LC-MS feature.
Definition: Feature.h:70
Data model of MzTab-M files Please see the MzTab-M specification at https://github.com/HUPO-PSI/mzTab/blob/master/specification_document-releases/2_0-Metabolomics-Release/mzTab_format_specification_2_0-M_release.adoc#use-cases-for-mztab.
Definition: MzTabM.h:233
double mz_error_ppm_
Definition: AccurateMassSearchEngine.h:158
static String basename(const String &file)
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:70
double asMass(double t) const
Definition: AccurateMassSearchEngine.h:346
StringList db_struct_file_
Definition: AccurateMassSearchEngine.h:375
double isotopes_sim_score_
Definition: AccurateMassSearchEngine.h:170
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
Definition: AccurateMassSearchEngine.h:331
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:52
double mass_error_value_
parameter stuff
Definition: AccurateMassSearchEngine.h:366
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:92
Size source_feature_index_
Definition: AccurateMassSearchEngine.h:163
Size matching_index_
Definition: AccurateMassSearchEngine.h:162
String database_location_
Definition: AccurateMassSearchEngine.h:382
String neg_adducts_fname_
Definition: AccurateMassSearchEngine.h:372
std::vector< String > massIDs
Definition: AccurateMassSearchEngine.h:334
double mass
Definition: AccurateMassSearchEngine.h:333
double observed_intensity_
Definition: AccurateMassSearchEngine.h:160
int Int
Signed integer type.
Definition: Types.h:102
std::vector< double > mass_trace_intensities_
Definition: AccurateMassSearchEngine.h:169
double asMass(const MappingEntry_ &v) const
Definition: AccurateMassSearchEngine.h:341
bool is_initialized_
true if init_() was called without any subsequent param changes
Definition: AccurateMassSearchEngine.h:361
std::vector< MappingEntry_ > mass_mappings_
Definition: AccurateMassSearchEngine.h:337
String database_version_
Definition: AccurateMassSearchEngine.h:381
A consensus feature spanning multiple LC-MS/MS experiments.
Definition: ConsensusFeature.h:69
Data model of MzTab files. Please see the official MzTab specification at https://code.google.com/p/mztab/.
Definition: MzTab.h:477
An algorithm to search for exact mass matches from a spectrum against a database (e.g. HMDB).
Definition: AccurateMassSearchEngine.h:206