File: BasicEndpointImpl.hpp

package info (click to toggle)
pbseqlib 5.3.5%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 7,020 kB
  • sloc: cpp: 77,250; python: 331; sh: 103; makefile: 41
file content (90 lines) | stat: -rw-r--r-- 2,371 bytes parent folder | download | duplicates (4)
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
#ifndef _BLASR_BASIC_ENDPOINT_IMPL_HPP_
#define _BLASR_BASIC_ENDPOINT_IMPL_HPP_

#include <alignment/algorithms/anchoring/BasicEndpoint.hpp>

/*
 An endpoint is one of the ends of a fragment, where
 a fragment is an exact match between two genomes.
 So, a fragment is a 2D object that has a position and length,
 and an endpoint is 1D, where it just has a position.
 A fragment may be associated with a score that is the score
 of the fragment in a maximum scoring chain.  When finding a
 maximum scoring chain using priority search trees, one must
 be able to set the score of a fragment when indexing solely
 a point.
*/

template <typename T_ScoredFragment>
BasicEndpoint<T_ScoredFragment>::BasicEndpoint()
{
}

template <typename T_ScoredFragment>
WhichEnd BasicEndpoint<T_ScoredFragment>::GetSide()
{
    return side;
}

template <typename T_ScoredFragment>
void BasicEndpoint<T_ScoredFragment>::FragmentPtrToStart(T_ScoredFragment *fragment)
{
    p.SetX(fragment->GetX());
    p.SetY(fragment->GetY());
    side = Start;
    fragmentPtr = fragment;
}

template <typename T_ScoredFragment>
void BasicEndpoint<T_ScoredFragment>::FragmentPtrToEnd(T_ScoredFragment *fragment)
{
    p.SetX(fragment->GetX() + fragment->GetLength());
    p.SetY(fragment->GetY() + fragment->GetLength());
    side = End;
    fragmentPtr = fragment;
}

template <typename T_ScoredFragment>
int BasicEndpoint<T_ScoredFragment>::GetScore()
{
    return fragmentPtr->GetScore();
}

template <typename T_ScoredFragment>
int BasicEndpoint<T_ScoredFragment>::SetScore(int score)
{
    return (fragmentPtr->SetScore(score));
}

template <typename T_ScoredFragment>
T_ScoredFragment *BasicEndpoint<T_ScoredFragment>::SetScoredReference(
    T_ScoredFragment *_fragmentPtr)
{
    return (fragmentPtr = _fragmentPtr);
}

template <typename T_ScoredFragment>
int BasicEndpoint<T_ScoredFragment>::operator<(const BasicEndpoint &rhs) const
{
    return p < rhs.p;
}

template <typename T_ScoredFragment>
KeyType BasicEndpoint<T_ScoredFragment>::GetKey()
{
    return p.GetY();
}

template <typename T_ScoredFragment>
T_ScoredFragment *BasicEndpoint<T_ScoredFragment>::GetFragmentPtr()
{
    return fragmentPtr;
}

template <typename T_ScoredFragment>
void BasicEndpoint<T_ScoredFragment>::SetChainPrev(T_ScoredFragment *prevChainFragment)
{
    fragmentPtr->SetChainPrev(prevChainFragment);
}

#endif