From 58c0233d131e09ec75eaf9e25d140432fd394376 Mon Sep 17 00:00:00 2001 From: rnc <rnc> Date: Thu, 20 Nov 2003 14:32:31 +0000 Subject: [PATCH] removed KEY from methodStruct - using name instead --- src/zmapWindow/seqregion.h | 2 +- src/zmapWindow/seqregionconvert.c | 46 +++++++++++++++++-------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/zmapWindow/seqregion.h b/src/zmapWindow/seqregion.h index 987da76ca..51cc02081 100755 --- a/src/zmapWindow/seqregion.h +++ b/src/zmapWindow/seqregion.h @@ -1,3 +1,4 @@ +/* Last edited: Nov 20 13:47 2003 (rnc) */ /* file: seqregion.h * Author: Richard Durbin (rd@mrc-lmb.cam.ac.uk) * Copyright (C) J Thierry-Mieg and R Durbin, 1992 @@ -139,7 +140,6 @@ typedef struct segStruct SEG; typedef struct methodStruct { methodID id; - KEY key; /* private */ char *name, *remark; unsigned int flags; int colour, CDS_colour, upStrandColour; diff --git a/src/zmapWindow/seqregionconvert.c b/src/zmapWindow/seqregionconvert.c index 89b71df7c..3bf0cfc73 100755 --- a/src/zmapWindow/seqregionconvert.c +++ b/src/zmapWindow/seqregionconvert.c @@ -1,3 +1,4 @@ +/* Last edited: Nov 20 14:12 2003 (rnc) */ /* file: seqregionconvert.c * Author: Simon Kelley (srk@sanger.ac.uk) * Copyright (c) Sanger Institute, 2003 @@ -35,9 +36,9 @@ #include <whooks/systags.h> #include <whooks/classes.h> -static methodID srMethCreate(SeqRegion *region, KEY methodKey); -static srMeth *methodFromKey(Array methods, KEY key); -static methodID srMethodMake(SeqRegion *region, KEY key); +static methodID srMethCreate (SeqRegion *region, char *methodName); +static srMeth *methodFromName(Array methods , char *methodName); +static methodID srMethodMake (SeqRegion *region, char *methodName); /* exported functi on */ @@ -55,54 +56,52 @@ srMeth *srMethodFromID(SeqRegion *region, methodID id) return NULL; } -static srMeth *methodFromKey(Array methods, KEY key) +static srMeth *methodFromName(Array methods, char *methodName) { int i; - key = lexAliasOf(key); /* use canonical key */ - if (methods) for (i=0; i<arrayMax(methods); i++) { srMeth *meth = arrp(methods, i, srMeth); - if (meth->key == key) + if (meth->name == methodName) return meth; } return NULL; } -static methodID srMethodMake(SeqRegion *region, KEY key) +static methodID srMethodMake(SeqRegion *region, char *methodName) { srMeth *meth; - if ((meth = methodFromKey(region->methods, key))) + if ((meth = methodFromName(region->methods, methodName))) return meth->id; - else if ((meth = methodFromKey(region->oldMethods, key))) + else if ((meth = methodFromName(region->oldMethods, methodName))) { srMeth *new = arrayp(region->methods, arrayMax(region->methods), srMeth); *new = *meth; return new->id; } else - return srMethCreate(region, key); + return srMethCreate(region, methodName); } -static methodID srMethCreate(SeqRegion *region, KEY methodKey) +static methodID srMethCreate(SeqRegion *region, char *methodName) { srMeth *meth; OBJ obj ; int k; char *text; + KEY methodKey; - if (class(methodKey) != _VMethod) - messcrash ("methodAdd() - methodKey not in class 'Method'"); + if (!lexword2key(methodName, &methodKey, _VMethod)) + messcrash ("srMethodCreate() - methodKey not found in lex."); if (!(obj = bsCreate (methodKey))) return 0; meth = arrayp(region->methods, arrayMax(region->methods), srMeth); meth->id = region->idc++; - meth->key = methodKey; meth->name = str2p(name(methodKey), region->bucket); meth->flags &= ~METHOD_CALCULATED ;/* unset flag */ meth->flags |= METHOD_DONE ; /* set flag */ @@ -204,14 +203,15 @@ void seqRegionConvert(SeqRegion *region) for (i = 0 ; i < keySetMax(allKeys) ; i++) { - KEY method, key = keySet(allKeys, i); + KEY methodKey, key = keySet(allKeys, i); SMapKeyInfo *info = sMapKeyInfo(region->smap, key); int x1, x2; SMapStatus status ; SEG *seg; OBJ obj; - - if ((obj = bsCreate(key)) && bsGetKey(obj, str2tag("Method"), &method)) + char *methodName; + + if ((obj = bsCreate(key)) && bsGetKey(obj, str2tag("Method"), &methodKey)) { Coord cdsStart, cdsEnd; srType type = SR_SEQUENCE; /* default */ @@ -220,6 +220,9 @@ void seqRegionConvert(SeqRegion *region) BOOL isCDS = FALSE; Array exons = NULL; + methodName = messalloc(strlen(name(methodKey))); /* need to remember to free this? */ + methodName = str2p(name(methodKey), region->bucket); + if (bsFindTag(obj, str2tag("Start_not_Found"))) { isStartNotFound = TRUE; @@ -274,9 +277,9 @@ void seqRegionConvert(SeqRegion *region) seg->x1 = x1; seg->x2 = x2; seg->phase = phase; - seg->method = srMethodMake(region, method);if (type == SR_TRANSCRIPT); + seg->method = srMethodMake(region, methodName); - if (type = SR_TRANSCRIPT) + if (type == SR_TRANSCRIPT) { if (!isCDS) sMapMap(info, 1, 0, &cdsStart, &cdsEnd, NULL, NULL); @@ -313,7 +316,7 @@ void seqRegionConvert(SeqRegion *region) seg->x1 = x1; seg->x2 = x2; seg->score = u[3].f; - seg->method = srMethodMake(region, u[0].k); + seg->method = srMethodMake(region, str2p(name(u[0].k), region->bucket)); } } if (bsFindTag(obj, str2tag("Homol"))) @@ -323,6 +326,7 @@ void seqRegionConvert(SeqRegion *region) } } + bsDestroy(obj); -- GitLab