| 85 | } |
| 86 | |
| 87 | ExitCodes main_(int, const char **) override |
| 88 | { |
| 89 | //------------------------------------------------------------- |
| 90 | // parsing parameters |
| 91 | //------------------------------------------------------------- |
| 92 | String in(getStringOption_("in")); |
| 93 | String out(getStringOption_("out")); |
| 94 | String merging_method(getStringOption_("merging_method")); |
| 95 | |
| 96 | //------------------------------------------------------------- |
| 97 | // reading input |
| 98 | //------------------------------------------------------------- |
| 99 | |
| 100 | FileHandler fh; |
| 101 | FileTypes::Type in_type = fh.getType(in); |
| 102 | |
| 103 | PeakMap exp; |
| 104 | fh.loadExperiment(in, exp, in_type, log_type_); |
| 105 | exp.sortSpectra(); |
| 106 | exp.updateRanges(); |
| 107 | |
| 108 | auto levels = exp.getMSLevels(); |
| 109 | if (levels.empty()) throw Exception::InvalidSize(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION, levels.size()); |
| 110 | int min_ms_level = levels.front(); |
| 111 | int max_ms_level = levels.back(); |
| 112 | //------------------------------------------------------------- |
| 113 | // calculations |
| 114 | //------------------------------------------------------------- |
| 115 | |
| 116 | SpectraMerger merger; |
| 117 | merger.setLogType(log_type_); |
| 118 | merger.setParameters(getParam_().copy("algorithm:", true)); |
| 119 | if (merging_method == "precursor_method") |
| 120 | { |
| 121 | merger.mergeSpectraPrecursors(exp); |
| 122 | } |
| 123 | else if (merging_method == "block_method") |
| 124 | { |
| 125 | merger.mergeSpectraBlockWise(exp); |
| 126 | } |
| 127 | else if (merging_method == "average_gaussian") |
| 128 | { |
| 129 | int ms_level = merger.getParameters().getValue("average_gaussian:ms_level"); |
| 130 | if (ms_level == 0) |
| 131 | { |
| 132 | for (int tmp_ms_level = min_ms_level; tmp_ms_level <= max_ms_level; tmp_ms_level++) |
| 133 | { |
| 134 | merger.average(exp, "gaussian", tmp_ms_level); |
| 135 | } |
| 136 | } |
| 137 | else |
| 138 | { |
| 139 | merger.average(exp, "gaussian", ms_level); |
| 140 | } |
| 141 | } |
| 142 | else if (merging_method == "average_tophat") |
| 143 | { |
| 144 | int ms_level = merger.getParameters().getValue("average_tophat:ms_level"); |
nothing calls this directly
no test coverage detected