File: globalalign2.cpp

package info (click to toggle)
mothur 1.48.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,692 kB
  • sloc: cpp: 161,866; makefile: 122; sh: 31
file content (45 lines) | stat: -rwxr-xr-x 1,005 bytes parent folder | download | duplicates (7)
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
#if	UCHIMES

#include "dp.h"
#include "seq.h"

static AlnParams g_AP;
static bool g_APInitDone = false;

bool GlobalAlign(const SeqData &Query, const SeqData &Target, PathData &PD)
	{
	if (!g_APInitDone)
		{
		g_AP.InitFromCmdLine(true);
		g_APInitDone = true;
		}

	ViterbiFast(Query.Seq, Query.L, Target.Seq, Target.L, g_AP, PD);
	return true;
	}

bool GlobalAlign(const SeqData &Query, const SeqData &Target, string &Path)
	{
	PathData PD;
	GlobalAlign(Query, Target, PD);
	Path = string(PD.Start);
	return true;
	}

bool GlobalAlign(const SeqData &Query, const SeqData &Target, const AlnParams &/*AP*/,
  const AlnHeuristics &AH, HSPFinder &/*HF*/, float /*MinFractId*/, float &/*HSPId*/, PathData &PD)
	{
	PD.Clear();
	string Path;
	bool Found = GlobalAlign(Query, Target, Path);
	if (!Found)
		return false;
	unsigned n = SIZE(Path);
	PD.Alloc(n+1);
	memcpy(PD.Front, Path.c_str(), n);
	PD.Start = PD.Front;
	PD.Start[n] = 0;
	return true;
	}

#endif // UCHIMES