| 104 | } |
| 105 | |
| 106 | vector<double> sliceStatistics(const FeatureMap& map, Size begin, Size end) const |
| 107 | { |
| 108 | // If we are asked to produce stats for an empty set, return an empty vector. |
| 109 | if (end <= begin || end > map.size()) |
| 110 | { |
| 111 | return vector<double>(43); |
| 112 | } |
| 113 | |
| 114 | Size size = end - begin; |
| 115 | vector<double> intensities(size); |
| 116 | vector<double> peak_widths(size); |
| 117 | vector<double> mz(size); |
| 118 | vector<double> overall_qualities(size); |
| 119 | vector<double> mz_qualities(size); |
| 120 | vector<double> rt_qualities(size); |
| 121 | double tic = 0.0; |
| 122 | |
| 123 | for (Size i = begin; i < end; ++i) |
| 124 | { |
| 125 | intensities[i - begin] = map[i].getIntensity(); |
| 126 | mz[i - begin] = map[i].getMZ(); |
| 127 | peak_widths[i - begin] = map[i].getWidth(); |
| 128 | rt_qualities[i - begin] = map[i].getQuality(Feature::RT); |
| 129 | mz_qualities[i - begin] = map[i].getQuality(Feature::MZ); |
| 130 | overall_qualities[i - begin] = map[i].getOverallQuality(); |
| 131 | tic += map[i].getIntensity(); |
| 132 | } |
| 133 | |
| 134 | vector<double> results; |
| 135 | results.reserve(43); // 6 7-number stats + tic |
| 136 | results.push_back(tic); |
| 137 | results << Math::SummaryStatistics< vector<double> >(intensities); |
| 138 | results << Math::SummaryStatistics< vector<double> >(mz); |
| 139 | results << Math::SummaryStatistics< vector<double> >(peak_widths); |
| 140 | results << Math::SummaryStatistics< vector<double> >(overall_qualities); |
| 141 | results << Math::SummaryStatistics< vector<double> >(rt_qualities); |
| 142 | results << Math::SummaryStatistics< vector<double> >(mz_qualities); |
| 143 | |
| 144 | return results; |
| 145 | } |
| 146 | |
| 147 | protected: |
| 148 |
nothing calls this directly
no test coverage detected