A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/merge__tree__core_8cpp_source.html below:

NCBI C++ ToolKit: src/algo/align/mergetree/merge_tree_core.cpp Source File

61  return

(

A

.Equiv <

B

.Equiv);

68  return

((*

A

) < (*

B

));

75

CacheIter->second->Parents.clear();

76

CacheIter->second->Children.clear();

77

CacheIter->second->BestChild.Reset(

NULL

);

86

vector< TMergeNode > Children;

87

Children.push_back(

m_Root

);

89  while

(!Children.empty()) {

96

ChildIter->GetNCPointer()->Parents.clear();

97

Children.push_back(*ChildIter);

153  return

Found->second;

164  if

(

A

->Equiv.Query.GetFrom() !=

B

->Equiv.Query.GetFrom())

165  return

(

A

->Equiv.Query.GetFrom() <

B

->Equiv.Query.GetFrom());

166  else if

(

A

->Equiv.Query.GetTo() !=

B

->Equiv.Query.GetTo())

167  return

(

A

->Equiv.Query.GetTo() <

B

->Equiv.Query.GetTo());

168  else if

(

A

->Equiv.Subjt.GetFrom() !=

B

->Equiv.Subjt.GetFrom())

169  return

(

A

->Equiv.Subjt.GetFrom() <

B

->Equiv.Subjt.GetFrom());

170  else if

(

A

->Equiv.Subjt.GetTo() !=

B

->Equiv.Subjt.GetTo())

171  return

(

A

->Equiv.Subjt.GetTo() <

B

->Equiv.Subjt.GetTo());

173  return A

->Equiv.Strand <

B

->Equiv.Strand;

177  if

(

A

->Equiv.Query.GetFrom() !=

B

->Equiv.Query.GetFrom())

178  return

(

A

->Equiv.Query.GetFrom() >

B

->Equiv.Query.GetFrom());

179  else if

(

A

->Equiv.Query.GetTo() !=

B

->Equiv.Query.GetTo())

180  return

(

A

->Equiv.Query.GetTo() >

B

->Equiv.Query.GetTo());

181  else if

(

A

->Equiv.Subjt.GetFrom() !=

B

->Equiv.Subjt.GetFrom())

182  return

(

A

->Equiv.Subjt.GetFrom() <

B

->Equiv.Subjt.GetFrom());

183  else if

(

A

->Equiv.Subjt.GetTo() !=

B

->Equiv.Subjt.GetTo())

184  return

(

A

->Equiv.Subjt.GetTo() <

B

->Equiv.Subjt.GetTo());

186  return A

->Equiv.Strand <

B

->Equiv.Strand;

192  if

(

A

->Equiv.Subjt.GetFrom() !=

B

->Equiv.Subjt.GetFrom())

193  return

(

A

->Equiv.Subjt.GetFrom() <

B

->Equiv.Subjt.GetFrom());

194  else if

(

A

->Equiv.Subjt.GetTo() !=

B

->Equiv.Subjt.GetTo())

195  return

(

A

->Equiv.Subjt.GetTo() <

B

->Equiv.Subjt.GetTo());

196  else if

(

A

->Equiv.Query.GetFrom() !=

B

->Equiv.Query.GetFrom())

197  return

(

A

->Equiv.Query.GetFrom() <

B

->Equiv.Query.GetFrom());

198  else if

(

A

->Equiv.Query.GetTo() !=

B

->Equiv.Query.GetTo())

199  return

(

A

->Equiv.Query.GetTo() <

B

->Equiv.Query.GetTo());

201  return A

->Equiv.Strand <

B

->Equiv.Strand;

230  bool

HasAfters =

false

;

241  int

MaxUD=0, MaxDD=0;

242  if

(Befores.

empty

()) {

247

MaxUD =

max

(MaxUD, Depth);

249

Explored.

clear

(); Inserted.clear();

253  if

(Befores.

empty

()) {

257

Explored.

clear

(); Inserted.clear();

261  #ifdef MERGE_TREE_VERBOSE_DEBUG 283  if

(Befores.

empty

())

313

QVec.push_back(NewNode);

314

SVec.push_back(NewNode);

326  TSeqPos

PQ = QVec[0]->Equiv.Query.GetFrom();

328  for

(

size_t

I = 1; I < QVec.size(); I++) {

329  TSeqPos

CQ = QVec[I]->Equiv.Query.GetFrom();

338  TSeqPos PS

= SVec[0]->Equiv.Subjt.GetFrom();

340  for

(

size_t

I = 1; I < SVec.size(); I++) {

341  TSeqPos

CS = SVec[I]->Equiv.Subjt.GetFrom();

371  if

(Explored.

get

(Curr->

Id

)) {

374

Explored.

set

(Curr->

Id

,

true

);

391  if

(Explored.

get

(Curr->

Id

)) {

392  return

Inserted.

get

(Curr->

Id

);

395

Explored.

set

(Curr->

Id

,

true

);

403  bool

SubInsert =

false

;

405

SubInsert |=

x_FindBefores

(New, *ChildIter, Befores, Explored, Inserted, Depth);

413

Inserted.

set

(Curr->

Id

,

true

);

417

Inserted.

set

(Curr->

Id

,

true

);

433  if

(Explored.

get

(Curr->

Id

)) {

434  return

Inserted.

get

(Curr->

Id

);

437

Explored.

set

(Curr->

Id

,

true

);

447

Inserted.

set

(Curr->

Id

,

true

);

452

SubInsert &=

x_FindAfters

(New, *ChildIter, Afters, Explored, Inserted);

456

Inserted.

set

(Curr->

Id

,

true

);

472  if

(Explored.

get

(Curr->

Id

)) {

473  return

Inserted.

get

(Curr->

Id

);

475

Explored.

set

(Curr->

Id

,

true

);

502

Befores.

erase

(Others);

507

Inserted.

set

(Curr->

Id

,

true

);

511  bool

SubInsert =

false

;

526

vector<TFrameRef> FrameStack;

528

TFrameBuffer::iterator NextFrame = FrameBuffer.begin();

531

FirstFrame->

Curr

= StartCurr;

535

FrameStack.push_back(FirstFrame);

537  while

(!FrameStack.empty()) {

542

FrameStack.pop_back();

547  if

(Explored.

get

(Frame->

Curr

->

Id

)) {

549

FrameStack.pop_back();

552

Explored.

set

(Frame->

Curr

->

Id

,

true

);

556

FrameStack.pop_back();

570

FrameStack.pop_back();

574  bool

BeforeFound =

false

;

586

Befores.

erase

(Others);

592

FrameStack.pop_back();

597

Inserted.

set

(Frame->

Curr

->

Id

,

true

);

600

FrameStack.pop_back();

605

Explored.

set

(Frame->

Curr

->

Id

,

false

);

607  if

(NextFrame == FrameBuffer.end()) {

609 

NextFrame = FrameBuffer.insert(FrameBuffer.end(),

613

NewFrame->

Curr

= *ParentIter;

617

FrameStack.push_back(NewFrame);

623  bool

SubInsert =

false

;

625

SubInsert |= ChildFrame->

Returned

;

629

FrameStack.pop_back();

635

FrameStack.pop_back();

648  if

(Explored.

get

(Curr->

Id

)) {

649  return

Inserted.

get

(Curr->

Id

);

653

Explored.

set

(Curr->

Id

,

true

);

661  bool

SubInsert =

false

;

663

SubInsert |=

x_FindAfters_Up

(New, *ParentIter, Afters, Explored, Inserted);

667

Inserted.

set

(Curr->

Id

,

true

);

671

Inserted.

set

(Curr->

Id

,

true

);

719  if

(Result && Result->

ChainScore

> BestChildScore) {

738  if

(BestChild.

IsNull

()) {

747  while

(!CurrChild.

IsNull

()) {

766

RebuildExplore.

clear

();

786 #ifdef MERGE_TREE_VERBOSE_DEBUG 787  bool

DEBUG_CURR_NODE =

false

;

788  if

(CurrNode->

Id

== -1)

789

DEBUG_CURR_NODE =

true

;

793  if

(Explored.

get

(CurrNode->

Id

)) {

794 #ifdef MERGE_TREE_VERBOSE_DEBUG 795  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

800

Explored.

set

(CurrNode->

Id

,

true

);

806 #ifdef MERGE_TREE_VERBOSE_DEBUG 808

cerr <<

"Self: "

<< CurrNode->

SelfScore

<< endl;

826 #ifdef MERGE_TREE_VERBOSE_DEBUG 827  if

(DEBUG_CURR_NODE) {

828

cerr <<

"Id: "

<< Result->

Id

<<

" CScore: "

<< Result->

ChainScore

<< endl;

831  if

(BestChildUnMod.

IsNull

() ||

833 #ifdef MERGE_TREE_VERBOSE_DEBUG 835

cerr <<

" UM: "

<< Result->

ChainScore

<< endl;

837

BestChildUnMod = Result;

842  ssize_t

GapOpen = 0, GapExtend = 0;

845 #ifdef MERGE_TREE_VERBOSE_DEBUG 847

cerr <<

" GO: "

<< GapOpen <<

"\tGE: "

<< GapExtend << endl;

854 #ifdef MERGE_TREE_VERBOSE_DEBUG 856

cerr <<

" Mod: "

<< CurrChildModScore <<

" Best: "

<< BestChildModScore << endl;

860  if

(CurrChildModScore > BestChildModScore) {

861

BestChildModScore = CurrChildModScore;

862

BestChildMod = Result;

863 #ifdef MERGE_TREE_VERBOSE_DEBUG 865

cerr <<

" New Best Mod"

<< endl;

871  if

(BestChildUnMod.

NotNull

()) {

873

UnBest = BestChildUnMod;

875

UnBest = BestChildUnMod;

883  if

(BestChildMod.

IsNull

()) {

886 #ifdef MERGE_TREE_VERBOSE_DEBUG 887  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

892  if

(BestChildModScore > 0) {

897 #ifdef MERGE_TREE_VERBOSE_DEBUG 898  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

905 #ifdef MERGE_TREE_VERBOSE_DEBUG 906  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

930

vector< CRef<SSearchIterFrame> > FrameStack;

933

FirstFrame->CurrNode = StartNode;

934

FirstFrame->VisitCount = 0;

935

FrameStack.push_back(FirstFrame);

937  while

(!FrameStack.empty()) {

946  if

(Frame->CurrNode.

IsNull

()) {

947

FrameStack.pop_back();

951 #ifdef MERGE_TREE_VERBOSE_DEBUG 952  bool

DEBUG_CURR_NODE =

false

;

953  if

(Frame->CurrNode->Id == -1)

954

DEBUG_CURR_NODE =

true

;

957  if

(Explored.

get

(Frame->CurrNode->Id)) {

958 #ifdef MERGE_TREE_VERBOSE_DEBUG 959  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

961

Frame->Returned = Frame->CurrNode;

962

FrameStack.pop_back();

967  if

(Frame->VisitCount == 0) {

970

NextFrame->CurrNode = *ChildNodeIter;

971

NextFrame->VisitCount = 0;

972

FrameStack.push_back(NextFrame);

973

Frame->ChildFrames.push_front(NextFrame);

982

Frame->CurrNode->SelfScore = SelfScore;

983

Frame->CurrNode->ChainScore = SelfScore;

984 #ifdef MERGE_TREE_VERBOSE_DEBUG 986

cerr <<

"Self: "

<< Frame->CurrNode->SelfScore << endl;

998  TMergeNode

Result = (*ChildFrameIter)->Returned;

1001 #ifdef MERGE_TREE_VERBOSE_DEBUG 1002  if

(DEBUG_CURR_NODE) {

1003

cerr <<

"Id: "

<< Result->

Id

<<

" CScore: "

<< Result->

ChainScore

<< endl;

1008 #ifdef MERGE_TREE_VERBOSE_DEBUG 1009  if

(DEBUG_CURR_NODE)

1010

cerr <<

" UM: "

<< Result->

ChainScore

<< endl;

1017  ssize_t

GapOpen = 0, GapExtend = 0;

1018  x_EvalGap

(Frame->CurrNode->Equiv, Result->

Equiv

, GapOpen, GapExtend);

1020 #ifdef MERGE_TREE_VERBOSE_DEBUG 1021  if

(DEBUG_CURR_NODE)

1022

cerr <<

" GO: "

<< GapOpen <<

"\tGE: "

<< GapExtend << endl;

1029 #ifdef MERGE_TREE_VERBOSE_DEBUG 1030  if

(DEBUG_CURR_NODE)

1031

cerr <<

" Mod: "

<< CurrChildModScore <<

" Best: "

<< Frame->BestChildModScore << endl;

1035  if

(CurrChildModScore > Frame->BestChildModScore) {

1036

Frame->BestChildModScore = CurrChildModScore;

1037

Frame->BestChildMod = Result;

1038 #ifdef MERGE_TREE_VERBOSE_DEBUG 1039  if

(DEBUG_CURR_NODE)

1040

cerr <<

" New Best Mod"

<< endl;

1043  else if

(CurrChildModScore == Frame->BestChildModScore &&

1044

Frame->CurrNode->Equiv.AlignId == Result->

Equiv

.

AlignId

) {

1045

Frame->BestChildModScore = CurrChildModScore;

1046

Frame->BestChildMod = Result;

1049 #ifdef MERGE_TREE_VERBOSE_DEBUG 1050  if

(DEBUG_CURR_NODE)

1051

cerr <<

" New Align-Match Mod"

<< endl;

1054  else if

(CurrChildModScore == Frame->BestChildModScore && GapOpen > 0) {

1055

Frame->BestChildModScore = CurrChildModScore;

1056

Frame->BestChildMod = Result;

1059 #ifdef MERGE_TREE_VERBOSE_DEBUG 1060  if

(DEBUG_CURR_NODE)

1061

cerr <<

" New Left Shift Mod"

<< endl;

1067

Frame->ChildFrames.clear();

1070

Explored.

set

(Frame->CurrNode->Id,

true

);

1072  if

(Frame->BestChildMod.

IsNull

()) {

1073

Frame->CurrNode->ChainScore = Frame->CurrNode->SelfScore;

1074

Frame->CurrNode->BestChild.

Reset

(

NULL

);

1075 #ifdef MERGE_TREE_VERBOSE_DEBUG 1076  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

1078

Frame->Returned = Frame->CurrNode;

1079

FrameStack.pop_back();

1083  if

(Frame->BestChildModScore > 0) {

1084  ssize_t

SumScore = Frame->CurrNode->SelfScore + Frame->BestChildModScore;

1085

Frame->CurrNode->ChainScore = SumScore;

1086

Frame->CurrNode->BestChild = Frame->BestChildMod;

1087 #ifdef MERGE_TREE_VERBOSE_DEBUG 1088  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

1090

Frame->Returned = Frame->CurrNode;

1091

FrameStack.pop_back();

1095

Frame->CurrNode->ChainScore = Frame->CurrNode->SelfScore;

1096

Frame->CurrNode->BestChild.

Reset

(

NULL

);

1097 #ifdef MERGE_TREE_VERBOSE_DEBUG 1098  if

(DEBUG_CURR_NODE) cerr << __LINE__ << endl;

1100

Frame->Returned = Frame->CurrNode;

1101

FrameStack.pop_back();

1108  return

FirstFrame->Returned;

1129

QueryDiff =

max

(QueryDiff, QueryDiffM);

1130

SubjtDiff =

max

(SubjtDiff, SubjtDiffM);

1137

GapExtend = (

ssize_t

)sqrt( pow((

double

)QueryDiff, 2) + pow((

double

)SubjtDiff, 2) ) ;

1147

TEquivList::const_iterator Prev =

Path

.end();

1150  if

(EquivIter->Empty())

1153  if

(Prev !=

Path

.end()) {

1156  x_EvalGap

(*Prev, *EquivIter, GapOpen, GapExtend);

1161

Accum.

Match

+= EquivIter->Matches;

1162

Accum.

MisMatch

+= EquivIter->MisMatches;

1195  if

(Parent == ToFind)

1200  if

(Explored.

get

(Parent->

Id

)) {

1203

Explored.

set

(Parent->

Id

,

true

);

1205

vector< CRef<SEventualChildFrame> > FrameStack;

1208

FirstFrame->Parent = Parent;

1209

FrameStack.push_back(FirstFrame);

1211  while

(!FrameStack.empty()) {

1213

FrameStack.pop_back();

1215  if

(Frame->Parent == ToFind)

1217  if

(Frame->Parent->Equiv == ToFind->

Equiv

)

1220  if

(Explored.

get

(Frame->Parent->Id)) {

1223

Explored.

set

(Frame->Parent->Id,

true

);

1226  if

( (*ChildIter) == ToFind)

1228  if

( (*ChildIter)->Equiv == ToFind->

Equiv

)

1231  if

(Explored.

get

((*ChildIter)->Id)) {

1240

NewFrame->Parent = *ChildIter;

1241

FrameStack.push_back(NewFrame);

1260  if

(Explored.

get

(Node->

Id

))

1262

Explored.

set

(Node->

Id

);

1264  Out

<< Count <<

"\t"

<< Node->

Id

;

1265  for

(

int i

=0;

i

<Level;

i

++)

Out

<< (Count % 2 == 0 ?

'-'

:

'.'

);

1270  Out

<<

"\t"

<<

"LEAF"

;

1275  x_Print

(

Out

, *ChildIter, Level+1, Count, Explored);

1282  Out

<<

"digraph All {"

<< endl;

1289  Out

<<

" } "

<< endl;

1294  if

(Explored.

get

(Node->

Id

))

1296

Explored.

set

(Node->

Id

);

1298  Out

<< Node->

Id

<<

" "

;

1310  Out

<<

" ];"

<< endl;

1320  if

(Explored.

get

(Node->

Id

))

1322

Explored.

set

(Node->

Id

);

1326  Out

<< Node->

Id

<<

" -> "

<< (*ChildIter)->Id;

1329  Out

<<

"color=blue"

;

1331  Out

<<

" ];"

<< endl;

1342  if

(Explored.

get

(Node->

Id

))

1344

Explored.

set

(Node->

Id

);

1357  if

(Explored.

get

(Node->

Id

))

1359

Explored.

set

(Node->

Id

);

ERelative CalcRelative(const CEquivRange &Check) const

objects::ENa_strand Strand

set< CRef< CMergeNode > > Children

CRef< CMergeNode > BestChild

set< CRef< CMergeNode > > Parents

TInterruptFnPtr m_Callback

void AddEquiv(CEquivRange NewEquiv)

int Score(const TEquivList &Path) const

CTreeAlignMerger & m_AlignMerger

deque< SFindBeforesIterFrame > TFrameBuffer

void x_RemoveParent(TMergeNode Child, TMergeNode Parent)

void x_Dot_Edges(CNcbiOstream &Out, TMergeNode Node, TBitVec &Explored)

bool x_FindBefores_Up_Iter(TMergeNode New, TMergeNode StartCurr, set< TMergeNode > &Befores, TBitVec &Explored, TBitVec &Inserted, int &Depth)

void x_Dot(CNcbiOstream &Out, TMergeNode Node)

void x_LinkNodes(TMergeNode Parent, TMergeNode Child)

set< TMergeNode > m_Leaves

void Search(TEquivList &Path, bool Once=false)

void Print(CNcbiOstream &Out)

void x_Dot_Nodes(CNcbiOstream &Out, TMergeNode Node, TBitVec &Explored)

bool x_FindBefores(TMergeNode New, TMergeNode Curr, set< TMergeNode > &Befores, TBitVec &Explored, TBitVec &Inserted, int &Depth)

void x_UnLinkNodes(TMergeNode Parent, TMergeNode Child)

void x_AddChild(TMergeNode Parent, TMergeNode Child)

void x_AddParent(TMergeNode Child, TMergeNode Parent)

bool x_FindBefores_Up_Recur(TMergeNode New, TMergeNode Curr, set< TMergeNode > &Befores, TBitVec &Explored, TBitVec &Inserted, int &Depth)

void x_Print(CNcbiOstream &Out, TMergeNode Node, int Level, int &Count, TBitVec &Explored)

void AddEquivs(const TEquivList &Equivs)

void x_FindLeafs(TMergeNode Curr, set< TMergeNode > &Leafs, TBitVec &Explored)

TMergeNode x_GetNode(CEquivRange Equiv)

TMergeNode x_Search_Iter(TMergeNode StartNode, TBitVec &Explored, TMergeNode &UnBest)

bool x_FindAfters(TMergeNode New, TMergeNode Curr, set< TMergeNode > &Afters, TBitVec &Explored, TBitVec &Inserted)

size_t x_CountChildLinks(TMergeNode Node, TBitVec &Explored) const

bool x_FindAfters_Up(TMergeNode New, TMergeNode Curr, set< TMergeNode > &Afters, TBitVec &Explored, TBitVec &Inserted)

size_t x_CountChildNodes(TMergeNode Node, TBitVec &Explored) const

void x_RemoveChild(TMergeNode Parent, TMergeNode Child)

void x_CheckInterruptCallback()

bool x_IsEventualChildOf(TMergeNode Parent, TMergeNode ToFind, TBitVec &Explored)

unsigned int m_InterruptCounter

TMergeNode x_Search_Recur(TMergeNode CurrNode, TBitVec &Explored, TMergeNode &UnBest)

static const unsigned int INTERRUPT_CHECK_RATE

void x_EvalGap(const CEquivRange &Early, const CEquivRange &Late, ssize_t &GapOpen, ssize_t &GapExtend) const

CMergeTree::TFrameBuffer m_FrameBuffer

CMergeTree::TBitVec m_Explored

CMergeTree::TBitVec m_Inserted

bool get(size_t index) const

container_type::iterator iterator

const_iterator end() const

const_iterator find(const key_type &key) const

iterator_bool insert(const value_type &val)

vector< CEquivRange > TEquivList

string Path(const string &dir, const string &file)

unsigned int TSeqPos

Type for sequence locations and lengths.

#define ITERATE(Type, Var, Cont)

ITERATE macro to sequence through container elements.

#define ERASE_ITERATE(Type, Var, Cont)

Non-constant version with ability to erase current element, if container permits.

#define NON_CONST_ITERATE(Type, Var, Cont)

Non constant version of ITERATE macro.

#define REVERSE_ITERATE(Type, Var, Cont)

ITERATE macro to reverse sequence through container elements.

bool NotNull(void) const THROWS_NONE

Check if pointer is not null – same effect as NotEmpty().

void Reset(void)

Reset reference object.

bool IsNull(void) const THROWS_NONE

Check if pointer is null – same effect as Empty().

bool AbuttingWith(const TThisType &r) const

#define END_NCBI_SCOPE

End previously defined NCBI scope.

#define BEGIN_NCBI_SCOPE

Define ncbi namespace.

IO_PREFIX::ostream CNcbiOstream

Portable alias for ostream.

TTo GetTo(void) const

Get the To member data.

TFrom GetFrom(void) const

Get the From member data.

bool s_SortMergeNodeByQuery_Minus(const TMergeNode &A, const TMergeNode &B)

bool s_SortMergeNodeBySubjt(const TMergeNode &A, const TMergeNode &B)

bool operator<(const CMergeNode &A, const CMergeNode &B)

bool s_SortMergeNodeByQuery(const TMergeNode &A, const TMergeNode &B)

vector< TMergeNode > TMergeNodeVec

CRef< CMergeNode > TMergeNode

constexpr auto sort(_Init &&init)

void Out(T t, int w, CNcbiOstream &to=cout)

vector< TFrameRef > ChildFrames

ssize_t BestChildModScore

list< CRef< SSearchIterFrame > > ChildFrames

void PS(const CSerialObject *obj)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4