From 27dd510539a22712060f3bbe8c7098c56764ee79 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Mon, 19 Mar 2012 14:11:30 -0400 Subject: [PATCH] name sorting checkes READ1 and READ2 --- bam_sort.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bam_sort.c b/bam_sort.c index 03196a8..d38c7a1 100644 --- a/bam_sort.c +++ b/bam_sort.c @@ -50,7 +50,7 @@ static inline int heap_lt(const heap1_t a, const heap1_t b) int t; if (a.b == 0 || b.b == 0) return a.b == 0? 1 : 0; t = strnum_cmp(bam1_qname(a.b), bam1_qname(b.b)); - return (t > 0 || (t == 0 && __pos_cmp(a, b))); + return (t > 0 || (t == 0 && (a.b->core.flag&0xc0) > (b.b->core.flag&0xc0))); } else return __pos_cmp(a, b); } @@ -320,7 +320,7 @@ static inline int bam1_lt(const bam1_p a, const bam1_p b) { if (g_is_by_qname) { int t = strnum_cmp(bam1_qname(a), bam1_qname(b)); - return (t < 0 || (t == 0 && (((uint64_t)a->core.tid<<32|(a->core.pos+1)) < ((uint64_t)b->core.tid<<32|(b->core.pos+1))))); + return (t < 0 || (t == 0 && (a->core.flag&0xc0) < (b->core.flag&0xc0))); } else return (((uint64_t)a->core.tid<<32|(a->core.pos+1)<<1|bam1_strand(a)) < ((uint64_t)b->core.tid<<32|(b->core.pos+1)<<1|bam1_strand(b))); } KSORT_INIT(sort, bam1_p, bam1_lt) -- 2.39.2