void CommandlineInterface(vector<string> Arguments) { bool InputArgument = false; vector<string> ParameterFiles; for (int i=0; i < int(Arguments.size()); i++) { if (Arguments[i].compare("inputfilelist") == 0) { if (int(Arguments.size()) >= i+2) { InputArgument = true; SetInputParametersFile(Arguments[i+1].data()); } } if (Arguments[i].compare("parameterfile") == 0) { if (int(Arguments.size()) >= i+2) { ParameterFiles.push_back(Arguments[i+1].data()); i++; } } } if (!InputArgument) { SetInputParametersFile(COMMANDLINE_INPUT_FILE); } LoadParameters(); for(int i=0; i < int(ParameterFiles.size()); i++) { LoadParameterFile(ParameterFiles[i]); } for (int i=0; i < int(Arguments.size()); i++) { if (Arguments[i].compare("resetparameter") == 0) { if (int(Arguments.size()) >= i+3) { string ParameterName = Arguments[i+1]; findandreplace(ParameterName,"_"," "); SetParameter(ParameterName.data(),Arguments[i+2].data()); } } } ClearParameterDependance("CLEAR ALL PARAMETER DEPENDANCE"); if (Initialize() != SUCCESS) { return; } LoadFIGMODELParameters(); ClearParameterDependance("CLEAR ALL PARAMETER DEPENDANCE"); for (int i=0; i < int(Arguments.size()); i++) { if (Arguments[i].compare("stringcode") == 0) { if (int(Arguments.size()) < i+3) { cout << "Insufficient arguments" << endl; FErrorFile() << "Insufficient arguments" << endl; FlushErrorFile(); } else { CreateStringCode(Arguments[i+1],Arguments[i+2]); i += 2; } } else if (Arguments[i].compare("LoadCentralSystem") == 0 || Arguments[i].compare("LoadDecentralSystem") == 0) { if (int(Arguments.size()) < i+2) { cout << "Insufficient arguments" << endl; FErrorFile() << "Insufficient arguments" << endl; FlushErrorFile(); } else { LoadDatabaseFile(Arguments[i+1].data()); } } else if (Arguments[i].compare("ProcessDatabase") == 0) { ProcessDatabase(); } else if (Arguments[i].compare("metabolites") == 0) { if (int(Arguments.size()) < i+2) { cout << "Insufficient arguments" << endl; FErrorFile() << "Insufficient arguments" << endl; FlushErrorFile(); } else { SetParameter("metabolites to optimize",Arguments[i+1].data()); } } else if (Arguments[i].compare("WebGCM") == 0) { if (int(Arguments.size()) < i+3) { cout << "Insufficient arguments" << endl; FErrorFile() << "Insufficient arguments" << endl; FlushErrorFile(); } else { RunWebGCM(Arguments[i+1].data(),Arguments[i+2].data()); } } else if (Arguments[i].compare("ProcessMolfiles") == 0) { if (int(Arguments.size()) < i+3) { cout << "Insufficient arguments" << endl; FErrorFile() << "Insufficient arguments" << endl; FlushErrorFile(); } else { ProcessMolfileDirectory(Arguments[i+1].data(),Arguments[i+2].data()); } } else if (Arguments[i].compare("ProcessMolfileList") == 0) { ProcessMolfiles(); } } }
//--------------------------------------------------------------------------------- // Purpose: Initialise the database fields //--------------------------------------------------------------------------------- bool ManiDatabase::Init(void) { LoadDatabaseFile(); return true; }