+
+ blastlocation = validParameter.validFile(parameters, "blastlocation", false);
+ if (blastlocation == "not found") { blastlocation = ""; }
+ else {
+ //add / to name if needed
+ string lastChar = blastlocation.substr(blastlocation.length()-1);
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ if (lastChar != "/") { blastlocation += "/"; }
+#else
+ if (lastChar != "\\") { blastlocation += "\\"; }
+#endif
+ blastlocation = m->getFullPathName(blastlocation);
+ string formatdbCommand = "";
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ formatdbCommand = blastlocation + "formatdb";
+#else
+ formatdbCommand = blastlocation + "formatdb.exe";
+#endif
+
+ //test to make sure formatdb exists
+ ifstream in;
+ formatdbCommand = m->getFullPathName(formatdbCommand);
+ int ableToOpen = m->openInputFile(formatdbCommand, in, "no error"); in.close();
+ if(ableToOpen == 1) { m->mothurOut("[ERROR]: " + formatdbCommand + " file does not exist. mothur requires formatdb.exe to run chimera.slayer."); m->mothurOutEndLine(); abort = true; }
+
+ string blastCommand = "";
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ blastCommand = blastlocation + "megablast";
+#else
+ blastCommand = blastlocation + "megablast.exe";
+#endif
+ //test to make sure formatdb exists
+ ifstream in2;
+ blastCommand = m->getFullPathName(blastCommand);
+ ableToOpen = m->openInputFile(blastCommand, in2, "no error"); in2.close();
+ if(ableToOpen == 1) { m->mothurOut("[ERROR]: " + blastCommand + " file does not exist. mothur requires blastall.exe to run chimera.slayer."); m->mothurOutEndLine(); abort = true; }
+ }