#include "common.h"#include "localmem.h"#include "rbTree.h"#include "rangeTree.h"Include dependency graph for rangeTree.c:

Go to the source code of this file.
Functions | |
| int | rangeCmp (void *va, void *vb) |
| range * | rangeTreeAdd (struct rbTree *tree, int start, int end) |
| boolean | rangeTreeOverlaps (struct rbTree *tree, int start, int end) |
| static void | rangeListAdd (void *v) |
| range * | rangeTreeList (struct rbTree *tree) |
| range * | rangeTreeFindEnclosing (struct rbTree *tree, int start, int end) |
| range * | rangeTreeAllOverlapping (struct rbTree *tree, int start, int end) |
| static void | addOverlap (void *v) |
| int | rangeTreeOverlapSize (struct rbTree *tree, int start, int end) |
| rbTree * | rangeTreeNew () |
| rbTree * | rangeTreeNewDetailed (struct lm *lm, struct rbTreeNode *stack[128]) |
Variables | |
| static struct range * | rangeList |
| static int | totalOverlap |
| static int | overlapStart |
| static int | overlapEnd |
| static void addOverlap | ( | void * | v | ) | [static] |
Definition at line 104 of file rangeTree.c.
References range::end, overlapEnd, overlapStart, positiveRangeIntersection(), range::start, and totalOverlap.
Referenced by rangeTreeOverlapSize().
00106 { 00107 struct range *r = v; 00108 totalOverlap += positiveRangeIntersection(r->start, r->end, 00109 overlapStart, overlapEnd); 00110 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int rangeCmp | ( | void * | va, | |
| void * | vb | |||
| ) |
Definition at line 13 of file rangeTree.c.
References range::end, and range::start.
Referenced by rangeTreeNew(), and rangeTreeNewDetailed().
00016 { 00017 struct range *a = va; 00018 struct range *b = vb; 00019 if (a->end <= b->start) 00020 return -1; 00021 else if (b->end <= a->start) 00022 return 1; 00023 else 00024 return 0; 00025 }
Here is the caller graph for this function:

| static void rangeListAdd | ( | void * | v | ) | [static] |
Definition at line 56 of file rangeTree.c.
References rangeList, and slAddHead.
Referenced by rangeTreeAllOverlapping(), and rangeTreeList().
Here is the caller graph for this function:

Definition at line 27 of file rangeTree.c.
References range::end, rbTree::lm, lmCloneMem(), max, min, rbTreeAdd(), rbTreeRemove(), range::start, and range::val.
00029 { 00030 struct range tempR, *existing; 00031 tempR.start = start; 00032 tempR.end = end; 00033 tempR.val = NULL; 00034 while ((existing = rbTreeRemove(tree, &tempR)) != NULL) 00035 { 00036 tempR.start = min(tempR.start, existing->start); 00037 tempR.end = max(tempR.end, existing->end); 00038 } 00039 struct range *r = lmCloneMem(tree->lm, &tempR, sizeof(tempR)); 00040 rbTreeAdd(tree, r); 00041 return r; 00042 }
Here is the call graph for this function:

Definition at line 86 of file rangeTree.c.
References range::end, rangeList, rangeListAdd(), rbTreeTraverseRange(), slReverse(), and range::start.
00090 { 00091 struct range tempR; 00092 tempR.start = start; 00093 tempR.end = end; 00094 rangeList = NULL; 00095 rbTreeTraverseRange(tree, &tempR, &tempR, rangeListAdd); 00096 slReverse(&rangeList); 00097 return rangeList; 00098 }
Here is the call graph for this function:

Definition at line 73 of file rangeTree.c.
References range::end, rbTreeFind(), and range::start.
00076 { 00077 struct range tempR, *r; 00078 tempR.start = start; 00079 tempR.end = end; 00080 r = rbTreeFind(tree, &tempR); 00081 if (r != NULL && r->start <= start && r->end >= end) 00082 return r; 00083 return NULL; 00084 }
Here is the call graph for this function:

Definition at line 63 of file rangeTree.c.
References rangeList, rangeListAdd(), rbTreeTraverse(), and slReverse().
00066 { 00067 rangeList = NULL; 00068 rbTreeTraverse(tree, rangeListAdd); 00069 slReverse(&rangeList); 00070 return rangeList; 00071 }
Here is the call graph for this function:

| struct rbTree* rangeTreeNew | ( | ) | [read] |
Definition at line 126 of file rangeTree.c.
References rangeCmp(), and rbTreeNew().
Here is the call graph for this function:

| struct rbTree* rangeTreeNewDetailed | ( | struct lm * | lm, | |
| struct rbTreeNode * | stack[128] | |||
| ) | [read] |
Definition at line 132 of file rangeTree.c.
References lm, rangeCmp(), rbTreeNewDetailed(), and rbTree::stack.
00136 { 00137 return rbTreeNewDetailed(rangeCmp, lm, stack); 00138 }
Here is the call graph for this function:

| boolean rangeTreeOverlaps | ( | struct rbTree * | tree, | |
| int | start, | |||
| int | end | |||
| ) |
Definition at line 44 of file rangeTree.c.
References range::end, rbTreeFind(), range::start, and range::val.
00046 { 00047 struct range tempR; 00048 tempR.start = start; 00049 tempR.end = end; 00050 tempR.val = NULL; 00051 return rbTreeFind(tree, &tempR) != NULL; 00052 }
Here is the call graph for this function:

| int rangeTreeOverlapSize | ( | struct rbTree * | tree, | |
| int | start, | |||
| int | end | |||
| ) |
Definition at line 112 of file rangeTree.c.
References addOverlap(), range::end, overlapEnd, overlapStart, rbTreeTraverseRange(), range::start, and totalOverlap.
Referenced by pslRangeTreeOverlap().
00116 { 00117 struct range tempR; 00118 tempR.start = overlapStart = start; 00119 tempR.end = overlapEnd = end; 00120 totalOverlap = 0; 00121 rbTreeTraverseRange(tree, &tempR, &tempR, addOverlap); 00122 return totalOverlap; 00123 }
Here is the call graph for this function:

Here is the caller graph for this function:

int overlapEnd [static] |
int overlapStart [static] |
Definition at line 54 of file rangeTree.c.
Referenced by fastMapClumpsToBundles(), ffSeedExtInMem(), gfAlignSomeClumps(), gfAlignStrand(), gfAlignTrans(), gfAlignTransTrans(), gfClumpsToBundles(), gfFindAlignAaTrans(), gfLongDnaInMem(), gfPcrGetRanges(), gfPcrOneViaNet(), gfQuerySeq(), gfRangesToFfItem(), gfTransTransFindBundles(), loadHashT3Ranges(), rangeCoorTimes3(), rangeListAdd(), rangeTreeAllOverlapping(), rangeTreeList(), seqClumpToRangeList(), and untranslateRangeList().
int totalOverlap [static] |
1.5.2