| 434 | } |
| 435 | |
| 436 | void SiriusAdapterAlgorithm::preprocessingSirius(const String& featureinfo, |
| 437 | const MSExperiment& spectra, |
| 438 | FeatureMapping::FeatureMappingInfo& fm_info, |
| 439 | FeatureMapping::FeatureToMs2Indices& feature_mapping) const |
| 440 | { |
| 441 | // if fileparameter is given and should be not empty |
| 442 | if (!featureinfo.empty()) |
| 443 | { |
| 444 | if (File::exists(featureinfo) && !File::empty(featureinfo)) |
| 445 | { |
| 446 | // read featureXML |
| 447 | FeatureMap feature_map; |
| 448 | FileHandler().loadFeatures(featureinfo, feature_map); |
| 449 | |
| 450 | UInt num_masstrace_filter = getFilterByNumMassTraces(); |
| 451 | double precursor_mz_tol = getPrecursorMzTolerance(); |
| 452 | double precursor_rt_tol = getPrecursorRtTolerance(); |
| 453 | |
| 454 | if (num_masstrace_filter != 1 && !isFeatureOnly()) |
| 455 | { |
| 456 | num_masstrace_filter = 1; |
| 457 | OPENMS_LOG_WARN << "Parameter: filter_by_num_masstraces, was set to 1 to retain the adduct information for all MS2 spectra, if available. Masstrace filtering only makes sense in combination with feature_only." << std::endl; |
| 458 | } |
| 459 | |
| 460 | // filter feature by number of masstraces |
| 461 | auto map_it = remove_if(feature_map.begin(), feature_map.end(), |
| 462 | [&num_masstrace_filter](const Feature &feat) -> bool |
| 463 | { |
| 464 | unsigned int n_masstraces = feat.getMetaValue(Constants::UserParam::NUM_OF_MASSTRACES); |
| 465 | return n_masstraces < num_masstrace_filter; |
| 466 | }); |
| 467 | feature_map.erase(map_it, feature_map.end()); |
| 468 | |
| 469 | fm_info.feature_maps.push_back(feature_map); |
| 470 | fm_info.kd_tree.addMaps(fm_info.feature_maps); // KDTree references into feature_map |
| 471 | |
| 472 | // mapping of MS2 spectra to features |
| 473 | feature_mapping = FeatureMapping::assignMS2IndexToFeature(spectra, |
| 474 | fm_info, |
| 475 | precursor_mz_tol, |
| 476 | precursor_rt_tol, |
| 477 | precursorMzToleranceUnitIsPPM()); |
| 478 | } |
| 479 | else |
| 480 | { |
| 481 | throw OpenMS::Exception::FileEmpty(__FILE__, |
| 482 | __LINE__, |
| 483 | __FUNCTION__, |
| 484 | "Error: FeatureXML was empty, please provide a valid file."); |
| 485 | } |
| 486 | } |
| 487 | } |
| 488 | |
| 489 | void SiriusAdapterAlgorithm::logFeatureSpectraNumber(const String& featureinfo, |
| 490 | const FeatureMapping::FeatureToMs2Indices& feature_mapping, |
no test coverage detected