1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
#include "muscle.h"
#include "msa.h"
#include "params.h"
#include "textfile.h"
static void DoOutput(MSA &msa)
{
bool AnyOutput = false;
// Flag options, at most one used (because only one -out filename)
TextFile fileOut(g_pstrOutFileName, true);
if (g_bFASTA)
{
msa.ToFASTAFile(fileOut);
AnyOutput = true;
}
else if (g_bMSF)
{
msa.ToMSFFile(fileOut);
AnyOutput = true;
}
else if (g_bAln)
{
msa.ToAlnFile(fileOut);
AnyOutput = true;
}
else if (g_bHTML)
{
msa.ToHTMLFile(fileOut);
AnyOutput = true;
}
else if (g_bPHYI)
{
msa.ToPhyInterleavedFile(fileOut);
AnyOutput = true;
}
else if (g_bPHYS)
{
msa.ToPhySequentialFile(fileOut);
AnyOutput = true;
}
// If -out option was given but no flags, output as FASTA
if (!AnyOutput && strcmp(g_pstrOutFileName, "-") != 0)
msa.ToFASTAFile(fileOut);
fileOut.Close();
// Value options
if (g_pstrFASTAOutFileName)
{
TextFile File(g_pstrFASTAOutFileName, true);
msa.ToFASTAFile(File);
}
if (g_pstrMSFOutFileName)
{
TextFile File(g_pstrMSFOutFileName, true);
msa.ToMSFFile(File);
}
if (g_pstrClwOutFileName)
{
TextFile File(g_pstrClwOutFileName, true);
msa.ToAlnFile(File);
}
if (g_pstrClwStrictOutFileName)
{
g_bClwStrict = true;
TextFile File(g_pstrClwStrictOutFileName, true);
msa.ToAlnFile(File);
}
if (g_pstrHTMLOutFileName)
{
TextFile File(g_pstrHTMLOutFileName, true);
msa.ToHTMLFile(File);
}
if (g_pstrPHYIOutFileName)
{
TextFile File(g_pstrPHYIOutFileName, true);
msa.ToPhySequentialFile(File);
}
if (g_pstrPHYSOutFileName)
{
TextFile File(g_pstrPHYSOutFileName, true);
msa.ToPhySequentialFile(File);
}
if (0 != g_pstrScoreFileName)
WriteScoreFile(msa);
}
void MuscleOutput(MSA &msa)
{
MHackEnd(msa);
if (g_bStable)
{
MSA msaStable;
Stabilize(msa, msaStable);
msa.Clear(); // save memory
DoOutput(msaStable);
}
else
DoOutput(msa);
}
|