Next version of JABA
[jabaws.git] / binaries / src / muscle / dosp.cpp
1 #include "muscle.h"\r
2 #include "textfile.h"\r
3 #include "msa.h"\r
4 #include "objscore.h"\r
5 #include "tree.h"\r
6 #include "profile.h"\r
7 \r
8 void DoSP()\r
9         {\r
10         TextFile f(g_pstrSPFileName);\r
11 \r
12         MSA a;\r
13         a.FromFile(f);\r
14 \r
15         ALPHA Alpha = ALPHA_Undefined;\r
16         switch (g_SeqType)\r
17                 {\r
18         case SEQTYPE_Auto:\r
19                 Alpha = a.GuessAlpha();\r
20                 break;\r
21 \r
22         case SEQTYPE_Protein:\r
23                 Alpha = ALPHA_Amino;\r
24                 break;\r
25 \r
26         case SEQTYPE_DNA:\r
27                 Alpha = ALPHA_DNA;\r
28                 break;\r
29 \r
30         case SEQTYPE_RNA:\r
31                 Alpha = ALPHA_RNA;\r
32                 break;\r
33 \r
34         default:\r
35                 Quit("Invalid SeqType");\r
36                 }\r
37         SetAlpha(Alpha);\r
38         a.FixAlpha();\r
39 \r
40         SetPPScore();\r
41 \r
42         const unsigned uSeqCount = a.GetSeqCount();\r
43         if (0 == uSeqCount)\r
44                 Quit("No sequences in input file %s", g_pstrSPFileName);\r
45 \r
46         MSA::SetIdCount(uSeqCount);\r
47         for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)\r
48                 a.SetSeqId(uSeqIndex, uSeqIndex);\r
49 \r
50         SetSeqWeightMethod(g_SeqWeight1);\r
51         Tree tree;\r
52         TreeFromMSA(a, tree, g_Cluster2, g_Distance2, g_Root2);\r
53         SetMuscleTree(tree);\r
54         SetMSAWeightsMuscle((MSA &) a);\r
55 \r
56         SCORE SP = ObjScoreSP(a);\r
57 \r
58         Log("File=%s;SP=%.4g\n", g_pstrSPFileName, SP);\r
59         fprintf(stderr, "File=%s;SP=%.4g\n", g_pstrSPFileName, SP);\r
60         }\r