コード例 #1
0
ファイル: rangeGraph.c プロジェクト: davidhoover/kent
void rangeGraph(char *inName)
/* rangeGraph - test ideas about graph that tracks possible distance ranges. */
{
struct rgi *rgiList, *rgi;
struct diGraph *graph = dgNew();
boolean ok;

/* Read in range list and add all nodes to graph. */
rgiList = readRgi(inName);
for (rgi = rgiList; rgi != NULL; rgi = rgi->next)
    {
    maybeMakeNode(graph, rgi->a);
    maybeMakeNode(graph, rgi->b);
    }

for (rgi = rgiList; rgi != NULL; rgi = rgi->next)
    {
    struct dgNode *a, *b;
    a = dgFindNode(graph, rgi->a);
    b = dgFindNode(graph, rgi->b);
    ok = tryAddingRangeEdge(graph, a, b, rgi->minDistance, rgi->maxDistance);
    printf("Added %s->%s min %d, max %d. %s\n",
    	rgi->a, rgi->b, rgi->minDistance, rgi->maxDistance,
	(ok ? "ok" : "conflict") );
    }
}
コード例 #2
0
ファイル: diGraph.c プロジェクト: andrelmartins/bigWig
struct dgNode *dgFindNumberedNode(struct diGraph *dg, int id)
/* Find node given number. */
{
char buf[16];
sprintf(buf, "%d", id);
return dgFindNode(dg, buf);
}
コード例 #3
0
ファイル: rangeGraph.c プロジェクト: davidhoover/kent
void maybeMakeNode(struct diGraph *graph, char *nodeName)
/* Make node in graph if not there already. */
{
if (!dgFindNode(graph, nodeName))
    {
    struct nodeRange *r;
    AllocVar(r);
    dgAddNode(graph, nodeName, r);
    }
}