From 635998cfe030da5f3dbec42a6daa3ca82fa5c871 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Thu, 22 Jan 2009 15:14:27 +0000 Subject: [PATCH] * Merge from branches/dev/ * all future development will happen here at trunk/ --- COPYING | 2 +- ChangeLog | 363 ++++++++++++++++++++++++++++++++++++++++++ INSTALL | 7 + Makefile | 5 +- Makefile.lite | 63 ++++++++ bam.c | 1 + bam.h | 26 ++- bam_import.c | 6 +- bam_index.c | 28 ++-- bam_lpileup.c | 7 +- bam_maqcns.c | 83 +++++++--- bam_maqcns.h | 8 +- bam_mate.c | 68 ++++++++ bam_pileup.c | 12 +- bam_plcmd.c | 114 +++++++++++-- bam_rmdup.c | 140 ++++++++++++++++ bam_sort.c | 2 +- bamtk.c | 12 +- bgzf.h | 2 +- examples/00README.txt | 23 ++- examples/Makefile | 21 +++ examples/ex1.fa.fai | 2 - examples/ex1.sam.gz | Bin 107374 -> 113928 bytes faidx.c | 2 +- glf.c | 156 ++++++++++++++++++ glf.h | 36 +++++ misc/Makefile | 2 +- misc/maq2sam.c | 10 +- razf.c | 4 + source.dot | 10 +- 30 files changed, 1128 insertions(+), 87 deletions(-) create mode 100644 INSTALL create mode 100644 Makefile.lite create mode 100644 bam_mate.c create mode 100644 bam_rmdup.c create mode 100644 examples/Makefile delete mode 100644 examples/ex1.fa.fai create mode 100644 glf.c diff --git a/COPYING b/COPYING index 2f596e5..82fa2f4 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2008 Genome Research Ltd. +Copyright (c) 2008-2009 Genome Research Ltd. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/ChangeLog b/ChangeLog index 4c52aad..4535978 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,366 @@ +------------------------------------------------------------------------ +r104 | lh3lh3 | 2009-01-18 17:31:21 +0000 (Sun, 18 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam.h + M /branches/dev/samtools/bam_lpileup.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-18 + * fixed a bug in bam_lpileup.c: segment start and end are not correctly recognized + +------------------------------------------------------------------------ +r103 | lh3lh3 | 2009-01-18 16:34:03 +0000 (Sun, 18 Jan 2009) | 5 lines +Changed paths: + M /branches/dev/samtools/bam_import.c + M /branches/dev/samtools/bam_index.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-17 + * fixed a bug when there are reads without coordinates + * also recognize type 'c' as 'A' + * found a bug in bam_lpileup.c; NOT fixed yet + +------------------------------------------------------------------------ +r102 | lh3lh3 | 2009-01-17 19:46:49 +0000 (Sat, 17 Jan 2009) | 2 lines +Changed paths: + A /branches/dev/samtools/INSTALL + +Instruction for compilation + +------------------------------------------------------------------------ +r101 | lh3lh3 | 2009-01-17 19:31:36 +0000 (Sat, 17 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/Makefile + A /branches/dev/samtools/Makefile.lite + M /branches/dev/samtools/bam.h + M /branches/dev/samtools/faidx.c + M /branches/dev/samtools/misc/Makefile + M /branches/dev/samtools/razf.c + + * replaced HAVE_RAZF with _NO_RAZF + * added Makefile.lite for people who have trouble with razf.c + +------------------------------------------------------------------------ +r100 | lh3lh3 | 2009-01-16 10:03:37 +0000 (Fri, 16 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam_mate.c + M /branches/dev/samtools/bamtk.c + M /branches/dev/samtools/misc/wgsim.c + + * samtools-0.1.1-15 + * fixed another bug in fixmate: unmapped pair has non-zero isize + +------------------------------------------------------------------------ +r99 | lh3lh3 | 2009-01-16 09:13:36 +0000 (Fri, 16 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/ChangeLog + M /branches/dev/samtools/bam_mate.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-14 + * fixed a bug in fixmate: isize not equal to zero if two ends mapped to + different chr + +------------------------------------------------------------------------ +r98 | lh3lh3 | 2009-01-15 16:47:41 +0000 (Thu, 15 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam_maqcns.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-13 + * fixed the prior for hom indels (Richard pointed this out) + +------------------------------------------------------------------------ +r97 | lh3lh3 | 2009-01-15 16:38:47 +0000 (Thu, 15 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/COPYING + M /branches/dev/samtools/bam_sort.c + M /branches/dev/samtools/bamtk.c + M /branches/dev/samtools/source.dot + + * samtools-0.1.1-12 + * fixed a bug in sort + * update source file graph and copyright information + +------------------------------------------------------------------------ +r96 | lh3lh3 | 2009-01-14 21:46:14 +0000 (Wed, 14 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/glf.c + +fixed a typo + +------------------------------------------------------------------------ +r95 | lh3lh3 | 2009-01-14 21:44:53 +0000 (Wed, 14 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/glf.c + +added a main function for glf.c + +------------------------------------------------------------------------ +r94 | lh3lh3 | 2009-01-14 17:14:59 +0000 (Wed, 14 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/Makefile + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + M /branches/dev/samtools/bgzf.h + A /branches/dev/samtools/glf.c + M /branches/dev/samtools/glf.h + + * samtools-0.1.1-11 + * generate binary GLFv2 + * added glfview command to dump GLFv2 binary file + +------------------------------------------------------------------------ +r93 | lh3lh3 | 2009-01-14 15:07:44 +0000 (Wed, 14 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/bam_rmdup.c + M /branches/dev/samtools/bamtk.c + M /branches/dev/samtools/glf.h + + * samtools-0.1.1-10 + * fixed several bugs in rmdup + * prepare to generate GLF2 + +------------------------------------------------------------------------ +r92 | lh3lh3 | 2009-01-14 13:27:44 +0000 (Wed, 14 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/Makefile + M /branches/dev/samtools/bam.h + M /branches/dev/samtools/bam_import.c + A /branches/dev/samtools/bam_rmdup.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-9 + * implemented rmdup; NOT tested yet + +------------------------------------------------------------------------ +r91 | lh3lh3 | 2009-01-13 20:15:43 +0000 (Tue, 13 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/examples/00README.txt + +update README for typos + +------------------------------------------------------------------------ +r90 | lh3lh3 | 2009-01-13 19:57:50 +0000 (Tue, 13 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/examples/ex1.sam.gz + +update example + +------------------------------------------------------------------------ +r89 | lh3lh3 | 2009-01-13 17:21:38 +0000 (Tue, 13 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/Makefile + M /branches/dev/samtools/bam.c + A /branches/dev/samtools/bam_mate.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-8 + * added fixmate command + +------------------------------------------------------------------------ +r88 | lh3lh3 | 2009-01-13 10:48:23 +0000 (Tue, 13 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-7 + * change the reported indel position to the previous way + +------------------------------------------------------------------------ +r87 | lh3lh3 | 2009-01-12 22:12:12 +0000 (Mon, 12 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-6 + * addd glt output + * allow to change indel calling parameters at the command line + +------------------------------------------------------------------------ +r86 | lh3lh3 | 2009-01-12 21:16:48 +0000 (Mon, 12 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/bam.h + M /branches/dev/samtools/bam_pileup.c + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-5 + * added two more flags + * allowed to select reads shown in pileup with a mask + +------------------------------------------------------------------------ +r85 | lh3lh3 | 2009-01-12 20:47:51 +0000 (Mon, 12 Jan 2009) | 4 lines +Changed paths: + M /branches/dev/samtools/bam_index.c + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-4 + * fixed a bug in indexing (linear index) + * prepare to add glt output from pileup + +------------------------------------------------------------------------ +r84 | lh3lh3 | 2009-01-12 09:22:35 +0000 (Mon, 12 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-3 + * fixed a bug in outputing the coordinate of an indel + +------------------------------------------------------------------------ +r83 | lh3lh3 | 2009-01-11 15:18:01 +0000 (Sun, 11 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-2 + * pileup: allows to output indel sites only + +------------------------------------------------------------------------ +r82 | lh3lh3 | 2009-01-10 23:34:31 +0000 (Sat, 10 Jan 2009) | 3 lines +Changed paths: + M /branches/dev/samtools/bam_maqcns.c + M /branches/dev/samtools/bam_maqcns.h + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bamtk.c + + * samtools-0.1.1-1 + * implemented a Bayesian indel caller + +------------------------------------------------------------------------ +r81 | lh3lh3 | 2009-01-09 09:54:28 +0000 (Fri, 09 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/examples/00README.txt + D /branches/dev/samtools/examples/ex1.fa.fai + +Let users generate ex1.fa.fai. + +------------------------------------------------------------------------ +r80 | lh3lh3 | 2009-01-08 16:10:08 +0000 (Thu, 08 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/misc/bowtie2sam.pl + +make the bowtie converter works for "-k 2" + +------------------------------------------------------------------------ +r78 | lh3lh3 | 2009-01-03 17:25:24 +0000 (Sat, 03 Jan 2009) | 2 lines +Changed paths: + M /branches/dev/samtools/misc/export2sam.pl + +fixed a bug for "QC" reads + +------------------------------------------------------------------------ +r77 | lh3lh3 | 2009-01-01 18:32:06 +0000 (Thu, 01 Jan 2009) | 3 lines +Changed paths: + A /branches/dev/samtools/misc/bowtie2sam.pl + M /branches/dev/samtools/misc/soap2sam.pl + + * soap2sam.pl: added NM tag + * bowtie2sam.pl: converter for bowtie + +------------------------------------------------------------------------ +r76 | lh3lh3 | 2008-12-31 23:24:24 +0000 (Wed, 31 Dec 2008) | 2 lines +Changed paths: + A /branches/dev/samtools/misc/soap2sam.pl + +soap2sam.pl: convert soap output to SAM + +------------------------------------------------------------------------ +r75 | lh3lh3 | 2008-12-31 17:54:32 +0000 (Wed, 31 Dec 2008) | 3 lines +Changed paths: + M /branches/dev/samtools/misc/wgsim_eval.pl + + * wgsim_eval.pl-0.1.1 + * fixed a bug for a contig name like "NT_012345" + +------------------------------------------------------------------------ +r74 | lh3lh3 | 2008-12-31 16:38:21 +0000 (Wed, 31 Dec 2008) | 2 lines +Changed paths: + A /branches/dev/samtools/misc/wgsim_eval.pl + + * evaluate alignment for reads generated by wgsim + +------------------------------------------------------------------------ +r73 | lh3lh3 | 2008-12-31 15:11:22 +0000 (Wed, 31 Dec 2008) | 2 lines +Changed paths: + M /branches/dev/samtools/misc/Makefile + M /branches/dev/samtools/misc/wgsim.c + +fixed compiling warnings for wgsim + +------------------------------------------------------------------------ +r72 | lh3lh3 | 2008-12-31 13:40:51 +0000 (Wed, 31 Dec 2008) | 2 lines +Changed paths: + M /branches/dev/samtools/bam_tview.c + +remove an unused variable (a compiler warning only) + +------------------------------------------------------------------------ +r71 | lh3lh3 | 2008-12-31 13:37:16 +0000 (Wed, 31 Dec 2008) | 2 lines +Changed paths: + M /branches/dev/samtools/misc/Makefile + A /branches/dev/samtools/misc/wgsim.c + +wgsim: Paired-end reads simulator + +------------------------------------------------------------------------ +r70 | bhandsaker | 2008-12-29 20:27:16 +0000 (Mon, 29 Dec 2008) | 2 lines +Changed paths: + M /branches/dev/samtools/bam_maqcns.c + M /branches/dev/samtools/bam_tview.c + +Move definition of bam_nt16_nt4_table so we can build without curses. + +------------------------------------------------------------------------ +r62 | lh3lh3 | 2008-12-22 15:55:13 +0000 (Mon, 22 Dec 2008) | 2 lines +Changed paths: + A /branches/dev/samtools/NEWS + M /branches/dev/samtools/bamtk.c + M /branches/dev/samtools/samtools.1 + +Release samtools-0.1.1 + +------------------------------------------------------------------------ +r61 | lh3lh3 | 2008-12-22 15:46:08 +0000 (Mon, 22 Dec 2008) | 10 lines +Changed paths: + M /branches/dev/samtools/bam_aux.c + M /branches/dev/samtools/bam_index.c + M /branches/dev/samtools/bam_plcmd.c + M /branches/dev/samtools/bam_tview.c + M /branches/dev/samtools/bamtk.c + M /branches/dev/samtools/razf.c + M /branches/dev/samtools/samtools.1 + + * samtools-0.1.0-66 + * fixed a bug in razf.c: reset z_eof when razf_seek() is called + * fixed a memory leak in parsing a region + * changed pileup a little bit when -s is in use: output ^ and $ + * when a bam is not indexed, output more meaningful error message + * fixed a bug in indexing for small alignment + * fixed a bug in the viewer when we come to the end of a reference file + * updated documentation + * prepare to release 0.1.1 + +------------------------------------------------------------------------ +r60 | lh3lh3 | 2008-12-22 15:10:16 +0000 (Mon, 22 Dec 2008) | 2 lines +Changed paths: + A /branches/dev/samtools/examples + A /branches/dev/samtools/examples/00README.txt + A /branches/dev/samtools/examples/ex1.fa + A /branches/dev/samtools/examples/ex1.fa.fai + A /branches/dev/samtools/examples/ex1.sam.gz + +example + +------------------------------------------------------------------------ +r59 | lh3lh3 | 2008-12-22 09:38:15 +0000 (Mon, 22 Dec 2008) | 2 lines +Changed paths: + M /branches/dev/samtools/ChangeLog + +update ChangeLog + ------------------------------------------------------------------------ r58 | lh3lh3 | 2008-12-20 23:06:00 +0000 (Sat, 20 Dec 2008) | 3 lines Changed paths: diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..9efcd0c --- /dev/null +++ b/INSTALL @@ -0,0 +1,7 @@ +Compiling samtools requires the zlib library ; +compiling the alignment viewer further requires the GNU ncurses library +. The default Makefile builds the +alignment viewer. If compilation fails due to errors in RAZF or the lack +of ncurses, you can compile with `make -f Makefile.lite'. However, the +alignment viewer will not be available; the FASTA indexer will not +support indexing compressed FASTA, either. \ No newline at end of file diff --git a/Makefile b/Makefile index 32e4c41..aff7eaa 100644 --- a/Makefile +++ b/Makefile @@ -2,9 +2,10 @@ CC= gcc CXX= g++ CFLAGS= -g -Wall -O2 -m64 #-arch ppc CXXFLAGS= $(CFLAGS) -DFLAGS= -D_IOLIB=2 -D_FILE_OFFSET_BITS=64 -DHAVE_RAZF #-D_NO_CURSES +DFLAGS= -D_IOLIB=2 -D_FILE_OFFSET_BITS=64 #-D_NO_RAZF #-D_NO_CURSES OBJS= bam.o bam_import.o bam_pileup.o bam_lpileup.o bam_sort.o bam_index.o \ - razf.o bgzf.o faidx.o bam_tview.o bam_maqcns.o bam_aux.o bam_plcmd.o + razf.o bgzf.o faidx.o bam_tview.o bam_maqcns.o bam_aux.o bam_plcmd.o \ + bam_mate.o bam_rmdup.o glf.o PROG= razip bgzip samtools INCLUDES= LIBS= -lm -lz diff --git a/Makefile.lite b/Makefile.lite new file mode 100644 index 0000000..2abb0ab --- /dev/null +++ b/Makefile.lite @@ -0,0 +1,63 @@ +CC= gcc +CXX= g++ +CFLAGS= -g -Wall -O2 -m64 #-arch ppc +CXXFLAGS= $(CFLAGS) +DFLAGS= -D_IOLIB=2 -D_FILE_OFFSET_BITS=64 -D_NO_CURSES -D_NO_RAZF +OBJS= bam.o bam_import.o bam_pileup.o bam_lpileup.o bam_sort.o bam_index.o \ + bgzf.o faidx.o bam_tview.o bam_maqcns.o bam_aux.o bam_plcmd.o \ + bam_mate.o bam_rmdup.o glf.o +PROG= samtools +INCLUDES= +LIBS= -lm -lz +SUBDIRS= . + +.SUFFIXES:.c .o + +.c.o: + $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@ + +all-recur lib-recur clean-recur cleanlocal-recur install-recur: + @target=`echo $@ | sed s/-recur//`; \ + wdir=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + cd $$subdir; \ + $(MAKE) -f Makefile.lite CC="$(CC)" CXX="$(CXX)" DFLAGS="$(DFLAGS)" CFLAGS="$(CFLAGS)" \ + INCLUDES="$(INCLUDES)" $$target || exit 1; \ + cd $$wdir; \ + done; + +all:$(PROG) + +lib:libbam.a + +libbam.a:$(OBJS) + $(AR) -cru $@ $(OBJS) + +samtools:lib bamtk.o + $(CC) $(CFLAGS) -o $@ bamtk.o $(LIBS) -L. -lbam + +razip:razip.o razf.o + $(CC) $(CFLAGS) -o $@ razf.o razip.o $(LIBS) + +bgzip:bgzip.o bgzf.o + $(CC) $(CFLAGS) -o $@ bgzf.o bgzip.o $(LIBS) + +razip.o:razf.h +bam.o:bam.h razf.h bam_endian.h +bam_import.o:bam.h kseq.h khash.h razf.h +bam_pileup.o:bam.h razf.h ksort.h +bam_plcmd.o:bam.h faidx.h bam_maqcns.h +bam_index.o:bam.h khash.h ksort.h razf.h bam_endian.h +bam_lpileup.o:bam.h ksort.h +bam_tview.o:bam.h faidx.h bam_maqcns.h +bam_maqcns.o:bam.h ksort.h bam_maqcns.h +bam_sort.o:bam.h ksort.h razf.h +razf.o:razf.h + +faidx.o:faidx.h razf.h khash.h +faidx_main.o:faidx.h razf.h + +cleanlocal: + rm -fr gmon.out *.o a.out *.dSYM $(PROG) *~ *.a + +clean:cleanlocal-recur diff --git a/bam.c b/bam.c index 6ccca7c..e470e62 100644 --- a/bam.c +++ b/bam.c @@ -249,6 +249,7 @@ void bam_view1(const bam_header_t *header, const bam1_t *b) } putchar('\t'); if (c->mtid < 0) printf("*\t"); + else if (c->mtid == c->tid) printf("=\t"); else printf("%s\t", header->target_name[c->mtid]); printf("%d\t%d\t", c->mpos + 1, c->isize); for (i = 0; i < c->l_qseq; ++i) putchar(bam_nt16_rev_table[bam1_seqi(s, i)]); diff --git a/bam.h b/bam.h index 4b3a688..76f3e0f 100644 --- a/bam.h +++ b/bam.h @@ -46,7 +46,7 @@ #include #include -#if _IOLIB == 1 +#if _IOLIB == 1 && !defined(_NO_RAZF) #define BAM_TRUE_OFFSET #include "razf.h" /*! @abstract BAM file handler */ @@ -118,6 +118,10 @@ typedef struct { #define BAM_FREAD1 64 #define BAM_FREAD2 128 #define BAM_FSECONDARY 256 +#define BAM_FQCFAIL 512 +#define BAM_FDUP 1024 + +#define BAM_DEF_MASK (BAM_FUNMAP | BAM_FSECONDARY | BAM_FQCFAIL | BAM_FDUP) #define BAM_CORE_SIZE sizeof(bam1_core_t) @@ -461,6 +465,8 @@ extern "C" { /*! @abstract pileup buffer */ typedef struct __bam_plbuf_t bam_plbuf_t; + void bam_plbuf_set_mask(bam_plbuf_t *buf, int mask); + /*! @typedef @abstract Type of function to be called by bam_plbuf_push(). @param tid chromosome ID as is defined in the header @@ -516,7 +522,7 @@ extern "C" { @discussion The file position indicator must be placed right before the start of an alignment. See also bam_plbuf_push(). */ - int bam_pileup_file(bamFile fp, bam_pileup_f func, void *func_data); + int bam_pileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data); struct __bam_lplbuf_t; typedef struct __bam_lplbuf_t bam_lplbuf_t; @@ -533,7 +539,7 @@ extern "C" { int bam_lplbuf_push(const bam1_t *b, bam_lplbuf_t *buf); /*! @abstract bam_plbuf_file() equivalent with level calculated. */ - int bam_lpileup_file(bamFile fp, bam_pileup_f func, void *func_data); + int bam_lpileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data); struct __bam_index_t; typedef struct __bam_index_t bam_index_t; @@ -641,7 +647,7 @@ static inline int bam_reg2bin(uint32_t beg, uint32_t end) return 0; } -static inline void bam_copy1(bam1_t *bdst, const bam1_t *bsrc) +static inline bam1_t *bam_copy1(bam1_t *bdst, const bam1_t *bsrc) { uint8_t *data = bdst->data; int m_data = bdst->m_data; // backup data and m_data @@ -654,6 +660,18 @@ static inline void bam_copy1(bam1_t *bdst, const bam1_t *bsrc) // restore the backup bdst->m_data = m_data; bdst->data = data; + return bdst; +} + +static inline bam1_t *bam_dup1(const bam1_t *src) +{ + bam1_t *b; + b = bam_init1(); + *b = *src; + b->m_data = b->data_len; + b->data = (uint8_t*)calloc(b->data_len, 1); + memcpy(b->data, src->data, b->data_len); + return b; } #endif diff --git a/bam_import.c b/bam_import.c index 6b3b4bc..4b7bb21 100644 --- a/bam_import.c +++ b/bam_import.c @@ -245,9 +245,9 @@ int sam_read1(tamFile fp, bam_header_t *header, bam1_t *b) type = str->s[3]; s = alloc_data(b, doff + 3) + doff; s[0] = key[0]; s[1] = key[1]; s += 2; doff += 2; - if (type == 'A' || type == 'a') { + if (type == 'A' || type == 'a' || type == 'c' || type == 'C') { // c and C for backward compatibility s = alloc_data(b, doff + 2) + doff; - *s++ = type; *s = str->s[5]; + *s++ = 'A'; *s = str->s[5]; doff += 2; } else if (type == 'I' || type == 'i') { long long x; @@ -341,7 +341,7 @@ static void taf2baf_core(const char *fntaf, const char *fnbaf, bam_header_t *hea int ret; b = (bam1_t*)calloc(1, sizeof(bam1_t)); - fpbaf = bam_open(fnbaf, "w"); + fpbaf = (strcmp(fnbaf, "-") == 0)? bam_dopen(fileno(stdout), "w") : bam_open(fnbaf, "w"); fp = sam_open(fntaf); ret = sam_read1(fp, header, b); bam_header_write(fpbaf, header); diff --git a/bam_index.c b/bam_index.c index 2b01815..6bc735e 100644 --- a/bam_index.c +++ b/bam_index.c @@ -35,6 +35,7 @@ */ #define BAM_MIN_CHUNK_GAP 32768 +// 1<<14 is the size of minimum bin. #define BAM_LIDX_SHIFT 14 typedef struct { @@ -81,17 +82,21 @@ static inline void insert_offset(khash_t(i) *h, int bin, uint64_t beg, uint64_t l->list[l->n].u = beg; l->list[l->n++].v = end; } -static inline void insert_offset2(bam_lidx_t *index2, int last, int curr, uint64_t offset) +static inline void insert_offset2(bam_lidx_t *index2, bam1_t *b, uint64_t offset) { - int i; - if (index2->m < curr + 1) { - index2->m = curr + 1; + int i, beg, end; + beg = b->core.pos >> BAM_LIDX_SHIFT; + end = (bam_calend(&b->core, bam1_cigar(b)) - 1) >> BAM_LIDX_SHIFT; + if (index2->m < end + 1) { + int old_m = index2->m; + index2->m = end + 1; kroundup32(index2->m); index2->offset = (uint64_t*)realloc(index2->offset, index2->m * 8); + memset(index2->offset + old_m, 0, 8 * (index2->m - old_m)); } - if (last > curr) last = -1; - for (i = last + 1; i <= curr; ++i) index2->offset[i] = offset; - index2->n = curr + 1; + for (i = beg + 1; i <= end; ++i) + if (index2->offset[i] == 0) index2->offset[i] = offset; + index2->n = end + 1; } static void merge_chunks(bam_index_t *idx) @@ -127,7 +132,8 @@ bam_index_t *bam_index_core(bamFile fp) bam_header_t *h; int i, ret; bam_index_t *idx; - uint32_t last_coor, last_tid, last_bin, save_bin, save_tid; + uint32_t last_bin, save_bin; + int32_t last_coor, last_tid, save_tid; bam1_core_t *c; uint64_t save_off, last_off; @@ -152,14 +158,14 @@ bam_index_t *bam_index_core(bamFile fp) fprintf(stderr, "[bam_index_core] the alignment is not sorted. Abort!\n"); exit(1); } - if (last_coor>>BAM_LIDX_SHIFT != b->core.pos>>BAM_LIDX_SHIFT) // then write the linear index - insert_offset2(&idx->index2[b->core.tid], last_coor>>BAM_LIDX_SHIFT, b->core.pos>>BAM_LIDX_SHIFT, last_off); + if (b->core.bin < 4681) insert_offset2(&idx->index2[b->core.tid], b, last_off); if (c->bin != last_bin) { // then possibly write the binning index if (save_bin != 0xffffffffu) // save_bin==0xffffffffu only happens to the first record insert_offset(idx->index[save_tid], save_bin, save_off, last_off); save_off = last_off; save_bin = last_bin = c->bin; save_tid = c->tid; + if (save_tid < 0) break; } if (bam_tell(fp) <= last_off) { fprintf(stderr, "[bam_index_core] bug in BGZF/RAZF: %llx < %llx\n", @@ -169,7 +175,7 @@ bam_index_t *bam_index_core(bamFile fp) last_off = bam_tell(fp); last_coor = b->core.pos; } - insert_offset(idx->index[save_tid], save_bin, save_off, bam_tell(fp)); + if (save_tid >= 0) insert_offset(idx->index[save_tid], save_bin, save_off, bam_tell(fp)); merge_chunks(idx); if (ret < -1) fprintf(stderr, "[bam_index_core] truncated file? Continue anyway. (%d)\n", ret); free(b->data); free(b); diff --git a/bam_lpileup.c b/bam_lpileup.c index 83f91c2..3680287 100644 --- a/bam_lpileup.c +++ b/bam_lpileup.c @@ -92,7 +92,7 @@ static int tview_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *pl max_level = 0; for (i = l = 0; i < n; ++i) { const bam_pileup1_t *p = pl + i; - if (p->qpos == 0) { + if (p->is_head) { if (tv->head->next && tv->head->cnt == 0) { // then take a free slot freenode_t *p = tv->head->next; tv->cur_level[i] = tv->head->level; @@ -146,7 +146,7 @@ static int tview_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *pl // squeeze out terminated levels for (i = l = 0; i < n; ++i) { const bam_pileup1_t *p = pl + i; - if (p->qpos != p->b->core.l_qseq - 1) + if (!p->is_tail) tv->pre_level[l++] = tv->pre_level[i]; } tv->n_pre = l; @@ -180,13 +180,14 @@ int bam_lplbuf_push(const bam1_t *b, bam_lplbuf_t *tv) return bam_plbuf_push(b, tv->plbuf); } -int bam_lpileup_file(bamFile fp, bam_pileup_f func, void *func_data) +int bam_lpileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data) { bam_lplbuf_t *buf; int ret; bam1_t *b; b = (bam1_t*)calloc(1, sizeof(bam1_t)); buf = bam_lplbuf_init(func, func_data); + bam_plbuf_set_mask(buf->plbuf, mask); while ((ret = bam_read1(fp, b)) >= 0) bam_lplbuf_push(b, buf); bam_lplbuf_push(0, buf); diff --git a/bam_maqcns.c b/bam_maqcns.c index 65ed64c..3c3d818 100644 --- a/bam_maqcns.c +++ b/bam_maqcns.c @@ -262,6 +262,9 @@ uint32_t bam_maqcns_call(int n, const bam_pileup1_t *pl, bam_maqcns_t *bm) bam_maqindel_opt_t *bam_maqindel_opt_init() { bam_maqindel_opt_t *mi = (bam_maqindel_opt_t*)calloc(1, sizeof(bam_maqindel_opt_t)); + mi->q_indel = 40; + mi->r_indel = 0.00015; + // mi->mm_penalty = 3; mi->indel_err = 4; mi->ambi_thres = 10; @@ -271,7 +274,7 @@ bam_maqindel_opt_t *bam_maqindel_opt_init() void bam_maqindel_ret_destroy(bam_maqindel_ret_t *mir) { if (mir == 0) return; - free(mir->s1); free(mir->s2); free(mir); + free(mir->s[0]); free(mir->s[1]); free(mir); } #define MINUS_CONST 0x10000000 @@ -323,7 +326,7 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c } { // the core part char *ref2, *inscns = 0; - int k, l, *score, max_ins = types[n_types-1]; + int k, l, *score, *pscore, max_ins = types[n_types-1]; ref2 = (char*)calloc(right - left + types[n_types-1] + 2, 1); if (max_ins > 0) { // get the consensus of inserted sequences int *inscns_aux = (int*)calloc(4 * n_types * max_ins, sizeof(int)); @@ -340,7 +343,7 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c } } } - // construct the consensus + // construct the consensus of inserted sequence inscns = (char*)calloc(n_types * max_ins, sizeof(char)); for (i = 0; i < n_types; ++i) { for (j = 0; j < types[i]; ++j) { @@ -358,6 +361,7 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c } // calculate score score = (int*)calloc(n_types * n, sizeof(int)); + pscore = (int*)calloc(n_types * n, sizeof(int)); for (i = 0; i < n_types; ++i) { // write ref2 for (k = 0, j = left; j <= pos; ++j) @@ -372,27 +376,32 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c const bam_pileup1_t *p = pl + j; uint32_t *cigar; bam1_core_t *c = &p->b->core; - int s; + int s, ps; bam_segreg_t seg; if (c->flag&BAM_FUNMAP) continue; cigar = bam1_cigar(p->b); bam_segreg(pos, c, cigar, &seg); - for (s = 0, l = seg.qbeg; c->pos + l < right && l < seg.qend; ++l) { + for (ps = s = 0, l = seg.qbeg; c->pos + l < right && l < seg.qend; ++l) { int cq = bam1_seqi(bam1_seq(p->b), l), ct; ct = c->pos + l >= left? ref2[c->pos + l - left] : 15; // "<" should not happen if there is no bug - if (cq < 15 && ct < 15) + if (cq < 15 && ct < 15) { s += cq == ct? 1 : -mi->mm_penalty; + if (cq != ct) ps += bam1_qual(p->b)[l]; + } } - score[i*n + j] = s; + score[i*n + j] = s; pscore[i*n + j] = ps; if (types[i] != 0) { // then try the other way to calculate the score - for (s = 0, l = seg.qbeg; c->pos + l + types[i] < right && l < seg.qend; ++l) { + for (ps = s = 0, l = seg.qbeg; c->pos + l + types[i] < right && l < seg.qend; ++l) { int cq = bam1_seqi(bam1_seq(p->b), l), ct; ct = c->pos + l + types[i] >= left? ref2[c->pos + l + types[i] - left] : 15; - if (cq < 15 && ct < 15) + if (cq < 15 && ct < 15) { s += cq == ct? 1 : -mi->mm_penalty; + if (cq != ct) ps += bam1_qual(p->b)[l]; + } } } if (score[i*n+j] < s) score[i*n+j] = s; // choose the higher of the two scores + if (pscore[i*n+j] > ps) pscore[i*n+j] = ps; if (types[i] != 0) score[i*n+j] -= mi->indel_err; //printf("%d, %d, %d, %d\n", i, types[i], j, score[i*n+j]); } @@ -403,7 +412,7 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c sum = (int*)calloc(n_types, sizeof(int)); for (i = 0; i < n_types; ++i) for (j = 0; j < n; ++j) - sum[i] += score[i*n+j]; + sum[i] += -pscore[i*n+j]; max1 = max2 = -0x7fffffff; max1_i = max2_i = -1; for (i = 0; i < n_types; ++i) { if (sum[i] > max1) { @@ -416,26 +425,28 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c // write ret ret = (bam_maqindel_ret_t*)calloc(1, sizeof(bam_maqindel_ret_t)); ret->indel1 = types[max1_i]; ret->indel2 = types[max2_i]; - ret->s1 = (char*)calloc(abs(ret->indel1) + 2, 1); - ret->s2 = (char*)calloc(abs(ret->indel2) + 2, 1); + ret->s[0] = (char*)calloc(abs(ret->indel1) + 2, 1); + ret->s[1] = (char*)calloc(abs(ret->indel2) + 2, 1); + // write indel sequence if (ret->indel1 > 0) { - ret->s1[0] = '+'; + ret->s[0][0] = '+'; for (k = 0; k < ret->indel1; ++k) - ret->s1[k+1] = bam_nt16_rev_table[(int)inscns[max1_i*max_ins + k]]; + ret->s[0][k+1] = bam_nt16_rev_table[(int)inscns[max1_i*max_ins + k]]; } else if (ret->indel1 < 0) { - ret->s1[0] = '-'; + ret->s[0][0] = '-'; for (k = 0; k < -ret->indel1 && ref[pos + k + 1]; ++k) - ret->s1[k+1] = ref[pos + k + 1]; - } else ret->s1[0] = '*'; + ret->s[0][k+1] = ref[pos + k + 1]; + } else ret->s[0][0] = '*'; if (ret->indel2 > 0) { - ret->s2[0] = '+'; + ret->s[1][0] = '+'; for (k = 0; k < ret->indel2; ++k) - ret->s2[k+1] = bam_nt16_rev_table[(int)inscns[max2_i*max_ins + k]]; + ret->s[1][k+1] = bam_nt16_rev_table[(int)inscns[max2_i*max_ins + k]]; } else if (ret->indel2 < 0) { - ret->s2[0] = '-'; + ret->s[1][0] = '-'; for (k = 0; k < -ret->indel2 && ref[pos + k + 1]; ++k) - ret->s2[k+1] = ref[pos + k + 1]; - } else ret->s2[0] = '*'; + ret->s[1][k+1] = ref[pos + k + 1]; + } else ret->s[1][0] = '*'; + // write count for (j = 0; j < n; ++j) { if (score[max1_i*n+j] < 0 && score[max2_i*n+j] < 0) ++ret->cnt_anti; else { @@ -445,8 +456,34 @@ bam_maqindel_ret_t *bam_maqindel(int n, int pos, const bam_maqindel_opt_t *mi, c else ++ret->cnt_ambi; } } + // write gl[] + ret->gl[0] = ret->gl[1] = 0; + for (j = 0; j < n; ++j) { + int s1 = pscore[max1_i*n + j], s2 = pscore[max2_i*n + j]; + ret->gl[0] += s1 < s2? 0 : s1 - s2 < mi->q_indel? s1 - s2 : mi->q_indel; + ret->gl[1] += s2 < s1? 0 : s2 - s1 < mi->q_indel? s2 - s1 : mi->q_indel; + } + } + free(score); free(pscore); free(ref2); free(inscns); + } + { // call genotype + int q[3], qr_indel = (int)(-4.343 * log(mi->r_indel) + 0.5); + int min1, min2, min1_i; + q[0] = ret->gl[0] + (ret->s[0][0] != '*'? 0 : 0) * qr_indel; + q[1] = ret->gl[1] + (ret->s[1][0] != '*'? 0 : 0) * qr_indel; + q[2] = n * 3 + (ret->s[0][0] == '*' || ret->s[1][0] == '*'? 1 : 1) * qr_indel; + min1 = min2 = 0x7fffffff; min1_i = -1; + for (i = 0; i < 3; ++i) { + if (q[i] < min1) { + min2 = min1; min1 = q[i]; min1_i = i; + } else if (q[i] < min2) min2 = q[i]; } - free(score); free(ref2); free(inscns); + ret->gt = min1_i; + ret->q_cns = min2 - min1; + // set q_ref + if (ret->gt < 2) ret->q_ref = (ret->s[ret->gt][0] == '*')? 0 : q[1-ret->gt] - q[ret->gt] - qr_indel - 3; + else ret->q_ref = (ret->s[0][0] == '*')? q[0] - q[2] : q[1] - q[2]; + if (ret->q_ref < 0) ret->q_ref = 0; } free(types); return ret; diff --git a/bam_maqcns.h b/bam_maqcns.h index 5d410ef..2c94fec 100644 --- a/bam_maqcns.h +++ b/bam_maqcns.h @@ -16,13 +16,19 @@ typedef struct { } bam_maqcns_t; typedef struct { + int q_indel; + float r_indel; + // hidden parameters, unchangeable from command line int mm_penalty, indel_err, ambi_thres; } bam_maqindel_opt_t; typedef struct { int indel1, indel2; int cnt1, cnt2, cnt_ambi, cnt_anti; - char *s1, *s2; + char *s[2]; + // + int gt, gl[2]; + int q_cns, q_ref; } bam_maqindel_ret_t; #ifdef __cplusplus diff --git a/bam_mate.c b/bam_mate.c new file mode 100644 index 0000000..bb53605 --- /dev/null +++ b/bam_mate.c @@ -0,0 +1,68 @@ +#include +#include +#include "bam.h" + +// currently, this function ONLY works if each read has one hit +void bam_mating_core(bamFile in, bamFile out) +{ + bam_header_t *header; + bam1_t *b[2]; + int curr, has_prev; + + header = bam_header_read(in); + bam_header_write(out, header); + + b[0] = bam_init1(); + b[1] = bam_init1(); + curr = 0; has_prev = 0; + while (bam_read1(in, b[curr]) >= 0) { + bam1_t *cur = b[curr], *pre = b[1-curr]; + if (has_prev) { + if (strcmp(bam1_qname(cur), bam1_qname(pre)) == 0) { // identical pair name + cur->core.mtid = pre->core.tid; cur->core.mpos = pre->core.pos; + pre->core.mtid = cur->core.tid; pre->core.mpos = cur->core.pos; + if (pre->core.tid == cur->core.tid && !(cur->core.flag&(BAM_FUNMAP|BAM_FMUNMAP)) + && !(pre->core.flag&(BAM_FUNMAP|BAM_FMUNMAP))) + { + uint32_t cur5, pre5; + cur5 = (cur->core.flag&BAM_FREVERSE)? bam_calend(&cur->core, bam1_cigar(cur)) : cur->core.pos; + pre5 = (pre->core.flag&BAM_FREVERSE)? bam_calend(&pre->core, bam1_cigar(pre)) : pre->core.pos; + cur->core.isize = pre5 - cur5; pre->core.isize = cur5 - pre5; + } else cur->core.isize = pre->core.isize = 0; + if (pre->core.flag&BAM_FREVERSE) cur->core.flag |= BAM_FREVERSE; + else cur->core.flag &= ~BAM_FMREVERSE; + if (cur->core.flag&BAM_FREVERSE) pre->core.flag |= BAM_FREVERSE; + else pre->core.flag &= ~BAM_FMREVERSE; + if (cur->core.flag & BAM_FUNMAP) { pre->core.flag |= BAM_FMUNMAP; pre->core.flag &= ~BAM_FPROPER_PAIR; } + if (pre->core.flag & BAM_FUNMAP) { cur->core.flag |= BAM_FMUNMAP; cur->core.flag &= ~BAM_FPROPER_PAIR; } + bam_write1(out, pre); + bam_write1(out, cur); + has_prev = 0; + } else { // unpaired or singleton + pre->core.mtid = -1; pre->core.mpos = -1; pre->core.isize = 0; + pre->core.flag |= BAM_FMUNMAP; + pre->core.flag &= ~BAM_FMREVERSE & ~BAM_FPROPER_PAIR; + bam_write1(out, pre); + } + } else has_prev = 1; + curr = 1 - curr; + } + if (has_prev) bam_write1(out, b[1-curr]); + bam_header_destroy(header); + bam_destroy1(b[0]); + bam_destroy1(b[1]); +} + +int bam_mating(int argc, char *argv[]) +{ + bamFile in, out; + if (argc < 3) { + fprintf(stderr, "samtools fixmate \n"); + return 1; + } + in = (strcmp(argv[1], "-") == 0)? bam_dopen(fileno(stdin), "r") : bam_open(argv[1], "r"); + out = (strcmp(argv[2], "-") == 0)? bam_dopen(fileno(stdout), "w") : bam_open(argv[2], "w"); + bam_mating_core(in, out); + bam_close(in); bam_close(out); + return 0; +} diff --git a/bam_pileup.c b/bam_pileup.c index d01f9a3..6a57831 100644 --- a/bam_pileup.c +++ b/bam_pileup.c @@ -111,6 +111,7 @@ struct __bam_plbuf_t { int32_t tid, pos, max_tid, max_pos; int max_pu, is_eof; bam_pileup1_t *pu; + int flag_mask; }; void bam_plbuf_reset(bam_plbuf_t *buf) @@ -127,6 +128,12 @@ void bam_plbuf_reset(bam_plbuf_t *buf) buf->head = buf->tail; } +void bam_plbuf_set_mask(bam_plbuf_t *buf, int mask) +{ + if (mask < 0) buf->flag_mask = BAM_DEF_MASK; + else buf->flag_mask = BAM_FUNMAP | mask; +} + bam_plbuf_t *bam_plbuf_init(bam_pileup_f func, void *data) { bam_plbuf_t *buf; @@ -136,6 +143,7 @@ bam_plbuf_t *bam_plbuf_init(bam_pileup_f func, void *data) buf->head = buf->tail = mp_alloc(buf->mp); buf->dummy = mp_alloc(buf->mp); buf->max_tid = buf->max_pos = -1; + buf->flag_mask = BAM_DEF_MASK; return buf; } @@ -153,6 +161,7 @@ void bam_plbuf_destroy(bam_plbuf_t *buf) int bam_plbuf_push(const bam1_t *b, bam_plbuf_t *buf) { if (b) { // fill buffer + if (b->core.flag & buf->flag_mask) return 0; bam_copy1(&buf->tail->b, b); buf->tail->beg = b->core.pos; buf->tail->end = bam_calend(&b->core, bam1_cigar(b)); if (!(b->core.tid >= buf->max_tid || (b->core.tid == buf->max_tid && buf->tail->beg >= buf->max_pos))) { @@ -197,13 +206,14 @@ int bam_plbuf_push(const bam1_t *b, bam_plbuf_t *buf) return 0; } -int bam_pileup_file(bamFile fp, bam_pileup_f func, void *func_data) +int bam_pileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data) { bam_plbuf_t *buf; int ret; bam1_t *b; b = (bam1_t*)calloc(1, sizeof(bam1_t)); buf = bam_plbuf_init(func, func_data); + bam_plbuf_set_mask(buf, mask); while ((ret = bam_read1(fp, b)) >= 0) bam_plbuf_push(b, buf); bam_plbuf_push(0, buf); diff --git a/bam_plcmd.c b/bam_plcmd.c index 0140c66..dbfc295 100644 --- a/bam_plcmd.c +++ b/bam_plcmd.c @@ -5,10 +5,13 @@ #include "faidx.h" #include "bam_maqcns.h" #include "khash.h" +#include "glf.h" KHASH_SET_INIT_INT64(64) -#define BAM_PLF_SIMPLE 0x01 -#define BAM_PLF_CNS 0x02 +#define BAM_PLF_SIMPLE 0x01 +#define BAM_PLF_CNS 0x02 +#define BAM_PLF_INDEL_ONLY 0x04 +#define BAM_PLF_GLF 0x08 typedef struct { bam_header_t *h; @@ -18,7 +21,9 @@ typedef struct { khash_t(64) *hash; uint32_t format; int tid, len; + int mask; char *ref; + glfFile fp; // for glf output only } pu_data_t; char **bam_load_pos(const char *fn, int *_n); @@ -46,6 +51,61 @@ static khash_t(64) *load_pos(const char *fn, bam_header_t *h) return hash; } +// an analogy to pileup_func() below +static int glt_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *pu, void *data) +{ + pu_data_t *d = (pu_data_t*)data; + bam_maqindel_ret_t *r = 0; + int rb; + glf1_t *g; + glf2_t g2; + if (d->fai == 0) { + fprintf(stderr, "[glt_func] reference sequence is required for generating GLT. Abort!\n"); + exit(1); + } + if (d->hash && kh_get(64, d->hash, (uint64_t)tid<<32|pos) == kh_end(d->hash)) return 0; + if (d->fai && (int)tid != d->tid) { + if (d->ref) { // then write the end mark + memset(&g2, 0, sizeof(glf2_t)); + g2.type = GLF_TYPE_END; + bgzf_write(d->fp, &g2, sizeof(glf2_t)); + } + glf_ref_write(d->fp, d->h->target_name[tid]); // write reference + free(d->ref); + d->ref = fai_fetch(d->fai, d->h->target_name[tid], &d->len); + d->tid = tid; + } + rb = (d->ref && (int)pos < d->len)? d->ref[pos] : 'N'; + g = bam_maqcns_glfgen(n, pu, bam_nt16_table[rb], d->c); + memcpy(&g2, g, sizeof(glf1_t)); + g2.type = GLF_TYPE_NORMAL; + g2.pos = pos; + bgzf_write(d->fp, &g2, sizeof(glf2_t)); + r = bam_maqindel(n, pos, d->ido, pu, d->ref); + if (r) { // then write indel line + int g3 = 3 * n, min; + min = g3; + if (min > r->gl[0]) min = r->gl[0]; + if (min > r->gl[1]) min = r->gl[1]; + g3 -= min; + g2.ref_base = 0; + g2.type = GLF_TYPE_INDEL; + memset(g2.lk, 0, 10); + g2.lk[0] = r->gl[0] < 255? r->gl[0] : 255; + g2.lk[1] = r->gl[1] < 255? r->gl[1] : 255; + g2.lk[2] = g3 < 255? g3 : 255; + *(int16_t*)(g2.lk + 3) = (int16_t)r->indel1; + *(int16_t*)(g2.lk + 5) = (int16_t)r->indel2; + g2.min_lk = min < 255? min : 255; + bgzf_write(d->fp, &g2, sizeof(glf2_t)); + if (r->indel1) bgzf_write(d->fp, r->s[0]+1, r->indel1>0? r->indel1 : -r->indel1); + if (r->indel2) bgzf_write(d->fp, r->s[1]+1, r->indel2>0? r->indel2 : -r->indel2); + bam_maqindel_ret_destroy(r); + } + free(g); + return 0; +} + static int pileup_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *pu, void *data) { pu_data_t *d = (pu_data_t*)data; @@ -53,12 +113,18 @@ static int pileup_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *p int i, j, rb; uint32_t x; if (d->hash && kh_get(64, d->hash, (uint64_t)tid<<32|pos) == kh_end(d->hash)) return 0; + if (d->format & BAM_PLF_GLF) return glt_func(tid, pos, n, pu, data); if (d->fai && (int)tid != d->tid) { free(d->ref); d->ref = fai_fetch(d->fai, d->h->target_name[tid], &d->len); d->tid = tid; } rb = (d->ref && (int)pos < d->len)? d->ref[pos] : 'N'; + if (d->format & BAM_PLF_INDEL_ONLY) { + for (i = 0; i < n; ++i) + if (pu[i].indel != 0) break; + if (i == n) return 0; + } printf("%s\t%d\t%c\t", d->h->target_name[tid], pos + 1, rb); if (d->format & BAM_PLF_CNS) { // consensus int ref_q, rb4 = bam_nt16_table[rb]; @@ -69,6 +135,8 @@ static int pileup_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *p if (ref_q > 255) ref_q = 255; } printf("%c\t%d\t%d\t%d\t", bam_nt16_rev_table[x>>28], x>>8&0xff, ref_q, x>>16&0xff); + } + if (d->format & (BAM_PLF_CNS|BAM_PLF_INDEL_ONLY)) { if (d->ref) // indel calling r = bam_maqindel(n, pos, d->ido, pu, d->ref); } @@ -115,7 +183,12 @@ static int pileup_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *p } putchar('\n'); if (r) { // then print indel line - printf("%s\t%d\t*\t%s/%s\t", d->h->target_name[tid], pos + 1, r->s1, r->s2); + printf("%s\t%d\t*\t", d->h->target_name[tid], pos + 1); + if (r->gt < 2) printf("%s/%s\t", r->s[r->gt], r->s[r->gt]); + else printf("%s/%s\t", r->s[0], r->s[1]); + printf("%d\t%d\t", r->q_cns, r->q_ref); + printf("%s\t%s\t", r->s[0], r->s[1]); + //printf("%d\t%d\t", r->gl[0], r->gl[1]); printf("%d\t%d\t%d\t%d\n", r->cnt1, r->cnt2, r->cnt_ambi, r->cnt_anti); bam_maqindel_ret_destroy(r); } @@ -127,9 +200,10 @@ int bam_pileup(int argc, char *argv[]) int c; char *fn_list = 0, *fn_fa = 0, *fn_pos = 0; pu_data_t *d = (pu_data_t*)calloc(1, sizeof(pu_data_t)); - d->tid = -1; + d->tid = -1; d->mask = BAM_DEF_MASK; d->c = bam_maqcns_init(); - while ((c = getopt(argc, argv, "st:f:cT:N:r:l:")) >= 0) { + d->ido = bam_maqindel_opt_init(); + while ((c = getopt(argc, argv, "st:f:cT:N:r:l:im:gI:G:")) >= 0) { switch (c) { case 's': d->format |= BAM_PLF_SIMPLE; break; case 't': fn_list = strdup(optarg); break; @@ -139,6 +213,11 @@ int bam_pileup(int argc, char *argv[]) case 'N': d->c->n_hap = atoi(optarg); break; case 'r': d->c->het_rate = atoi(optarg); break; case 'c': d->format |= BAM_PLF_CNS; break; + case 'i': d->format |= BAM_PLF_INDEL_ONLY; break; + case 'm': d->mask = atoi(optarg); break; + case 'g': d->format |= BAM_PLF_GLF; break; + case 'I': d->ido->q_indel = atoi(optarg); break; + case 'G': d->ido->r_indel = atof(optarg); break; default: fprintf(stderr, "Unrecognizd option '-%c'.\n", c); return 1; } } @@ -146,26 +225,38 @@ int bam_pileup(int argc, char *argv[]) fprintf(stderr, "\n"); fprintf(stderr, "Usage: bamtk pileup [options] |\n\n"); fprintf(stderr, "Option: -s simple (yet incomplete) pileup format\n"); + fprintf(stderr, " -i only show lines/consensus with indels\n"); + fprintf(stderr, " -m INT filtering reads with bits in INT [%d]\n", d->mask); fprintf(stderr, " -t FILE list of reference sequences (assume the input is in SAM)\n"); fprintf(stderr, " -l FILE list of sites at which pileup is output\n"); fprintf(stderr, " -f FILE reference sequence in the FASTA format\n\n"); fprintf(stderr, " -c output the maq consensus sequence\n"); - fprintf(stderr, " -T FLOAT theta in maq consensus calling model (for -c only) [%f]\n", d->c->theta); - fprintf(stderr, " -N INT number of haplotypes in the sample (for -c only) [%d]\n", d->c->n_hap); - fprintf(stderr, " -r FLOAT prior of a difference between any two haplotypes (for -c only) [%f]\n\n", - d->c->het_rate); + fprintf(stderr, " -g output in the extended GLT format (suppressing -c/-i/-s)\n"); + fprintf(stderr, " -T FLOAT theta in maq consensus calling model (for -c/-g) [%f]\n", d->c->theta); + fprintf(stderr, " -N INT number of haplotypes in the sample (for -c/-g) [%d]\n", d->c->n_hap); + fprintf(stderr, " -r FLOAT prior of a difference between two haplotypes (for -c/-g) [%f]\n", d->c->het_rate); + fprintf(stderr, " -G FLOAT prior of an indel between two haplotypes (for -c/-g) [%f]\n", d->ido->r_indel); + fprintf(stderr, " -I INT phred prob. of an indel in sequencing/prep. (for -c/-g) [%d]\n", d->ido->q_indel); + fprintf(stderr, "\n"); free(fn_list); free(fn_fa); free(d); return 1; } if (fn_fa) d->fai = fai_load(fn_fa); free(fn_fa); bam_maqcns_prepare(d->c); - d->ido = bam_maqindel_opt_init(); + if (d->format & BAM_PLF_GLF) { + glf_header_t *h; + h = glf_header_init(); + d->fp = bgzf_fdopen(fileno(stdout), "w"); + glf_header_write(d->fp, h); + glf_header_destroy(h); + } if (fn_list) { tamFile fp; bam1_t *b; int ret; bam_plbuf_t *buf = bam_plbuf_init(pileup_func, d); + bam_plbuf_set_mask(buf, d->mask); d->h = sam_header_read2(fn_list); if (fn_pos) d->hash = load_pos(fn_pos, d->h); fp = sam_open(argv[optind]); @@ -181,9 +272,10 @@ int bam_pileup(int argc, char *argv[]) fp = (strcmp(argv[optind], "-") == 0)? bam_dopen(fileno(stdin), "r") : bam_open(argv[optind], "r"); d->h = bam_header_read(fp); if (fn_pos) d->hash = load_pos(fn_pos, d->h); - bam_pileup_file(fp, pileup_func, d); + bam_pileup_file(fp, d->mask, pileup_func, d); bam_close(fp); } + if (d->format & BAM_PLF_GLF) bgzf_close(d->fp); free(fn_pos); free(fn_list); kh_destroy(64, d->hash); bam_header_destroy(d->h); diff --git a/bam_rmdup.c b/bam_rmdup.c new file mode 100644 index 0000000..321938f --- /dev/null +++ b/bam_rmdup.c @@ -0,0 +1,140 @@ +#include +#include +#include +#include +#include +#include "bam.h" + +typedef bam1_t *bam1_p; +#include "khash.h" +KHASH_SET_INIT_STR(name) +KHASH_MAP_INIT_INT64(pos, bam1_p) + +#define BUFFER_SIZE 0x40000 + +typedef struct { + int n, max; + bam1_t **a; +} tmp_stack_t; + +static inline void stack_insert(tmp_stack_t *stack, bam1_t *b) +{ + if (stack->n == stack->max) { + stack->max = stack->max? stack->max<<1 : 0x10000; + stack->a = (bam1_t**)realloc(stack->a, sizeof(bam1_t*) * stack->max); + } + stack->a[stack->n++] = b; +} + +static inline void dump_best(tmp_stack_t *stack, khash_t(pos) *best_hash, bamFile out) +{ + int i; + for (i = 0; i != stack->n; ++i) { + bam_write1(out, stack->a[i]); + bam_destroy1(stack->a[i]); + } + stack->n = 0; + if (kh_size(best_hash) > BUFFER_SIZE) kh_clear(pos, best_hash); +} + +static void clear_del_set(khash_t(name) *del_set) +{ + khint_t k; + for (k = kh_begin(del_set); k < kh_end(del_set); ++k) + if (kh_exist(del_set, k)) + free((char*)kh_key(del_set, k)); + kh_clear(name, del_set); +} + +void bam_rmdup_core(bamFile in, bamFile out) +{ + bam_header_t *header; + bam1_t *b; + int last_tid = -1, last_pos = -1; + uint64_t n_checked = 0, n_removed = 0; + tmp_stack_t stack; + khint_t k; + khash_t(pos) *best_hash; + khash_t(name) *del_set; + + best_hash = kh_init(pos); + del_set = kh_init(name); + b = bam_init1(); + memset(&stack, 0, sizeof(tmp_stack_t)); + header = bam_header_read(in); + bam_header_write(out, header); + + kh_resize(name, del_set, 4 * BUFFER_SIZE); + kh_resize(pos, best_hash, 3 * BUFFER_SIZE); + while (bam_read1(in, b) >= 0) { + bam1_core_t *c = &b->core; + if (c->tid != last_tid || last_pos != c->pos) { + dump_best(&stack, best_hash, out); // write the result + if (c->tid != last_tid) { + kh_clear(pos, best_hash); + if (kh_size(del_set)) { // check + fprintf(stderr, "[bam_rmdup_core] %llu unmatched pairs\n", (long long)kh_size(del_set)); + clear_del_set(del_set); + } + last_tid = c->tid; + fprintf(stderr, "[bam_rmdup_core] processing reference %s...\n", header->target_name[c->tid]); + } + } + if (!(c->flag&BAM_FPAIRED) || (c->flag&(BAM_FUNMAP|BAM_FMUNMAP)) || (c->mtid >= 0 && c->tid != c->mtid)) { + bam_write1(out, b); + } else if (c->isize > 0) { // paired, head + uint64_t key = (uint64_t)c->pos<<32 | c->isize; + int ret; + ++n_checked; + k = kh_put(pos, best_hash, key, &ret); + if (ret == 0) { // found in best_hash + bam1_t *p = kh_val(best_hash, k); + ++n_removed; + if (p->core.qual < c->qual) { // the current alignment is better + kh_put(name, del_set, strdup(bam1_qname(p)), &ret); // p will be removed + bam_copy1(p, b); // replaced as b + } else kh_put(name, del_set, strdup(bam1_qname(b)), &ret); // b will be removed + if (ret == 0) + fprintf(stderr, "[bam_rmdup_core] inconsistent BAM file for pair '%s'. Continue anyway.\n", bam1_qname(b)); + } else { // not found in best_hash + kh_val(best_hash, k) = bam_dup1(b); + stack_insert(&stack, kh_val(best_hash, k)); + } + } else { // paired, tail + k = kh_get(name, del_set, bam1_qname(b)); + if (k != kh_end(del_set)) { + free((char*)kh_key(del_set, k)); + kh_del(name, del_set, k); + } else bam_write1(out, b); + } + last_pos = c->pos; + } + dump_best(&stack, best_hash, out); + + bam_header_destroy(header); + clear_del_set(del_set); + kh_destroy(name, del_set); + kh_destroy(pos, best_hash); + free(stack.a); + bam_destroy1(b); + fprintf(stderr, "[bam_rmdup_core] %lld / %lld = %.4lf\n", (long long)n_removed, (long long)n_checked, + (double)n_removed/n_checked); +} +int bam_rmdup(int argc, char *argv[]) +{ + bamFile in, out; + if (argc < 3) { + fprintf(stderr, "Usage: samtools rmdup \n"); + return 1; + } + in = (strcmp(argv[1], "-") == 0)? bam_dopen(fileno(stdin), "r") : bam_open(argv[1], "r"); + out = (strcmp(argv[2], "-") == 0)? bam_dopen(fileno(stdout), "w") : bam_open(argv[2], "w"); + if (in == 0 || out == 0) { + fprintf(stderr, "[bam_rmdup] fail to read/write input files\n"); + return 1; + } + bam_rmdup_core(in, out); + bam_close(in); + bam_close(out); + return 0; +} diff --git a/bam_sort.c b/bam_sort.c index c5ed583..68d15dc 100644 --- a/bam_sort.c +++ b/bam_sort.c @@ -191,7 +191,7 @@ void bam_sort_core(int is_by_qname, const char *fn, const char *prefix, size_t m fns[i] = (char*)calloc(strlen(prefix) + 20, 1); sprintf(fns[i], "%s.%.4d.bam", prefix, i); } - bam_merge_core(0, fnout, n, fns); + bam_merge_core(is_by_qname, fnout, n, fns); free(fnout); for (i = 0; i < n; ++i) { unlink(fns[i]); diff --git a/bamtk.c b/bamtk.c index 54ef455..ffd2e48 100644 --- a/bamtk.c +++ b/bamtk.c @@ -3,7 +3,7 @@ #include "bam.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.1.1" +#define PACKAGE_VERSION "0.1.1-18" #endif int bam_taf2baf(int argc, char *argv[]); @@ -12,7 +12,11 @@ int bam_merge(int argc, char *argv[]); int bam_index(int argc, char *argv[]); int bam_sort(int argc, char *argv[]); int bam_tview_main(int argc, char *argv[]); +int bam_mating(int argc, char *argv[]); +int bam_rmdup(int argc, char *argv[]); + int faidx_main(int argc, char *argv[]); +int glf_view_main(int argc, char *argv[]); static int view_aux(const bam1_t *b, void *data) { @@ -87,6 +91,9 @@ static int usage() fprintf(stderr, " tview text alignment viewer\n"); #endif fprintf(stderr, " index index alignment\n"); + fprintf(stderr, " fixmate fix mate information\n"); + fprintf(stderr, " rmdup remove PCR duplicates\n"); + fprintf(stderr, " glfview print GLFv2 file\n"); fprintf(stderr, "\n"); return 1; } @@ -101,6 +108,9 @@ int main(int argc, char *argv[]) else if (strcmp(argv[1], "sort") == 0) return bam_sort(argc-1, argv+1); else if (strcmp(argv[1], "index") == 0) return bam_index(argc-1, argv+1); else if (strcmp(argv[1], "faidx") == 0) return faidx_main(argc-1, argv+1); + else if (strcmp(argv[1], "fixmate") == 0) return bam_mating(argc-1, argv+1); + else if (strcmp(argv[1], "rmdup") == 0) return bam_rmdup(argc-1, argv+1); + else if (strcmp(argv[1], "glfview") == 0) return glf_view_main(argc-1, argv+1); #ifndef _NO_CURSES else if (strcmp(argv[1], "tview") == 0) return bam_tview_main(argc-1, argv+1); #endif diff --git a/bgzf.h b/bgzf.h index 4ed5c29..7e76bcb 100644 --- a/bgzf.h +++ b/bgzf.h @@ -9,7 +9,7 @@ * or functionality. */ -#ifndef __BCGZ_H +#ifndef __BGZF_H #define __BGZF_H #include diff --git a/examples/00README.txt b/examples/00README.txt index 5dd123c..dbb276f 100644 --- a/examples/00README.txt +++ b/examples/00README.txt @@ -1,28 +1,23 @@ -NA18507_part.fa contains two sequences cut from the human genome +File ex1.fa contains two sequences cut from the human genome build36. They were exatracted with command: samtools faidx human_b36.fa 2:2043966-2045540 20:67967-69550 -Sequence names were changed manually for simplicity. ex1.fa.fai is the -index for the sequence file, generated by: - - samtools faidx ex1.fa - -This index file also works as the reference list file used by `import' -and `pileup' commands of samtools. ex1.sam.gz contains MAQ alignments -exatracted with: +Sequence names were changed manually for simplicity. File ex1.sam.gz +contains MAQ alignments exatracted with: (samtools view NA18507_maq.bam 2:2044001-2045500; samtools view NA18507_maq.bam 20:68001-69500) -and processed with an awk command to make everything consistent as a +and processed with `samtools fixmate' to make it self-consistent as a standalone alignment. To try samtools, you may run the following commands: - samtools import ex1.fa.fai ex1.sam.gz ex1.bam - samtools index ex1.bam - samtools tview ex1.bam ex1.fa - samtools pileup -cf ex1.fa ex1.bam + samtools faidx ex1.fa # index the reference FASTA + samtools import ex1.fa.fai ex1.sam.gz ex1.bam # SAM->BAM + samtools index ex1.bam # index BAM + samtools tview ex1.bam ex1.fa # view alignment + samtools pileup -cf ex1.fa ex1.bam # pileup and consensus samtools pileup -cf ex1.fa -t ex1.fa.fai ex1.sam.gz diff --git a/examples/Makefile b/examples/Makefile new file mode 100644 index 0000000..b6908fa --- /dev/null +++ b/examples/Makefile @@ -0,0 +1,21 @@ +all:../samtools ex1.glf ex1.pileup.gz ex1.bam.bai ex1.glfview.gz + @echo; echo \# You can now launch the viewer with: \'samtools tview ex1.bam ex1.fa\'; echo; + +ex1.fa.fai:ex1.fa + ../samtools faidx ex1.fa +ex1.bam:ex1.sam.gz ex1.fa.fai + ../samtools import ex1.fa.fai ex1.sam.gz ex1.bam +ex1.bam.bai:ex1.bam + ../samtools index ex1.bam +ex1.pileup.gz:ex1.bam ex1.fa + ../samtools pileup -cf ex1.fa ex1.bam | gzip > ex1.pileup.gz +ex1.glf:ex1.bam ex1.fa + ../samtools pileup -gf ex1.fa ex1.bam > ex1.glf +ex1.glfview.gz:ex1.glf + ../samtools glfview ex1.glf | gzip > ex1.glfview.gz + +../samtools: + (cd ..; make samtools) + +clean: + rm -f *.bam *.bai *.glf* *.fai *.pileup* *~ \ No newline at end of file diff --git a/examples/ex1.fa.fai b/examples/ex1.fa.fai deleted file mode 100644 index bac151a..0000000 --- a/examples/ex1.fa.fai +++ /dev/null @@ -1,2 +0,0 @@ -seq1 1575 6 60 61 -seq2 1584 1614 60 61 diff --git a/examples/ex1.sam.gz b/examples/ex1.sam.gz index 1a213d15ff9b6c79cec4b497021a9cbdf83ae88c..26c06a6135996e082ed71c4c25367817181db705 100644 GIT binary patch literal 113928 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

Y}+V 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%0DX;;5@kp=HO3DVM zD|CzQ<{XkdLIq5AU;2;n*E_xR*ZX*we#hn(o0idH=#g~dP9a*5_xt_D{{Da5>GOK` zpV!y>>&0~BCwEsqq0N1o^!qgN z#8FMEon*}fJUM%B21}g;y)_8=CGJ>yG|^tcS<*@Qr%J1X%araXhifNyO%bGh!lj-E zh@%s#{3Y}Vt%xL;NMPIDIf!t*;~=O-%hp!`CEe#VAYgsW59G1$;R*U!%y94XejBU$ z#WP>~Ok#(bMDSvC;oj`nor(FH0@ANXBB5#`%TPUeTltR9*N|*w0j0g#qvf7+QSjBm zUq)wfN6GoU;RzQoTBqp420QPIc;C3}rX=(JNW2DhXRn!UqTVvoF;94Cj!}Mll)uev zf==9SO%3DI&7aHgnUMc-4z@#5(3nSgzuY@^x!Z@gXw6?#rO(nGxy@PipbK|*+U=>J zb<_p+WG=g?f;rR37n;|%k8j_a=l-sQ>3C+drbx-ie*Qyicb8lu=zE7g)$xvSSq>&twz85GaXxU<@~B!qHPO)n)ke4VyHrCcc2UiA-A*S z{gE-fkjkO?8vYox@mLorSn)n}+bclE%j=wBFT>=ks;>`t!_>Wn&U+2zJvknstTknE zUnWZKHI*Q$o!hW<(7p+Kd(OEn+kb^}p6`nde&;^9+AH&~Zi>O!V{V4waK+Jw@NaEN zoAmvXEq!Ex3MFO|DZdd|l2!h?rVQ~2Bc%*J>2>D}-_@ET1HCk#Fxz9e7K*Wo@l`VU_1 z@}Ku~bj-)3jY-w2-cYAr*Nwp|⋘8IG80(Y%D5LKiJmfs`ZEJuw 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 +#include +#include "glf.h" + +#ifdef _NO_BGZF +// then alias bgzf_*() functions +#endif + +static inline int bam_is_big_endian() +{ + long one= 1; + return !(*((char *)(&one))); +} + +glf_header_t *glf_header_init() +{ + return (glf_header_t*)calloc(1, sizeof(glf_header_t)); +} + +glf_header_t *glf_header_read(glfFile fp) +{ + glf_header_t *h; + char magic[4]; + if (bam_is_big_endian()) { + fprintf(stderr, "[glf_header_read] Big endian is detected. Abort.\n"); + exit(1); + } + h = (glf_header_t*)calloc(1, sizeof(glf_header_t)); + bgzf_read(fp, magic, 4); + if (strncmp(magic, "GLF\2", 4)) { + fprintf(stderr, "[glf_header_read] invalid magic. Abort.\n"); + exit(1); + } + bgzf_read(fp, &h->l_text, 4); + if (h->l_text) { + h->text = (uint8_t*)calloc(h->l_text + 1, 1); + bgzf_read(fp, h->text, h->l_text); + } + return h; +} + +void glf_header_write(glfFile fp, const glf_header_t *h) +{ + bgzf_write(fp, "GLF\2", 4); + bgzf_write(fp, &h->l_text, 4); + if (h->l_text) bgzf_write(fp, h->text, h->l_text); +} + +void glf_header_destroy(glf_header_t *h) +{ + free(h->text); + free(h); +} + +char *glf_ref_read(glfFile fp) +{ + int32_t n; + char *str; + if (bgzf_read(fp, &n, 4) != 4) return 0; + if (n < 0) { + fprintf(stderr, "[glf_ref_read] invalid reference name length: %d.\n", n); + return 0; + } + str = (char*)calloc(n + 1, 1); // not necesarily n+1 in fact + bgzf_read(fp, str, n); + return str; +} + +void glf_ref_write(glfFile fp, const char *str) +{ + int32_t n = strlen(str); + ++n; + bgzf_write(fp, &n, 4); + bgzf_write(fp, str, n); +} + +void glf_view_normal(const char *ref_name, glf2_t *g1) +{ + int j; + printf("%s\t%d\t%c\t%d\t%d\t%d", ref_name, g1->pos + 1, "XACMGRSVTWYHKDBN"[g1->ref_base], + g1->depth, g1->max_mapQ, g1->min_lk); + for (j = 0; j != 10; ++j) printf("\t%d", g1->lk[j]); + printf("\n"); +} + +static char *glf_read_indel(glfFile fp, char *str, int *max, int16_t indel) +{ + int l = indel > 0? indel : -indel; + if (l + 1 > *max) { + *max = l + 1; + str = (char*)realloc(str, *max); + } + bgzf_read(fp, str, l); + str[l] = 0; + return str; +} + +void glf_view(glfFile fp) +{ + glf_header_t *h; + char *name, *str; + glf2_t g2; + int max; + + h = glf_header_read(fp); + str = 0; max = 0; + while ((name = glf_ref_read(fp)) != 0) { + while (bgzf_read(fp, &g2, sizeof(glf2_t))) { + if (g2.type == GLF_TYPE_END) break; + else if (g2.type == GLF_TYPE_NORMAL) glf_view_normal(name, &g2); + else if (g2.type == GLF_TYPE_INDEL) { + int16_t indel1, indel2; + printf("%s\t%d\t*\t%d\t%d\t%d\t", name, g2.pos + 1, g2.depth, g2.max_mapQ, g2.min_lk); + printf("%d\t%d\t%d\t", g2.lk[0], g2.lk[1], g2.lk[2]); + indel1 = *(int16_t*)(g2.lk + 3); + indel2 = *(int16_t*)(g2.lk + 5); + printf("%d\t%d\t", indel1, indel2); + if (indel1) { + str = glf_read_indel(fp, str, &max, indel1); + printf("%c%d%s\t", indel1>0? '+':'-', indel1>0?indel1:-indel1, str); + } else printf("*\t"); + if (indel2) { + str = glf_read_indel(fp, str, &max, indel2); + printf("%c%d%s\n", indel2>0? '+':'-', indel2>0?indel2:-indel2, str); + } else printf("*\n"); + } + } + free(name); + } + glf_header_destroy(h); + free(str); +} + +int glf_view_main(int argc, char *argv[]) +{ + glfFile fp; + if (argc == 1) { + fprintf(stderr, "Usage: glfview \n"); + return 1; + } + fp = (strcmp(argv[1], "-") == 0)? bgzf_fdopen(fileno(stdin), "r") : bgzf_open(argv[1], "r"); + if (fp == 0) { + fprintf(stderr, "Fail to open file '%s'\n", argv[1]); + return 1; + } + glf_view(fp); + bgzf_close(fp); + return 0; +} + +#ifdef GLFVIEW_MAIN +int main(int argc, char *argv[]) +{ + return glf_view_main(argc, argv); +} +#endif diff --git a/glf.h b/glf.h index d9d23c6..af72a48 100644 --- a/glf.h +++ b/glf.h @@ -8,4 +8,40 @@ typedef struct { unsigned min_lk:8, depth:24; /** minimum lk capped at 255, and the number of mapped reads */ } glf1_t; +#include +#include "bgzf.h" +typedef BGZF *glfFile; + +#define GLF_TYPE_NORMAL 0 +#define GLF_TYPE_INDEL 1 +#define GLF_TYPE_END 15 + +typedef struct { + unsigned char ref_base:4, type:4; /** "XACMGRSVTWYHKDBN"[ref_base] gives the reference base */ + unsigned char max_mapQ; /** maximum mapping quality */ + unsigned char lk[10]; /** log likelihood ratio, capped at 255 */ + unsigned min_lk:8, depth:24; /** minimum lk capped at 255, and the number of mapped reads */ + unsigned pos; /** this is ***ZERO-BASED*** coordinate */ +} glf2_t; + +typedef struct { + int32_t l_text; + uint8_t *text; +} glf_header_t; + +#ifdef __cplusplus +extern "C" { +#endif + + glf_header_t *glf_header_init(); + glf_header_t *glf_header_read(glfFile fp); + void glf_header_write(glfFile fp, const glf_header_t *h); + void glf_header_destroy(glf_header_t *h); + char *glf_ref_read(glfFile fp); + void glf_ref_write(glfFile fp, const char *str); + +#ifdef __cplusplus +} +#endif + #endif diff --git a/misc/Makefile b/misc/Makefile index 8a38f54..f4e50ff 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -29,7 +29,7 @@ lib-recur all-recur clean-recur cleanlocal-recur install-recur: lib: faidx:../faidx.c ../faidx.h - $(CC) $(CFLAGS) -DFAIDX_MAIN -o $@ ../faidx.c + $(CC) $(CFLAGS) -D_NO_RAZF -DFAIDX_MAIN -o $@ ../faidx.c md5fa:md5.o md5fa.o md5.h ../kseq.h $(CC) $(CFLAGS) -o $@ md5.o md5fa.o -lz diff --git a/misc/maq2sam.c b/misc/maq2sam.c index e30aa92..70ecf41 100644 --- a/misc/maq2sam.c +++ b/misc/maq2sam.c @@ -5,6 +5,8 @@ #include #include +#define PACKAGE_VERSION "0.1.1 (20090120)" + //#define MAQ_LONGREADS #ifdef MAQ_LONGREADS @@ -84,7 +86,7 @@ maqmap_t *maqmap_read_header(gzFile fp) return mm; } -void maq2tam_core(gzFile fp) +void maq2tam_core(gzFile fp, const char *rg) { maqmap_t *mm; maqmap1_t mm1, *m1; @@ -141,6 +143,7 @@ void maq2tam_core(gzFile fp) for (j = 0; j != m1->size; ++j) putchar((m1->seq[j]&0x3f) + 33); putchar('\t'); + if (rg) printf("RG:Z:%s\t", rg); if (flag&4) { printf("MF:i:%d\n", m1->flag); } else { @@ -158,11 +161,12 @@ int main(int argc, char *argv[]) { gzFile fp; if (argc == 1) { - fprintf(stderr, "Usage: maq2tam \n"); + fprintf(stderr, "Version: %s\n", PACKAGE_VERSION); + fprintf(stderr, "Usage: maq2sam []\n"); return 1; } fp = strcmp(argv[1], "-")? gzopen(argv[1], "r") : gzdopen(fileno(stdin), "r"); - maq2tam_core(fp); + maq2tam_core(fp, argc > 2? argv[2] : 0); gzclose(fp); return 0; } diff --git a/razf.c b/razf.c index 6611f0b..13d6589 100644 --- a/razf.c +++ b/razf.c @@ -31,6 +31,8 @@ * To compile razf.c, zlib-1.2.3(or greater) is required. */ +#ifndef _NO_RAZF + #include #include #include "razf.h" @@ -645,3 +647,5 @@ void razf_close(RAZF *rz){ close(rz->filedes); free(rz); } + +#endif diff --git a/source.dot b/source.dot index cfa2222..1735774 100644 --- a/source.dot +++ b/source.dot @@ -5,11 +5,15 @@ digraph { sort[label="bam_sort.c\n(sort, merge)"] index[label="bam_index.c\n(index)"] tview[label="bam_tview.c\n(tview)"] + glf[label="glf.c\n(glfview)"] + rmdup[label="bam_rmdup.c\n(rmdup)"] + fixmate[label="bam_mate.c\n(fixmate)"] "bam_aux.c" -> {"bam.c", import} - "bgzf.c" -> "bam.c" - "bam.c" -> {index, "bam_pileup.c", sort, import} + glf -> {"bam_maqcns.c", plcmd} + "bgzf.c" -> {"bam.c", glf} + "bam.c" -> {index, "bam_pileup.c", sort, import, rmdup, fixmate} "bam_pileup.c" -> {"bam_lpileup.c", plcmd} {"bam_lpileup.c", index, faidx, "bam_maqcns.c"} -> tview {import, faidx, "bam_maqcns.c"} -> plcmd - {tview, plcmd, faidx, sort, import, index} -> "bamtk.c\n(view)" + {tview, plcmd, faidx, sort, import, index, glf, rmdup, fixmate} -> "bamtk.c\n(view)" } \ No newline at end of file -- 2.39.2