71 const String& input_filename =
"inputfile",
72 bool ms1_scores =
false,
74 bool uis_scores =
false) :
75 output_filename_(output_filename),
76 input_filename_(input_filename),
78 doWrite_(!output_filename.empty()),
79 use_ms1_traces_(ms1_scores),
81 enable_uis_scoring_(uis_scores)
84 static int callback(
void * ,
int argc,
char **argv,
char **azColName)
89 printf(
"%s = %s\n", azColName[i], argv[i] ? argv[i] :
"NULL");
107 char *zErrMsg =
nullptr;
111 rc = sqlite3_open(output_filename_.c_str(), &db);
114 fprintf(stderr,
"Can't open database: %s\n", sqlite3_errmsg(db));
118 const char * create_sql =
119 "CREATE TABLE RUN(" \
120 "ID INT PRIMARY KEY NOT NULL," \
121 "FILENAME TEXT NOT NULL); " \
123 "CREATE TABLE FEATURE(" \
124 "ID INT PRIMARY KEY NOT NULL," \
125 "RUN_ID INT NOT NULL," \
126 "PRECURSOR_ID INT NOT NULL," \
127 "EXP_RT REAL NOT NULL," \
128 "NORM_RT REAL NOT NULL," \
129 "DELTA_RT REAL NOT NULL," \
130 "LEFT_WIDTH REAL NOT NULL," \
131 "RIGHT_WIDTH REAL NOT NULL); " \
133 "CREATE TABLE FEATURE_MS1(" \
134 "FEATURE_ID INT NOT NULL," \
135 "AREA_INTENSITY REAL NOT NULL," \
136 "APEX_INTENSITY REAL NOT NULL," \
137 "VAR_MASSDEV_SCORE REAL NULL," \
138 "VAR_MI_SCORE REAL NULL," \
139 "VAR_MI_CONTRAST_SCORE REAL NULL," \
140 "VAR_MI_COMBINED_SCORE REAL NULL," \
141 "VAR_ISOTOPE_CORRELATION_SCORE REAL NULL," \
142 "VAR_ISOTOPE_OVERLAP_SCORE REAL NULL," \
143 "VAR_XCORR_COELUTION REAL NULL," \
144 "VAR_XCORR_COELUTION_CONTRAST REAL NULL," \
145 "VAR_XCORR_COELUTION_COMBINED REAL NULL," \
146 "VAR_XCORR_SHAPE REAL NULL," \
147 "VAR_XCORR_SHAPE_CONTRAST REAL NULL," \
148 "VAR_XCORR_SHAPE_COMBINED REAL NULL); " \
150 "CREATE TABLE FEATURE_MS2(" \
151 "FEATURE_ID INT NOT NULL," \
152 "AREA_INTENSITY REAL NOT NULL," \
153 "TOTAL_AREA_INTENSITY REAL NOT NULL," \
154 "APEX_INTENSITY REAL NOT NULL," \
155 "TOTAL_MI REAL NULL," \
156 "VAR_BSERIES_SCORE REAL NULL," \
157 "VAR_DOTPROD_SCORE REAL NULL," \
158 "VAR_INTENSITY_SCORE REAL NULL," \
159 "VAR_ISOTOPE_CORRELATION_SCORE REAL NULL," \
160 "VAR_ISOTOPE_OVERLAP_SCORE REAL NULL," \
161 "VAR_LIBRARY_CORR REAL NULL," \
162 "VAR_LIBRARY_DOTPROD REAL NULL," \
163 "VAR_LIBRARY_MANHATTAN REAL NULL," \
164 "VAR_LIBRARY_RMSD REAL NULL," \
165 "VAR_LIBRARY_ROOTMEANSQUARE REAL NULL," \
166 "VAR_LIBRARY_SANGLE REAL NULL," \
167 "VAR_LOG_SN_SCORE REAL NULL," \
168 "VAR_MANHATTAN_SCORE REAL NULL," \
169 "VAR_MASSDEV_SCORE REAL NULL," \
170 "VAR_MASSDEV_SCORE_WEIGHTED REAL NULL," \
171 "VAR_MI_SCORE REAL NULL," \
172 "VAR_MI_WEIGHTED_SCORE REAL NULL," \
173 "VAR_MI_RATIO_SCORE REAL NULL," \
174 "VAR_NORM_RT_SCORE REAL NULL," \
175 "VAR_XCORR_COELUTION REAL NULL," \
176 "VAR_XCORR_COELUTION_WEIGHTED REAL NULL," \
177 "VAR_XCORR_SHAPE REAL NULL," \
178 "VAR_XCORR_SHAPE_WEIGHTED REAL NULL," \
179 "VAR_YSERIES_SCORE REAL NULL," \
180 "VAR_ELUTION_MODEL_FIT_SCORE REAL NULL," \
181 "VAR_SONAR_LAG REAL NULL," \
182 "VAR_SONAR_SHAPE REAL NULL," \
183 "VAR_SONAR_LOG_SN REAL NULL," \
184 "VAR_SONAR_LOG_DIFF REAL NULL," \
185 "VAR_SONAR_LOG_TREND REAL NULL," \
186 "VAR_SONAR_RSQ REAL NULL); " \
188 "CREATE TABLE FEATURE_PRECURSOR(" \
189 "FEATURE_ID INT NOT NULL," \
190 "ISOTOPE INT NOT NULL," \
191 "AREA_INTENSITY REAL NOT NULL," \
192 "APEX_INTENSITY REAL NOT NULL);" \
194 "CREATE TABLE FEATURE_TRANSITION(" \
195 "FEATURE_ID INT NOT NULL," \
196 "TRANSITION_ID INT NOT NULL," \
197 "AREA_INTENSITY REAL NOT NULL," \
198 "TOTAL_AREA_INTENSITY REAL NOT NULL," \
199 "APEX_INTENSITY REAL NOT NULL," \
200 "TOTAL_MI REAL NULL," \
201 "VAR_INTENSITY_SCORE REAL NULL," \
202 "VAR_INTENSITY_RATIO_SCORE REAL NULL," \
203 "VAR_LOG_INTENSITY REAL NULL," \
204 "VAR_XCORR_COELUTION REAL NULL," \
205 "VAR_XCORR_SHAPE REAL NULL," \
206 "VAR_LOG_SN_SCORE REAL NULL," \
207 "VAR_MASSDEV_SCORE REAL NULL," \
208 "VAR_MI_SCORE REAL NULL," \
209 "VAR_MI_RATIO_SCORE REAL NULL," \
210 "VAR_ISOTOPE_CORRELATION_SCORE REAL NULL," \
211 "VAR_ISOTOPE_OVERLAP_SCORE REAL NULL); " ;
215 rc = sqlite3_exec(db, create_sql, callback,
nullptr, &zErrMsg);
216 if( rc != SQLITE_OK )
218 std::string error_message = zErrMsg;
219 sqlite3_free(zErrMsg);
225 std::stringstream sql_run;
226 sql_run <<
"INSERT INTO RUN (ID, FILENAME) VALUES (" 227 << *(int64_t*)&run_id_ <<
", '" 228 << input_filename_ <<
"'); ";
231 rc = sqlite3_exec(db, sql_run.str().c_str(), callback,
nullptr, &zErrMsg);
232 if( rc != SQLITE_OK )
234 std::string error_message = zErrMsg;
235 sqlite3_free(zErrMsg);
278 std::vector<String> tmp_separated_scores, separated_scores;
282 tmp_separated_scores = ListUtils::create<String>((
String)feature.
getMetaValue(score_name),
';');
285 for (
Size i = 0; i < tmp_separated_scores.size(); ++i)
287 if (tmp_separated_scores[i] ==
"")
289 separated_scores.push_back(
"NULL");
293 separated_scores.push_back(tmp_separated_scores[i]);
297 return(separated_scores);
318 std::stringstream sql, sql_feature, sql_feature_ms1, sql_feature_ms1_precursor, sql_feature_ms2, sql_feature_ms2_transition, sql_feature_uis_transition;
320 for (FeatureMap::iterator feature_it = output.begin(); feature_it != output.end(); ++feature_it)
322 UInt64 uint64_feature_id = feature_it->getUniqueId();
323 int64_t feature_id = *(int64_t*)&uint64_feature_id;
325 for (std::vector<Feature>::iterator sub_it = feature_it->getSubordinates().begin(); sub_it != feature_it->getSubordinates().end(); ++sub_it)
327 if (sub_it->metaValueExists(
"FeatureLevel") && sub_it->getMetaValue(
"FeatureLevel") ==
"MS2")
329 std::string total_mi =
"NULL";
330 if (!sub_it->getMetaValue(
"total_mi").isEmpty())
332 total_mi = sub_it->getMetaValue(
"total_mi").toString();
334 sql_feature_ms2_transition <<
"INSERT INTO FEATURE_TRANSITION (FEATURE_ID, TRANSITION_ID, AREA_INTENSITY, TOTAL_AREA_INTENSITY, APEX_INTENSITY, TOTAL_MI) VALUES (" 335 << feature_id <<
", " 336 << sub_it->getMetaValue(
"native_id") <<
", " 337 << sub_it->getIntensity() <<
", " 338 << sub_it->getMetaValue(
"total_xic") <<
", " 339 << sub_it->getMetaValue(
"peak_apex_int") <<
", " 340 << total_mi <<
"); ";
342 else if (sub_it->metaValueExists(
"FeatureLevel") && sub_it->getMetaValue(
"FeatureLevel") ==
"MS1" && sub_it->getIntensity() > 0.0)
344 std::vector<String> precursor_id;
346 sql_feature_ms1_precursor <<
"INSERT INTO FEATURE_PRECURSOR (FEATURE_ID, ISOTOPE, AREA_INTENSITY, APEX_INTENSITY) VALUES (" 347 << feature_id <<
", " 348 << precursor_id[1] <<
", " 349 << sub_it->getIntensity() <<
", " 350 << sub_it->getMetaValue(
"peak_apex_int") <<
"); ";
354 sql_feature <<
"INSERT INTO FEATURE (ID, RUN_ID, PRECURSOR_ID, EXP_RT, NORM_RT, DELTA_RT, LEFT_WIDTH, RIGHT_WIDTH) VALUES (" 355 << feature_id <<
", '" 356 << *(int64_t*)&run_id_ <<
"', " 358 << feature_it->getRT() <<
", " 359 << feature_it->getMetaValue(
"norm_RT") <<
", " 360 << feature_it->getMetaValue(
"delta_rt") <<
", " 361 << feature_it->getMetaValue(
"leftWidth") <<
", " 362 << feature_it->getMetaValue(
"rightWidth") <<
"); ";
364 sql_feature_ms2 <<
"INSERT INTO FEATURE_MS2 (FEATURE_ID, AREA_INTENSITY, TOTAL_AREA_INTENSITY, APEX_INTENSITY, TOTAL_MI, VAR_BSERIES_SCORE, VAR_DOTPROD_SCORE, VAR_INTENSITY_SCORE, VAR_ISOTOPE_CORRELATION_SCORE, VAR_ISOTOPE_OVERLAP_SCORE, VAR_LIBRARY_CORR, VAR_LIBRARY_DOTPROD, VAR_LIBRARY_MANHATTAN, VAR_LIBRARY_RMSD, VAR_LIBRARY_ROOTMEANSQUARE, VAR_LIBRARY_SANGLE, VAR_LOG_SN_SCORE, VAR_MANHATTAN_SCORE, VAR_MASSDEV_SCORE, VAR_MASSDEV_SCORE_WEIGHTED, VAR_MI_SCORE, VAR_MI_WEIGHTED_SCORE, VAR_MI_RATIO_SCORE, VAR_NORM_RT_SCORE, VAR_XCORR_COELUTION,VAR_XCORR_COELUTION_WEIGHTED, VAR_XCORR_SHAPE, VAR_XCORR_SHAPE_WEIGHTED, VAR_YSERIES_SCORE, VAR_ELUTION_MODEL_FIT_SCORE, VAR_SONAR_LAG, VAR_SONAR_SHAPE, VAR_SONAR_LOG_SN, VAR_SONAR_LOG_DIFF, VAR_SONAR_LOG_TREND, VAR_SONAR_RSQ) VALUES (" 365 << feature_id <<
", " 366 << feature_it->getIntensity() <<
", " 367 << getScore(*feature_it,
"total_xic") <<
", " 368 << getScore(*feature_it,
"peak_apices_sum") <<
", " 369 << getScore(*feature_it,
"total_mi") <<
", " 370 << getScore(*feature_it,
"var_bseries_score") <<
", " 371 << getScore(*feature_it,
"var_dotprod_score") <<
", " 372 << getScore(*feature_it,
"var_intensity_score") <<
", " 373 << getScore(*feature_it,
"var_isotope_correlation_score") <<
", " 374 << getScore(*feature_it,
"var_isotope_overlap_score") <<
", " 375 << getScore(*feature_it,
"var_library_corr") <<
", " 376 << getScore(*feature_it,
"var_library_dotprod") <<
", " 377 << getScore(*feature_it,
"var_library_manhattan") <<
", " 378 << getScore(*feature_it,
"var_library_rmsd") <<
", " 379 << getScore(*feature_it,
"var_library_rootmeansquare") <<
", " 380 << getScore(*feature_it,
"var_library_sangle") <<
", " 381 << getScore(*feature_it,
"var_log_sn_score") <<
", " 382 << getScore(*feature_it,
"var_manhatt_score") <<
", " 383 << getScore(*feature_it,
"var_massdev_score") <<
", " 384 << getScore(*feature_it,
"var_massdev_score_weighted") <<
", " 385 << getScore(*feature_it,
"var_mi_score") <<
", " 386 << getScore(*feature_it,
"var_mi_weighted_score") <<
", " 387 << getScore(*feature_it,
"var_mi_ratio_score") <<
", " 388 << getScore(*feature_it,
"var_norm_rt_score") <<
", " 389 << getScore(*feature_it,
"var_xcorr_coelution") <<
", " 390 << getScore(*feature_it,
"var_xcorr_coelution_weighted") <<
", " 391 << getScore(*feature_it,
"var_xcorr_shape") <<
", " 392 << getScore(*feature_it,
"var_xcorr_shape_weighted") <<
", " 393 << getScore(*feature_it,
"var_yseries_score") <<
", " 394 << getScore(*feature_it,
"var_elution_model_fit_score") <<
", " 395 << getScore(*feature_it,
"var_sonar_lag") <<
", " 396 << getScore(*feature_it,
"var_sonar_shape") <<
", " 397 << getScore(*feature_it,
"var_sonar_log_sn") <<
", " 398 << getScore(*feature_it,
"var_sonar_log_diff") <<
", " 399 << getScore(*feature_it,
"var_sonar_log_trend") <<
", " 400 << getScore(*feature_it,
"var_sonar_rsq") <<
"); ";
404 sql_feature_ms1 <<
"INSERT INTO FEATURE_MS1 (FEATURE_ID, AREA_INTENSITY, APEX_INTENSITY, VAR_MASSDEV_SCORE, VAR_MI_SCORE, VAR_MI_CONTRAST_SCORE, VAR_MI_COMBINED_SCORE, VAR_ISOTOPE_CORRELATION_SCORE, VAR_ISOTOPE_OVERLAP_SCORE, VAR_XCORR_COELUTION, VAR_XCORR_COELUTION_CONTRAST, VAR_XCORR_COELUTION_COMBINED, VAR_XCORR_SHAPE, VAR_XCORR_SHAPE_CONTRAST, VAR_XCORR_SHAPE_COMBINED) VALUES (" 405 << feature_id <<
", " 406 << getScore(*feature_it,
"ms1_area_intensity") <<
", " 407 << getScore(*feature_it,
"ms1_apex_intensity") <<
", " 408 << getScore(*feature_it,
"var_ms1_ppm_diff") <<
", " 409 << getScore(*feature_it,
"var_ms1_mi_score") <<
", " 410 << getScore(*feature_it,
"var_ms1_mi_contrast_score") <<
", " 411 << getScore(*feature_it,
"var_ms1_mi_combined_score") <<
", " 412 << getScore(*feature_it,
"var_ms1_isotope_correlation") <<
", " 413 << getScore(*feature_it,
"var_ms1_isotope_overlap") <<
", " 414 << getScore(*feature_it,
"var_ms1_xcorr_coelution") <<
", " 415 << getScore(*feature_it,
"var_ms1_xcorr_coelution_contrast") <<
", " 416 << getScore(*feature_it,
"var_ms1_xcorr_coelution_combined") <<
", " 417 << getScore(*feature_it,
"var_ms1_xcorr_shape") <<
", " 418 << getScore(*feature_it,
"var_ms1_xcorr_shape_contrast") <<
", " 419 << getScore(*feature_it,
"var_ms1_xcorr_shape_combined") <<
"); ";
422 if (enable_uis_scoring_)
424 std::vector<String> id_target_transition_names = getSeparateScore(*feature_it,
"id_target_transition_names");
425 std::vector<String> id_target_area_intensity = getSeparateScore(*feature_it,
"id_target_area_intensity");
426 std::vector<String> id_target_total_area_intensity = getSeparateScore(*feature_it,
"id_target_total_area_intensity");
427 std::vector<String> id_target_apex_intensity = getSeparateScore(*feature_it,
"id_target_apex_intensity");
428 std::vector<String> id_target_total_mi = getSeparateScore(*feature_it,
"id_target_apex_intensity");
429 std::vector<String> id_target_intensity_score = getSeparateScore(*feature_it,
"id_target_intensity_score");
430 std::vector<String> id_target_intensity_ratio_score = getSeparateScore(*feature_it,
"id_target_intensity_ratio_score");
431 std::vector<String> id_target_log_intensity = getSeparateScore(*feature_it,
"id_target_ind_log_intensity");
432 std::vector<String> id_target_ind_xcorr_coelution = getSeparateScore(*feature_it,
"id_target_ind_xcorr_coelution");
433 std::vector<String> id_target_ind_xcorr_shape = getSeparateScore(*feature_it,
"id_target_ind_xcorr_shape");
434 std::vector<String> id_target_ind_log_sn_score = getSeparateScore(*feature_it,
"id_target_ind_log_sn_score");
435 std::vector<String> id_target_ind_massdev_score = getSeparateScore(*feature_it,
"id_target_ind_massdev_score");
436 std::vector<String> id_target_ind_mi_score = getSeparateScore(*feature_it,
"id_target_ind_mi_score");
437 std::vector<String> id_target_ind_mi_ratio_score = getSeparateScore(*feature_it,
"id_target_ind_mi_ratio_score");
438 std::vector<String> id_target_ind_isotope_correlation = getSeparateScore(*feature_it,
"id_target_ind_isotope_correlation");
439 std::vector<String> id_target_ind_isotope_overlap = getSeparateScore(*feature_it,
"id_target_ind_isotope_overlap");
441 if ((
String)feature_it->getMetaValue(
"id_target_num_transitions") !=
"")
443 int id_target_num_transitions = feature_it->getMetaValue(
"id_target_num_transitions").toString().toInt();
445 for (
int i = 0; i < id_target_num_transitions; ++i)
447 sql_feature_uis_transition <<
"INSERT INTO FEATURE_TRANSITION (FEATURE_ID, TRANSITION_ID, AREA_INTENSITY, TOTAL_AREA_INTENSITY, APEX_INTENSITY, TOTAL_MI, VAR_INTENSITY_SCORE, VAR_INTENSITY_RATIO_SCORE, VAR_LOG_INTENSITY, VAR_XCORR_COELUTION, VAR_XCORR_SHAPE, VAR_LOG_SN_SCORE, VAR_MASSDEV_SCORE, VAR_MI_SCORE, VAR_MI_RATIO_SCORE, VAR_ISOTOPE_CORRELATION_SCORE, VAR_ISOTOPE_OVERLAP_SCORE) VALUES (" 448 << feature_id <<
", " 449 << id_target_transition_names[i] <<
", " 450 << id_target_area_intensity[i] <<
", " 451 << id_target_total_area_intensity[i] <<
", " 452 << id_target_apex_intensity[i] <<
", " 453 << id_target_total_mi[i] <<
", " 454 << id_target_intensity_score[i] <<
", " 455 << id_target_intensity_ratio_score[i] <<
", " 456 << id_target_log_intensity[i] <<
", " 457 << id_target_ind_xcorr_coelution[i] <<
", " 458 << id_target_ind_xcorr_shape[i] <<
", " 459 << id_target_ind_log_sn_score[i] <<
", " 460 << id_target_ind_massdev_score[i] <<
", " 461 << id_target_ind_mi_score[i] <<
", " 462 << id_target_ind_mi_ratio_score[i] <<
", " 463 << id_target_ind_isotope_correlation[i] <<
", " 464 << id_target_ind_isotope_overlap[i] <<
"); ";
468 std::vector<String> id_decoy_transition_names = getSeparateScore(*feature_it,
"id_decoy_transition_names");
469 std::vector<String> id_decoy_area_intensity = getSeparateScore(*feature_it,
"id_decoy_area_intensity");
470 std::vector<String> id_decoy_total_area_intensity = getSeparateScore(*feature_it,
"id_decoy_total_area_intensity");
471 std::vector<String> id_decoy_apex_intensity = getSeparateScore(*feature_it,
"id_decoy_apex_intensity");
472 std::vector<String> id_decoy_total_mi = getSeparateScore(*feature_it,
"id_decoy_total_mi");
473 std::vector<String> id_decoy_intensity_score = getSeparateScore(*feature_it,
"id_decoy_intensity_score");
474 std::vector<String> id_decoy_intensity_ratio_score = getSeparateScore(*feature_it,
"id_decoy_intensity_ratio_score");
475 std::vector<String> id_decoy_log_intensity = getSeparateScore(*feature_it,
"id_decoy_ind_log_intensity");
476 std::vector<String> id_decoy_ind_xcorr_coelution = getSeparateScore(*feature_it,
"id_decoy_ind_xcorr_coelution");
477 std::vector<String> id_decoy_ind_xcorr_shape = getSeparateScore(*feature_it,
"id_decoy_ind_xcorr_shape");
478 std::vector<String> id_decoy_ind_log_sn_score = getSeparateScore(*feature_it,
"id_decoy_ind_log_sn_score");
479 std::vector<String> id_decoy_ind_massdev_score = getSeparateScore(*feature_it,
"id_decoy_ind_massdev_score");
480 std::vector<String> id_decoy_ind_mi_score = getSeparateScore(*feature_it,
"id_decoy_ind_mi_score");
481 std::vector<String> id_decoy_ind_mi_ratio_score = getSeparateScore(*feature_it,
"id_decoy_ind_mi_ratio_score");
482 std::vector<String> id_decoy_ind_isotope_correlation = getSeparateScore(*feature_it,
"id_decoy_ind_isotope_correlation");
483 std::vector<String> id_decoy_ind_isotope_overlap = getSeparateScore(*feature_it,
"id_decoy_ind_isotope_overlap");
485 if ((
String)feature_it->getMetaValue(
"id_decoy_num_transitions") !=
"")
487 int id_decoy_num_transitions = feature_it->getMetaValue(
"id_decoy_num_transitions").toString().toInt();
489 for (
int i = 0; i < id_decoy_num_transitions; ++i)
491 sql_feature_uis_transition <<
"INSERT INTO FEATURE_TRANSITION (FEATURE_ID, TRANSITION_ID, AREA_INTENSITY, TOTAL_AREA_INTENSITY, APEX_INTENSITY, TOTAL_MI, VAR_INTENSITY_SCORE, VAR_INTENSITY_RATIO_SCORE, VAR_LOG_INTENSITY, VAR_XCORR_COELUTION, VAR_XCORR_SHAPE, VAR_LOG_SN_SCORE, VAR_MASSDEV_SCORE, VAR_MI_SCORE, VAR_MI_RATIO_SCORE, VAR_ISOTOPE_CORRELATION_SCORE, VAR_ISOTOPE_OVERLAP_SCORE) VALUES (" 492 << feature_id <<
", " 493 << id_decoy_transition_names[i] <<
", " 494 << id_decoy_area_intensity[i] <<
", " 495 << id_decoy_total_area_intensity[i] <<
", " 496 << id_decoy_apex_intensity[i] <<
", " 497 << id_decoy_total_mi[i] <<
", " 498 << id_decoy_intensity_score[i] <<
", " 499 << id_decoy_intensity_ratio_score[i] <<
", " 500 << id_decoy_log_intensity[i] <<
", " 501 << id_decoy_ind_xcorr_coelution[i] <<
", " 502 << id_decoy_ind_xcorr_shape[i] <<
", " 503 << id_decoy_ind_log_sn_score[i] <<
", " 504 << id_decoy_ind_massdev_score[i] <<
", " 505 << id_decoy_ind_mi_score[i] <<
", " 506 << id_decoy_ind_mi_ratio_score[i] <<
", " 507 << id_decoy_ind_isotope_correlation[i] <<
", " 508 << id_decoy_ind_isotope_overlap[i] <<
"); ";
514 if (enable_uis_scoring_)
516 sql << sql_feature.str() << sql_feature_ms1.str() << sql_feature_ms1_precursor.str() << sql_feature_ms2.str() << sql_feature_uis_transition.str();
520 sql << sql_feature.str() << sql_feature_ms1.str() << sql_feature_ms1_precursor.str() << sql_feature_ms2.str() << sql_feature_ms2_transition.str();
542 char *zErrMsg =
nullptr;
547 rc = sqlite3_open(output_filename_.c_str(), &db);
550 fprintf(stderr,
"Can't open database: %s\n", sqlite3_errmsg(db));
553 sqlite3_exec(db,
"BEGIN TRANSACTION",
nullptr,
nullptr, &zErrMsg);
555 for (
Size i = 0; i < to_osw_output.size(); i++)
557 rc = sqlite3_exec(db, to_osw_output[i].c_str(), callback,
nullptr, &zErrMsg);
558 if( rc != SQLITE_OK )
560 std::string error_message = zErrMsg;
561 sqlite3_free(zErrMsg);
567 sqlite3_exec(db,
"END TRANSACTION",
nullptr,
nullptr, &zErrMsg);
String input_filename_
Definition: OpenSwathOSWWriter.h:61
String getScore(const Feature &feature, std::string score_name) const
Prepare scores for SQLite insertion.
Definition: OpenSwathOSWWriter.h:254
String output_filename_
Definition: OpenSwathOSWWriter.h:60
A more convenient string class.
Definition: String.h:58
void writeLines(const std::vector< String > &to_osw_output)
Write data to disk.
Definition: OpenSwathOSWWriter.h:539
A container for features.
Definition: FeatureMap.h:93
bool sonar_
Definition: OpenSwathOSWWriter.h:65
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:46
bool use_ms1_traces_
Definition: OpenSwathOSWWriter.h:64
static int callback(void *, int argc, char **argv, char **azColName)
Definition: OpenSwathOSWWriter.h:84
Class to write out an OpenSwath OSW SQLite output (PyProphet input)
Definition: OpenSwathOSWWriter.h:58
void writeHeader()
Initializes file by generating SQLite tables.
Definition: OpenSwathOSWWriter.h:104
String toString() const
Conversion to String.
bool enable_uis_scoring_
Definition: OpenSwathOSWWriter.h:66
A generator for unique ids.
Definition: UniqueIdGenerator.h:59
A method or algorithm argument contains illegal values.
Definition: Exception.h:648
std::vector< String > getSeparateScore(const Feature &feature, std::string score_name) const
Prepare concatenated scores for SQLite insertion.
Definition: OpenSwathOSWWriter.h:276
String prepareLine(const OpenSwath::LightCompound &, const OpenSwath::LightTransition *, FeatureMap &output, String id) const
Prepare a single line (feature) for output.
Definition: OpenSwathOSWWriter.h:314
bool doWrite_
Definition: OpenSwathOSWWriter.h:63
An LC-MS feature.
Definition: Feature.h:70
OPENMS_UINT64_TYPE UInt64
Unsigned integer type (64bit)
Definition: Types.h:77
Definition: TransitionExperiment.h:149
OpenMS::UInt64 run_id_
Definition: OpenSwathOSWWriter.h:62
Definition: TransitionExperiment.h:46
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
bool isEmpty() const
Test if the value is empty.
Definition: DataValue.h:372
OpenSwathOSWWriter(const String &output_filename, const String &input_filename="inputfile", bool ms1_scores=false, bool sonar=false, bool uis_scores=false)
Definition: OpenSwathOSWWriter.h:70
bool isActive() const
Definition: OpenSwathOSWWriter.h:95