src/hg/hgc/bamClick.c 1.18
1.18 2010/03/03 19:30:04 angie
Bam track improvements: 1. Enable indel-coloring. 2. Display soft-clipped sequence instead of pretending it doesn't exist.
Index: src/hg/hgc/bamClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/bamClick.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -b -B -U 4 -r1.17 -r1.18
--- src/hg/hgc/bamClick.c 17 Feb 2010 19:35:48 -0000 1.17
+++ src/hg/hgc/bamClick.c 3 Mar 2010 19:30:04 -0000 1.18
@@ -49,20 +49,18 @@
puts("<BR>");
char nibName[HDB_MAX_PATH_STRING];
hNibForChrom(database, seqName, nibName);
struct dnaSeq *genoSeq = hFetchSeq(nibName, seqName, tStart, tEnd);
-struct ffAli *ffa = bamToFfAli(bam, genoSeq, tStart, useStrand);
-char *qSeq = ffa->nStart;
+char *qSeq = NULL;
+struct ffAli *ffa = bamToFfAli(bam, genoSeq, tStart, useStrand, &qSeq);
printf("<B>Alignment of %s to %s:%d-%d%s:</B><BR>\n", itemName,
seqName, tStart+1, tEnd, (isRc ? " (reverse complemented)" : ""));
ffShowSideBySide(stdout, ffa, qSeq, 0, genoSeq->dna, tStart, tLength, 0, tLength, 8, isRc,
FALSE);
printf("<B>Sequence quality scores:</B><BR>\n<TT><TABLE><TR>\n");
UBYTE *quals = bamGetQueryQuals(bam, useStrand);
-int clippedQLen;
-bamGetSoftClipping(bam, NULL, NULL, &clippedQLen);
int i;
-for (i = 0; i < clippedQLen; i++)
+for (i = 0; i < core->l_qseq; i++)
{
if (i > 0 && (i % 24) == 0)
printf("</TR>\n<TR>");
printf("<TD>%c<BR>%d</TD>", qSeq[i], quals[i]);
@@ -84,8 +82,13 @@
reverseComplement(rightSeq, strlen(rightSeq));
if ((rightStart > leftStart && leftStart + leftLen > rightStart) ||
(leftStart > rightStart && rightStart+rightLen > leftStart))
{
+ int leftClipLow, rightClipLow;
+ bamGetSoftClipping(leftBam, &leftClipLow, NULL, NULL);
+ bamGetSoftClipping(rightBam, &rightClipLow, NULL, NULL);
+ leftStart -= leftClipLow;
+ rightStart -= rightClipLow;
printf("<B>Note: End read alignments overlap:</B><BR>\n<PRE><TT>");
int i = leftStart - rightStart;
while (i-- > 0)
putc(' ', stdout);
@@ -112,11 +115,11 @@
printPosOnChrom(seqName, start, end, NULL, FALSE, itemName);
puts("<P>");
}
showOverlap(leftBam, rightBam);
-printf("<TABLE><TR><TD><H4>Left end read</H4>\n");
+printf("<TABLE><TR><TD valign=top><H4>Left end read</H4>\n");
singleBamDetails(leftBam);
-printf("</TD><TD><H4>Right end read</H4>\n");
+printf("</TD><TD valign=top><H4>Right end read</H4>\n");
singleBamDetails(rightBam);
printf("</TD></TR></TABLE>\n");
}