--- /dev/null
+#include "muscle.h"\r
+#include "msa.h"\r
+#include "params.h"\r
+#include "textfile.h"\r
+\r
+static void DoOutput(MSA &msa)\r
+ {\r
+ bool AnyOutput = false;\r
+\r
+// Value options\r
+ if (g_pstrFASTAOutFileName)\r
+ {\r
+ TextFile File(g_pstrFASTAOutFileName, true);\r
+ msa.ToFASTAFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+ if (g_pstrMSFOutFileName)\r
+ {\r
+ TextFile File(g_pstrMSFOutFileName, true);\r
+ msa.ToMSFFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+ if (g_pstrClwOutFileName)\r
+ {\r
+ TextFile File(g_pstrClwOutFileName, true);\r
+ msa.ToAlnFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+ if (g_pstrClwStrictOutFileName)\r
+ {\r
+ g_bClwStrict = true;\r
+ TextFile File(g_pstrClwStrictOutFileName, true);\r
+ msa.ToAlnFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+ if (g_pstrHTMLOutFileName)\r
+ {\r
+ TextFile File(g_pstrHTMLOutFileName, true);\r
+ msa.ToHTMLFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+ if (g_pstrPHYIOutFileName)\r
+ {\r
+ TextFile File(g_pstrPHYIOutFileName, true);\r
+ msa.ToPhyInterleavedFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+ if (g_pstrPHYSOutFileName)\r
+ {\r
+ TextFile File(g_pstrPHYSOutFileName, true);\r
+ msa.ToPhySequentialFile(File);\r
+ AnyOutput = true;\r
+ }\r
+\r
+// Flag options, at most one used (because only one -out filename)\r
+ TextFile fileOut(g_pstrOutFileName, true);\r
+ if (g_bFASTA)\r
+ {\r
+ msa.ToFASTAFile(fileOut);\r
+ AnyOutput = true;\r
+ }\r
+ else if (g_bMSF)\r
+ {\r
+ msa.ToMSFFile(fileOut);\r
+ AnyOutput = true;\r
+ }\r
+ else if (g_bAln)\r
+ {\r
+ msa.ToAlnFile(fileOut);\r
+ AnyOutput = true;\r
+ }\r
+ else if (g_bHTML)\r
+ {\r
+ msa.ToHTMLFile(fileOut);\r
+ AnyOutput = true;\r
+ }\r
+ else if (g_bPHYI)\r
+ {\r
+ msa.ToPhyInterleavedFile(fileOut);\r
+ AnyOutput = true;\r
+ }\r
+ else if (g_bPHYS)\r
+ {\r
+ msa.ToPhySequentialFile(fileOut);\r
+ AnyOutput = true;\r
+ }\r
+\r
+// If -out option was given but no flags, output as FASTA\r
+ if (!AnyOutput)\r
+ msa.ToFASTAFile(fileOut);\r
+ \r
+ fileOut.Close();\r
+\r
+ if (0 != g_pstrScoreFileName)\r
+ WriteScoreFile(msa);\r
+ }\r
+\r
+void MuscleOutput(MSA &msa)\r
+ {\r
+ MHackEnd(msa);\r
+ if (g_bStable)\r
+ {\r
+ MSA msaStable;\r
+ Stabilize(msa, msaStable);\r
+ msa.Clear(); // save memory\r
+ DoOutput(msaStable);\r
+ }\r
+ else\r
+ DoOutput(msa);\r
+ }\r