src/hg/tcga/bamBam/bamBamCNV.c 1.3

1.3 2009/11/11 20:51:54 jsanborn
generalized bam_dual to avoid kent libraries
Index: src/hg/tcga/bamBam/bamBamCNV.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/tcga/bamBam/bamBamCNV.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -b -B -U 4 -r1.2 -r1.3
--- src/hg/tcga/bamBam/bamBamCNV.c	6 Nov 2009 20:29:26 -0000	1.2
+++ src/hg/tcga/bamBam/bamBamCNV.c	11 Nov 2009 20:51:54 -0000	1.3
@@ -80,27 +80,29 @@
     for (i = 0; i < d->nL; ++i)
 	{
 	p = d->puL + i;
 	bam1_core_t *c = &p->b->core;
-	if ((c)->pos < ap->prevStop)
+	if ((c)->pos <= ap->prevStop)
 	    return 0;
 	}
 
     for (i = 0; i < d->nR; ++i)
 	{
 	p = d->puR + i;
 	bam1_core_t *c = &p->b->core;
-	if ((c)->pos < ap->prevStop)
+	if ((c)->pos <= ap->prevStop)
 	    return 0;
 	}
     }
 
 ap->tid = d->tidL;
-int32_t start, stop, rstart = ap->rstart, rstop = ap->rstop;
+
+int32_t start, stop;
+int32_t lstart = ap->lstart, lstop = ap->lstop;
 int32_t prevPos = -1;
-for (i = 0; i < d->nR; ++i)
+for (i = 0; i < d->nL; ++i)
     {
-    p = d->puR + i;
+    p = d->puL + i;
     bam1_core_t *c = &p->b->core;
     if ((c)->qual < ap->minMapQ)
 	continue;
 
@@ -108,29 +110,29 @@
 	{ // read is mapped and not an optical/PCR dupe 
 	start = (c)->pos;
 	stop  = start + (c)->l_qseq;
 
-	if (rstart == -1)
+	if (lstart == -1)
 	    {
-	    rstart = start;
-	    rstop  = stop;
-	    ap->rcounts += 1;
+	    lstart = start;
+	    lstop  = stop;
+	    ap->lcounts += 1;
 	    }
-	else if ((start > prevPos) && (start > rstart) && (stop > rstop))
+	else if ((start > prevPos) && (start > lstart && stop > lstop))
 	    {  // make sure there are no possible dupes by removing all by 
 	       // comparing left-most position of each read, only allowing one per pos.
 	    prevPos = start;
-	    rstop  = stop;
-	    ap->rcounts += 1;
+	    lstop = stop;
+	    ap->lcounts += 1;
 	    }
 	}
     }
 
-int32_t lstart = ap->lstart, lstop = ap->lstop;
+int32_t rstart = ap->rstart, rstop = ap->rstop;
 prevPos = -1;
-for (i = 0; i < d->nL; ++i)
+for (i = 0; i < d->nR; ++i)
     {
-    p = d->puL + i;
+    p = d->puR + i;
     bam1_core_t *c = &p->b->core;
     if ((c)->qual < ap->minMapQ)
 	continue;
 
@@ -138,23 +140,23 @@
 	{ // read is mapped and not an optical/PCR dupe 
 	start = (c)->pos;
 	stop  = start + (c)->l_qseq;
 
-	if (!((start >= rstart) && (stop <= rstop)))
+	if (!((start >= lstart) && (stop <= lstop)))
 	    continue;
 
-	if (lstart == -1)
+	if (rstart == -1)
 	    {
-	    lstart = start;
-	    lstop  = stop;
-	    ap->lcounts += 1;
+	    rstart = start;
+	    rstop  = stop;
+	    ap->rcounts += 1;
 	    }
-	else if ((start > prevPos) && (start > lstart && stop > lstop))
+	else if ((start > prevPos) && (start > rstart) && (stop > rstop))
 	    {  // make sure there are no possible dupes by removing all by 
 	       // comparing left-most position of each read, only allowing one per pos.
 	    prevPos = start;
-	    lstop = stop;
-	    ap->lcounts += 1;
+	    rstop  = stop;
+	    ap->rcounts += 1;
 	    }
 	}
     }
 
@@ -163,9 +166,9 @@
 
 ap->rstart = rstart;
 ap->rstop  = rstop;
 
-if (ap->rcounts >= ap->readsPerBin)
+if (ap->lcounts >= ap->readsPerBin)
     return 1;
 
 return 0;
 }