src/hg/instinct/hgBamBam/drawingCode.c 1.5
1.5 2010/05/31 00:55:19 jsanborn
minor tweakpdate
Index: src/hg/instinct/hgBamBam/drawingCode.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/hgBamBam/drawingCode.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -b -B -U 4 -r1.4 -r1.5
--- src/hg/instinct/hgBamBam/drawingCode.c 31 May 2010 00:02:34 -0000 1.4
+++ src/hg/instinct/hgBamBam/drawingCode.c 31 May 2010 00:55:19 -0000 1.5
@@ -241,8 +241,36 @@
else
return 0;
}
+void sortBreaks(struct breaks **breaksPtr, char *currentChrom)
+{
+struct breaks *br, *breaks = *breaksPtr;
+
+for (br = breaks; br; br = br->next)
+ {
+ if (sameString(br->chrom, br->chrom2) || sameString(br->chrom, currentChrom))
+ continue;
+
+ char *tmpc = br->chrom;
+ int tmpS = br->chromStart;
+ int tmpE = br->chromEnd;
+ char tmpSt[2];
+ strcpy(tmpSt, br->strand);
+
+ br->chrom = br->chrom2;
+ br->chromStart = br->chromStart2;
+ br->chromEnd = br->chromEnd2;
+ strcpy(br->strand, br->strand2);
+
+ br->chrom2 = tmpc;
+ br->chromStart2 = tmpS;
+ br->chromEnd2 = tmpE;
+ strcpy(br->strand2, tmpSt);
+ }
+
+slSort(breaksPtr, breaksCmp);
+}
void drawInterChromBreaks(struct hvGfx *hvg, struct breaks *breaks,
struct chromLay *clList, struct settings *settings)
{
@@ -277,9 +305,9 @@
vgSetClip(vg, settings->dataOffsetX, 0, settings->dataWidth, settings->height);
int ibreak = 0;
-slSort(&breaks, breaksCmp);
+sortBreaks(&breaks, currentChrom);
int yOff;
for (br = breaks; br; br = br->next)
{
@@ -287,9 +315,8 @@
clL = NULL;
clR = NULL;
int yBreak = INTER_BREAK_HEIGHT * ibreak + CYTO_HEIGHT + DEFAULT_LABEL_HEIGHT + yfoot + INTER_BREAK_HEIGHT/2;
- ibreak++;
int csL, ceL;
int csR, ceR;
if (sameString(currentChrom, br->chrom))
@@ -359,8 +386,9 @@
vgBox(vg, xr1, yOff + yr, wr, 1, MG_BLACK);
vgLine(vg, xr1, yOff + yr, xr1 + rdir * FOOT_HEIGHT, yOff + yr - yfoot, MG_BLACK);
vgLine(vg, xr1, yOff + yr, xr1, yOff + yBreak, col);
}
+ ibreak++;
}
vgUnclip(vg);
}