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;
}