| 873 | |
| 874 | |
| 875 | BaseFeature OMSFileLoad::makeBaseFeature_(int id, SQLite::Statement& query_feat, |
| 876 | SQLite::Statement& query_meta, |
| 877 | SQLite::Statement& query_match) |
| 878 | { |
| 879 | BaseFeature feature; |
| 880 | feature.setRT(query_feat.getColumn("rt").getDouble()); |
| 881 | feature.setMZ(query_feat.getColumn("mz").getDouble()); |
| 882 | feature.setIntensity(query_feat.getColumn("intensity").getDouble()); |
| 883 | feature.setCharge(query_feat.getColumn("charge").getInt()); |
| 884 | feature.setWidth(query_feat.getColumn("width").getDouble()); |
| 885 | string quality_column = (version_number_ < 5) ? "overall_quality" : "quality"; |
| 886 | feature.setQuality(query_feat.getColumn(quality_column.c_str()).getDouble()); |
| 887 | feature.setUniqueId(query_feat.getColumn("unique_id").getInt64()); |
| 888 | if (id == -1) return feature; // stop here for feature handles (in consensus maps) |
| 889 | |
| 890 | auto primary_id = query_feat.getColumn("primary_molecule_id"); // optional |
| 891 | if (!primary_id.isNull()) |
| 892 | { |
| 893 | feature.setPrimaryID(identified_molecule_vars_[primary_id.getInt64()]); |
| 894 | } |
| 895 | // meta data: |
| 896 | if (!isEmpty_(query_meta)) |
| 897 | { |
| 898 | handleQueryMetaInfo_(query_meta, feature, id); |
| 899 | } |
| 900 | // ID matches: |
| 901 | if (!isEmpty_(query_match)) |
| 902 | { |
| 903 | query_match.bind(":id", id); |
| 904 | while (query_match.executeStep()) |
| 905 | { |
| 906 | Key match_id = query_match.getColumn("observation_match_id").getInt64(); |
| 907 | feature.addIDMatch(observation_match_refs_[match_id]); |
| 908 | } |
| 909 | query_match.reset(); // get ready for new executeStep() |
| 910 | } |
| 911 | return feature; |
| 912 | } |
| 913 | |
| 914 | |
| 915 | void OMSFileLoad::prepareQueriesBaseFeature_(SQLite::Statement& query_meta, |
nothing calls this directly
no test coverage detected