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