src/hg/tcga/pBamBam/pBamStats.c 1.2

1.2 2010/01/05 04:30:53 jsanborn
updated
Index: src/hg/tcga/pBamBam/pBamStats.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/tcga/pBamBam/pBamStats.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 4 -r1.1 -r1.2
--- src/hg/tcga/pBamBam/pBamStats.c	5 Jan 2010 04:03:36 -0000	1.1
+++ src/hg/tcga/pBamBam/pBamStats.c	5 Jan 2010 04:30:53 -0000	1.2
@@ -39,9 +39,9 @@
 #define MAX_ISIZE 10000
 
 typedef struct {
   double avg_isize, n_good_paired;
-  long long prev_pos, n_pos;
+    long long prev_pos, n_pos, n_align;
   long long n_reads, n_mapped, n_pair_all, n_pair_map, n_pair_good;
   long long n_sgltn, n_read1, n_read2;
   long long n_qcfail, n_dup;
   long long n_interchr, n_interchrhigh;
@@ -51,10 +51,12 @@
 void flagstat_loop(bam_flagstat_t *s, bam1_core_t *c)
 {
 ++(s)->n_reads;
 if ((c)->pos > (s)->prev_pos) 
-    ++(s)->n_pos;
-
+    {
+    ++(s)->n_pos;                 // number of unique locations
+    (s)->n_align += (c)->l_qseq;  // number of aligned positions in unique seq
+    }
 (s)->prev_pos = (c)->pos;
 
 if ((c)->flag & BAM_FPAIRED) 
     {					
@@ -150,8 +152,9 @@
 
 printf(">%s\n", position);
 printf("n_reads\t%lld\n", s->n_reads);
 printf("n_pos\t%lld\n", s->n_pos);
+printf("n_align\t%lld\n", s->n_align);
 printf("fail_QA\t%lld\n", s->n_qcfail);
 printf("dupes\t%lld\n", s->n_dup);
 printf("mapped\t%lld\n", s->n_mapped);
 printf("paired\t%lld\n", s->n_pair_all);