+++ /dev/null
-#include "muscle.h"\r
-#include "msa.h"\r
-#include "textfile.h"\r
-#include <time.h>\r
-\r
-MSA *ptrBestMSA;\r
-static const char *pstrOutputFileName;\r
-\r
-void SetOutputFileName(const char *out)\r
- {\r
- pstrOutputFileName = out;\r
- }\r
-\r
-void SetCurrentAlignment(MSA &msa)\r
- {\r
- ptrBestMSA = &msa;\r
- }\r
-\r
-void SaveCurrentAlignment()\r
- {\r
- static bool bCalled = false;\r
- if (bCalled)\r
- {\r
- fprintf(stderr,\r
- "\nRecursive call to SaveCurrentAlignment, giving up attempt to save.\n");\r
- exit(EXIT_FatalError);\r
- }\r
-\r
- if (0 == ptrBestMSA)\r
- {\r
- fprintf(stderr, "\nAlignment not completed, cannot save.\n");\r
- Log("Alignment not completed, cannot save.\n");\r
- exit(EXIT_FatalError);\r
- }\r
-\r
- if (0 == pstrOutputFileName)\r
- {\r
- fprintf(stderr, "\nOutput file name not specified, cannot save.\n");\r
- exit(EXIT_FatalError);\r
- }\r
-\r
- fprintf(stderr, "\nSaving current alignment ...\n");\r
-\r
- TextFile fileOut(pstrOutputFileName, true);\r
- ptrBestMSA->ToFASTAFile(fileOut);\r
-\r
- fprintf(stderr, "Current alignment saved to \"%s\".\n", pstrOutputFileName);\r
- Log("Current alignment saved to \"%s\".\n", pstrOutputFileName);\r
- }\r
-\r
-void CheckMaxTime()\r
- {\r
- if (0 == g_ulMaxSecs)\r
- return;\r
-\r
- time_t Now = time(0);\r
- time_t ElapsedSecs = Now - GetStartTime();\r
- if (ElapsedSecs <= (time_t) g_ulMaxSecs)\r
- return;\r
-\r
- Log("Max time %s exceeded, elapsed seconds = %ul\n",\r
- MaxSecsToStr(), ElapsedSecs);\r
-\r
- SaveCurrentAlignment();\r
- exit(EXIT_Success);\r
- }\r