+}
+/*******************************************************/
+
+/******************************************************/
+
+string ValidParameters::validFile(map<string, string> container, string parameter, bool isFile) {
+ try {
+ int ableToOpen;
+ ifstream in;
+ map<string, string>::iterator it;
+
+ it = container.find(parameter);
+ if(it != container.end()){ //no parameter given
+ if(isFile == true) {
+ ableToOpen = openInputFile(it->second, in);
+ if (ableToOpen == 1) { return "not open"; }
+ in.close();
+ }
+ }else { return "not found"; }
+
+ return it->second;
+
+ }
+ catch(exception& e) {
+ errorOut(e, "ValidParameters", "validFile");
+ exit(1);
+ }
+}
+
+/***********************************************************************/
+
+/***********************************************************************/
+void ValidParameters::initParameterRanges() {
+ try {
+ int rangeSize = 5;
+
+ /**************************************************************************************************************
+ {">=" or "=>" or ">" if the value should be greater than or equal to or just greater than the lower bound,
+ A number representing the lower bound ("NA" if there is no lower bound),
+ "<=" or "=<" or "<" if the value shoud be less than or equal to or just less than the upper bound,
+ A number representing the upper bound ("NA" if there is no lower bound),
+ "between" if between lower and upper bounds or "only" if exactly one of the bounds};
+
+ # = parameter
+ # (>, >=) lower bound, # (<, <=) upperbound, # should be (between, only) lower and upper bounds.
+ ***********************************************************************************************************/
+
+ string precisionArray[] = {">=","10", "<","NA", "between"};
+ parameterRanges["precision"] = addParameters(precisionArray, rangeSize);
+
+ string itersArray[] = {">=","10", "<","NA", "between"};
+ parameterRanges["iters"] = addParameters(itersArray, rangeSize);
+
+ string freqArray[] = {">=","1", "<","NA", "between"};
+ parameterRanges["freq"] = addParameters(freqArray, rangeSize);
+
+ //string lineArray[] = {">=","1", "<","NA", "between"};
+ //parameterRanges["line"] = addParameters(lineArray, rangeSize);
+
+ string abundArray[] = {">=","5", "<","NA", "between"};
+ parameterRanges["abund"] = addParameters(abundArray, rangeSize);
+
+ string softArray[] = {">=","0", "<=","100", "between"};
+ parameterRanges["soft"] = addParameters(softArray, rangeSize);
+
+ string sizeArray[] = {">=","1", "<","NA", "between"};
+ parameterRanges["size"] = addParameters(sizeArray, rangeSize);
+ }
+ catch(exception& e) {
+ errorOut(e, "ValidParameters", "initParameterRanges");
+ exit(1);
+ }
+}
+
+/***********************************************************************/
+
+/***********************************************************************/
+vector<string> ValidParameters::addParameters(string parameters[], int size) {
+ try {
+ vector<string> pVector (parameters, parameters+size);
+ return pVector;
+ }
+ catch(exception& e) {
+ errorOut(e, "ValidParameters", "addParameters");