[med-svn] [bcftools] 01/08: New upstream version 1.5

Andreas Tille tille at debian.org
Thu Jul 20 11:46:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository bcftools.

commit 6dc018a68340a7b92f6ec40887f7fa591fa202a7
Author: Andreas Tille <tille at debian.org>
Date:   Thu Jul 20 13:17:47 2017 +0200

    New upstream version 1.5
---
 HMM.c                          |  95 ++++----
 HMM.h                          |   9 +-
 INSTALL                        |  82 +++++--
 Makefile                       | 176 +++++++++------
 NEWS                           |  33 ++-
 bam2bcf.c                      |  35 +--
 bam2bcf_indel.c                |   8 +-
 bcftools.h                     |   6 +
 config.mk.in                   |  63 ++++++
 configure.ac                   | 218 ++++++++++++++++++
 consensus.c                    |  11 +-
 doc/bcftools.1                 |  34 +--
 doc/bcftools.html              |  37 +--
 doc/bcftools.txt               |  33 +--
 filter.c                       |  47 ++++
 install-sh                     | 501 +++++++++++++++++++++++++++++++++++++++++
 m4/ax_with_htslib.m4           | 154 +++++++++++++
 main.c                         |   6 +
 misc/plot-roh.py               | 323 +++++++++++++++++++-------
 misc/plot-vcfstats             |  20 +-
 plugins/GTisec.mk              |   2 +-
 plugins/GTsubset.mk            |   2 +-
 plugins/ad-bias.mk             |   2 +-
 plugins/af-dist.mk             |   2 +-
 plugins/color-chrs.mk          |   2 +-
 plugins/fill-from-fasta.mk     |   2 +-
 plugins/fixploidy.mk           |   4 +-
 plugins/fixref.c               |  17 +-
 plugins/isecGT.mk              |   2 +
 plugins/prune.c                | 292 ++++++++++++++++++++++++
 plugins/setGT.mk               |   2 +-
 rbuf.h                         |  66 +++++-
 test/create-bam-test           |  99 ++++++++
 test/fixref.2.out              |  11 +
 test/fixref.2a.vcf             |  10 +
 test/fixref.2b.vcf             |  10 +
 test/merge.gvcf.3.a.vcf        |   8 +
 test/merge.gvcf.3.b.vcf        |  10 +
 test/merge.gvcf.3.out          |  11 +
 test/mpileup/indel-AD.1.bam    | Bin 0 -> 15124 bytes
 test/mpileup/indel-AD.1.cram   | Bin 0 -> 9682 bytes
 test/mpileup/indel-AD.1.fa     |  13 ++
 test/mpileup/indel-AD.1.fa.fai |   1 +
 test/mpileup/indel-AD.1.out    | 323 ++++++++++++++++++++++++++
 test/mpileup/indel-AD.1.sam    | 156 +++++++++++++
 test/norm.out                  |   2 +-
 test/norm.split.and.norm.out   |   2 +-
 test/test.pl                   |  65 +++---
 vcfbuf.c                       | 442 ++++++++++++++++++++++++++++++++++++
 vcfbuf.h                       |  81 +++++++
 vcfconvert.c                   |   8 +-
 vcfmerge.c                     |  32 ++-
 vcfnorm.c                      |  27 ++-
 vcfplugin.c                    |  18 +-
 vcfroh.c                       |  18 +-
 55 files changed, 3272 insertions(+), 361 deletions(-)

diff --git a/HMM.c b/HMM.c
index 5795987..70ad8d6 100644
--- a/HMM.c
+++ b/HMM.c
@@ -33,12 +33,11 @@
 
 typedef struct
 {
-    int nstates;        // number of hmm's states
-    int isite;          // take snapshot at i-th position
-    uint32_t pos;       // i-th site's position
-    double *vit_prob;   // viterbi probabilities, NULL for uniform probs
-    double *fwd_prob;   // transition probabilities
-    double *bwd_prob;   // transition probabilities
+    int nstates;            // number of hmm's states
+    uint32_t snap_at_pos;   // snapshot at this position, 0 when inactive
+    double *vit_prob;       // viterbi probabilities, NULL for uniform probs
+    double *fwd_prob;       // transition probabilities
+    double *bwd_prob;       // transition probabilities
 }
 snapshot_t;
 
@@ -61,8 +60,9 @@ struct _hmm_t
     set_tprob_f set_tprob;      // Optional user function to set / modify transition probabilities
                                 //  at each site (one step of Viterbi algorithm)
     void *set_tprob_data;
-    snapshot_t init;            // Initial state probabilities. Set isite=1 when site should be used
-    snapshot_t *snapshot;
+    snapshot_t init, state;     // Initial and current state probs. Set state from snapshot if prev_snap_pos!=0 or from init otherwise
+    snapshot_t *snapshot;       //  snapshot->snap_at_pos  .. request a snapshot at this position
+                                //  hmm->state.snap_at_pos .. the current state comes from snapshot made at this position
 };
 
 uint8_t *hmm_get_viterbi_path(hmm_t *hmm) { return hmm->vpath; }
@@ -92,14 +92,21 @@ static inline void multiply_matrix(int n, double *a, double *b, double *dst, dou
 
 void hmm_init_states(hmm_t *hmm, double *probs)
 {
-    hmm->init.isite = 0;
-    hmm->init.pos   = 0;
+    hmm->init.snap_at_pos = hmm->state.snap_at_pos = 0;
+
     if ( !hmm->init.vit_prob )
         hmm->init.vit_prob = (double*) malloc(sizeof(double)*hmm->nstates);
     if ( !hmm->init.fwd_prob )
         hmm->init.fwd_prob = (double*) malloc(sizeof(double)*hmm->nstates);
     if ( !hmm->init.bwd_prob )
         hmm->init.bwd_prob = (double*) malloc(sizeof(double)*hmm->nstates);
+
+    if ( !hmm->state.vit_prob )
+        hmm->state.vit_prob = (double*) malloc(sizeof(double)*hmm->nstates);
+    if ( !hmm->state.fwd_prob )
+        hmm->state.fwd_prob = (double*) malloc(sizeof(double)*hmm->nstates);
+    if ( !hmm->state.bwd_prob )
+        hmm->state.bwd_prob = (double*) malloc(sizeof(double)*hmm->nstates);
     
     int i;
     if ( probs )
@@ -112,8 +119,11 @@ void hmm_init_states(hmm_t *hmm, double *probs)
     else
         for (i=0; i<hmm->nstates; i++) hmm->init.vit_prob[i] = 1./hmm->nstates;
 
-    memcpy(hmm->init.fwd_prob,hmm->init.vit_prob,sizeof(double)*hmm->nstates);
+    memcpy(hmm->init.fwd_prob,hmm->init.vit_prob,sizeof(double)*hmm->nstates);  // these remain unchanged
     memcpy(hmm->init.bwd_prob,hmm->init.vit_prob,sizeof(double)*hmm->nstates);
+    memcpy(hmm->state.vit_prob,hmm->init.vit_prob,sizeof(double)*hmm->nstates); // can be changed by snapshotting
+    memcpy(hmm->state.fwd_prob,hmm->init.fwd_prob,sizeof(double)*hmm->nstates);
+    memcpy(hmm->state.bwd_prob,hmm->init.bwd_prob,sizeof(double)*hmm->nstates);
 }
 hmm_t *hmm_init(int nstates, double *tprob, int ntprob)
 {
@@ -126,7 +136,7 @@ hmm_t *hmm_init(int nstates, double *tprob, int ntprob)
     return hmm;
 }
 
-void *hmm_snapshot(hmm_t *hmm, void *_snapshot, int isite)
+void *hmm_snapshot(hmm_t *hmm, void *_snapshot, uint32_t pos)
 {
     snapshot_t *snapshot = (snapshot_t*) _snapshot;
     if ( snapshot && snapshot->nstates!=hmm->nstates )
@@ -147,22 +157,33 @@ void *hmm_snapshot(hmm_t *hmm, void *_snapshot, int isite)
         snapshot->vit_prob = (double*) (mem + str_size + pad_size);
         snapshot->fwd_prob = snapshot->vit_prob + hmm->nstates;
     }
-    snapshot->isite = isite;
+    snapshot->snap_at_pos = pos;
     hmm->snapshot = snapshot;
     return snapshot;
 }
 void hmm_restore(hmm_t *hmm, void *_snapshot)
 {
     snapshot_t *snapshot = (snapshot_t*) _snapshot;
-    if ( !snapshot ) 
+    if ( !snapshot || !snapshot->snap_at_pos ) 
     {
-        hmm->init.isite = 0;
-        return;
+        hmm->state.snap_at_pos = 0;
+        memcpy(hmm->state.vit_prob,hmm->init.vit_prob,sizeof(double)*hmm->nstates);
+        memcpy(hmm->state.fwd_prob,hmm->init.fwd_prob,sizeof(double)*hmm->nstates);
     }
-    hmm->init.isite = 1;
-    hmm->init.pos   = snapshot->pos;
-    memcpy(hmm->init.vit_prob,snapshot->vit_prob,sizeof(double)*hmm->nstates);
-    memcpy(hmm->init.fwd_prob,snapshot->fwd_prob,sizeof(double)*hmm->nstates);
+    else
+    {
+        hmm->state.snap_at_pos = snapshot->snap_at_pos;
+        memcpy(hmm->state.vit_prob,snapshot->vit_prob,sizeof(double)*hmm->nstates);
+        memcpy(hmm->state.fwd_prob,snapshot->fwd_prob,sizeof(double)*hmm->nstates);
+    }
+}
+void hmm_reset(hmm_t *hmm, void *_snapshot)
+{
+    snapshot_t *snapshot = (snapshot_t*) _snapshot;
+    if ( snapshot ) snapshot->snap_at_pos = 0;
+    hmm->state.snap_at_pos = 0;
+    memcpy(hmm->state.vit_prob,hmm->init.vit_prob,sizeof(double)*hmm->nstates);
+    memcpy(hmm->state.fwd_prob,hmm->init.fwd_prob,sizeof(double)*hmm->nstates);
 }
 
 void hmm_set_tprob(hmm_t *hmm, double *tprob, int ntprob)
@@ -219,8 +240,8 @@ void hmm_run_viterbi(hmm_t *hmm, int n, double *eprobs, uint32_t *sites)
 
     // Init all states with equal likelihood
     int i,j, nstates = hmm->nstates;
-    memcpy(hmm->vprob, hmm->init.vit_prob, sizeof(*hmm->init.vit_prob)*nstates);
-    uint32_t prev_pos = hmm->init.isite ? hmm->init.pos : sites[0];
+    memcpy(hmm->vprob, hmm->state.vit_prob, sizeof(*hmm->state.vit_prob)*nstates);
+    uint32_t prev_pos = hmm->state.snap_at_pos ? hmm->state.snap_at_pos : sites[0];
 
     // Run Viterbi
     for (i=0; i<n; i++)
@@ -250,11 +271,8 @@ void hmm_run_viterbi(hmm_t *hmm, int n, double *eprobs, uint32_t *sites)
         for (j=0; j<nstates; j++) hmm->vprob_tmp[j] /= vnorm;
         double *tmp = hmm->vprob; hmm->vprob = hmm->vprob_tmp; hmm->vprob_tmp = tmp;
 
-        if ( hmm->snapshot && i==hmm->snapshot->isite )
-        {
-            hmm->snapshot->pos = sites[i];
+        if ( hmm->snapshot && sites[i]==hmm->snapshot->snap_at_pos )
             memcpy(hmm->snapshot->vit_prob, hmm->vprob, sizeof(*hmm->vprob)*nstates);
-        }
     }
 
     // Find the most likely state
@@ -286,12 +304,10 @@ void hmm_run_fwd_bwd(hmm_t *hmm, int n, double *eprobs, uint32_t *sites)
     }
 
 
-    // Init all states with equal likelihood
     int i,j,k, nstates = hmm->nstates;
-    memcpy(hmm->fwd, hmm->init.fwd_prob, sizeof(*hmm->init.fwd_prob)*nstates);
-    memcpy(hmm->bwd, hmm->init.bwd_prob, sizeof(*hmm->init.bwd_prob)*nstates);
-
-    uint32_t prev_pos = hmm->init.isite ? hmm->init.pos : sites[0];
+    memcpy(hmm->fwd, hmm->state.fwd_prob, sizeof(*hmm->state.fwd_prob)*nstates);
+    memcpy(hmm->bwd, hmm->state.bwd_prob, sizeof(*hmm->state.bwd_prob)*nstates);
+    uint32_t prev_pos = hmm->state.snap_at_pos ? hmm->state.snap_at_pos : sites[0];
 
     // Run fwd 
     for (i=0; i<n; i++)
@@ -316,13 +332,9 @@ void hmm_run_fwd_bwd(hmm_t *hmm, int n, double *eprobs, uint32_t *sites)
             norm += fwd[j];
         }
         for (j=0; j<nstates; j++) fwd[j] /= norm;
-    }
 
-    if ( hmm->snapshot )
-    {
-        i = hmm->snapshot->isite;
-        hmm->snapshot->pos = sites[i];
-        memcpy(hmm->snapshot->fwd_prob, hmm->fwd + (i+1)*nstates, sizeof(*hmm->fwd)*nstates);
+        if ( hmm->snapshot && sites[i]==hmm->snapshot->snap_at_pos )
+            memcpy(hmm->snapshot->fwd_prob, fwd, sizeof(*fwd)*nstates);
     }
 
     // Run bwd
@@ -376,9 +388,9 @@ double *hmm_run_baum_welch(hmm_t *hmm, int n, double *eprobs, uint32_t *sites)
 
     // Init all states with equal likelihood
     int i,j,k, nstates = hmm->nstates;
-    memcpy(hmm->fwd, hmm->init.fwd_prob, sizeof(*hmm->init.fwd_prob)*nstates);
-    memcpy(hmm->bwd, hmm->init.bwd_prob, sizeof(*hmm->init.bwd_prob)*nstates);
-    uint32_t prev_pos = hmm->init.isite ? hmm->init.pos : sites[0];
+    memcpy(hmm->fwd, hmm->state.fwd_prob, sizeof(*hmm->state.fwd_prob)*nstates);
+    memcpy(hmm->bwd, hmm->state.bwd_prob, sizeof(*hmm->state.bwd_prob)*nstates);
+    uint32_t prev_pos = hmm->state.snap_at_pos ? hmm->state.snap_at_pos : sites[0];
 
     // New transition matrix: temporary values
     double *tmp_xi = (double*) calloc(nstates*nstates,sizeof(double));
@@ -480,6 +492,9 @@ void hmm_destroy(hmm_t *hmm)
     free(hmm->init.vit_prob);
     free(hmm->init.fwd_prob);
     free(hmm->init.bwd_prob);
+    free(hmm->state.vit_prob);
+    free(hmm->state.fwd_prob);
+    free(hmm->state.bwd_prob);
     free(hmm->vprob);
     free(hmm->vprob_tmp);
     free(hmm->vpath);
diff --git a/HMM.h b/HMM.h
index 3e5cf7f..70c9cb8 100644
--- a/HMM.h
+++ b/HMM.h
@@ -59,16 +59,21 @@ void hmm_init_states(hmm_t *hmm, double *probs);
 /**
  *   hmm_snapshot() - take the model's snapshot, intended for sliding HMM
  *   @snapshot: NULL or snapshot returned by previous hmm_snapshot() call, must be free()-ed by the caller
- *   @isite:    take the snapshot at i-th step
+ *   @pos:      take the snapshot at this position
+ *
+ *   If both restore() and snapshot() are needed, restore() must be called first.
  */
-void *hmm_snapshot(hmm_t *hmm, void *snapshot, int isite);
+void *hmm_snapshot(hmm_t *hmm, void *snapshot, uint32_t pos);
 
 /**
  *   hmm_restore() - restore model's snapshot, intended for sliding HMM
  *   @snapshot: snapshot returned by hmm_snapshot() call or NULL to reset
  *   @isite:    take the snapshot at i-th step
+ *
+ *   If both restore() and snapshot() are needed, restore() must be called first.
  */
 void hmm_restore(hmm_t *hmm, void *snapshot);
+void hmm_reset(hmm_t *hmm, void *snapshot);
 
 /**
  *   hmm_get_tprob() - return the array of transition matrices, precalculated
diff --git a/INSTALL b/INSTALL
index df3df00..82493fc 100644
--- a/INSTALL
+++ b/INSTALL
@@ -23,43 +23,99 @@ are:
   bzip2-devel
   xz-devel
 
+To build BCFtools, you will need:
+
+    GNU make
+    C compiler (e.g. gcc or clang)
+
+In addition, building the configure script requires:
+
+    autoheader
+    autoconf
+
+Running the configure script uses awk, along with a number of
+standard UNIX tools (cat, cp, grep, mv, rm, sed, among others).  Almost
+all installations will have these already.
+
+Running the test harness (make test) uses:
+
+    bash
+    perl
+
+Building Configure
+==================
+
+This step is only needed if configure.ac has been changed, or if configure
+does not exist (for example, when building from a git clone).  The
+configure script and config.h.in can be built by running:
+
+    autoheader
+    autoconf
+
+If you have a full GNU autotools install, you can alternatively run:
+
+    autoreconf
+
+Warnings like "AC_CONFIG_SUBDIRS: you should use literals" can be ignored
+or supressed using 'autoconf -Wno-syntax'.
+
+
 Compilation
 ===========
 
-'cd' to the bcftools-1.x directory containing the package's source and type
-'make' to compile BCFtools.
+'cd' to the bcftools directory containing the package's source and type:
+
+    ./configure
+    make
 
 This BCFtools release contains a copy of HTSlib which will be used to build
 BCFtools.  If you already have a system-installed HTSlib or another HTSlib
-that you would prefer to build against, you can arrange this by overriding
-$(HTSDIR) by typing 'make HTSDIR=/path/to/htslib-source' -- see the makefile
-for details.
+that you would prefer to build against, you can arrange this by using the
+configure script's --with-htslib option.  Use --with-htslib=DIR to point
+to an HTSlib source tree or installation in DIR; or --with-htslib=system
+to use a system-installed HTSlib.
 
 
 Optional Compilation with GSL
 =============================
 
 The 'polysomy' command depends on the GNU Scientific Library (GSL) and is not
-enabled by default. In order to compile it, type 'make clean && make USE_GPL=1'.
+enabled by default. In order to compile it, supply the --enable-libgsl
+option to configure before running make:
+
+    ./configure --enable-libgsl
 
-Note that GSL is distributed under a GPL license, so when USE_GPL=1 is used to
-compile bcftools, the resulting program must only be distributed under terms
-compatible with that license. 
+The GNU Scientific Library depends on the cblas library.  The configure
+script will look for both libcblas and libgslcblas, in that order.  If
+you have more than one version of cblas installed and want to override its
+choice you can do this by using either --with-cblas=cblas or
+--with-cblas=gslcblas.
+
+Note that GSL is distributed under the GNU General Public License (GPL).
+When --enable-libgsl is used to compile bcftools, the resulting program
+will also be GPL licensed.  If you want to distribute the program, you MUST
+do so under terms compatible with that license.  A copy of the GPL is included
+in the LICENSE file, or can be downloaded from
+<http://www.gnu.org/copyleft/gpl.html>.
 
 In the default compilation mode the program is dual licensed and you may
 choose to be licensed under the terms of the MIT/Expat license or the
 GNU General Public License (GPL).
 
+Information on the GNU Scientific Library, including the rationale for
+its choice of license can be found at <https://www.gnu.org/software/gsl/>.
 
 Installation
 ============
 
 Type 'make install' to install the bcftools executable and associated scripts
-and a manual page to /usr/local.
+and a manual page.  The default is to install in /usr/local.  This can be
+changed by using the configure script's --prefix option:
+
+   ./configure --prefix=/path/to/install/dir
 
-Type 'make prefix=/path/to/dir install' to install everything under your
-choice of installation directory.  The install target also understands
-DESTDIR and the other usual installation directory variables.
+The install target also understands DESTDIR and the other usual installation
+directory variables.
 
 The bgzip and tabix utilities are provided by HTSlib.  If you have not also
 installed HTSlib separately, you may wish to install these utilities by hand
diff --git a/Makefile b/Makefile
index ddb384f..7e87b08 100644
--- a/Makefile
+++ b/Makefile
@@ -22,60 +22,25 @@
 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 # DEALINGS IN THE SOFTWARE.
 
-PROG=       bcftools
-TEST_PROG=  test/test-rbuf test/test-regidx
-
-
-all: $(PROG) $(TEST_PROG)
-
-# Adjust $(HTSDIR) to point to your top-level htslib directory
-HTSDIR = ../htslib
-include $(HTSDIR)/htslib.mk
-include $(HTSDIR)/htslib_static.mk
-HTSLIB = $(HTSDIR)/libhts.a
-BGZIP  = $(HTSDIR)/bgzip
-TABIX  = $(HTSDIR)/tabix
-HTSLIB_LDFLAGS = $(HTSLIB_static_LDFLAGS)
-HTSLIB_LIBS = $(HTSLIB_static_LIBS)
-
 CC       = gcc
 CPPFLAGS =
 CFLAGS   = -g -Wall -Wc++-compat -O2
 LDFLAGS  =
 LIBS     =
 
-ifeq "$(shell uname -s)" "Darwin"
-DYNAMIC_FLAGS = -Wl,-export_dynamic
-else
 DYNAMIC_FLAGS = -rdynamic
-endif
-
-# TODO Use configure or htslib.pc to add -rdynamic/-ldl conditionally
-ALL_CPPFLAGS = -I. $(HTSLIB_CPPFLAGS) $(CPPFLAGS)
-ALL_LDFLAGS  = $(DYNAMIC_FLAGS) $(HTSLIB_LDFLAGS) $(LDFLAGS)
-ALL_LIBS     = -lm -lz -ldl $(LIBS)
+PLUGINS_ENABLED = yes
+PLUGIN_EXT = .so
 
 OBJS     = main.o vcfindex.o tabix.o \
            vcfstats.o vcfisec.o vcfmerge.o vcfquery.o vcffilter.o filter.o vcfsom.o \
            vcfnorm.o vcfgtcheck.o vcfview.o vcfannotate.o vcfroh.o vcfconcat.o \
            vcfcall.o mcall.o vcmp.o gvcf.o reheader.o convert.o vcfconvert.o tsv2vcf.o \
            vcfcnv.o HMM.o vcfplugin.o consensus.o ploidy.o bin.o hclust.o version.o \
-           regidx.o smpl_ilist.o csq.o \
+           regidx.o smpl_ilist.o csq.o vcfbuf.o \
            mpileup.o bam2bcf.o bam2bcf_indel.o bam_sample.o \
            ccall.o em.o prob1.o kmin.o # the original samtools calling
 
-EXTRA_CPPFLAGS = -I. -I$(HTSDIR) -DPLUGINPATH=\"$(pluginpath)\"
-GSL_LIBS       =
-
-# The polysomy command is not compiled by default because it brings dependency
-# on libgsl. The command can be compiled wth `make USE_GPL=1`. See the INSTALL
-# and LICENSE documents to understand license implications.
-ifdef USE_GPL
-    EXTRA_CPPFLAGS += -DUSE_GPL
-    OBJS += polysomy.o peakfit.o
-    GSL_LIBS = -lgsl -lcblas
-endif
-
 prefix      = /usr/local
 exec_prefix = $(prefix)
 bindir      = $(exec_prefix)/bin
@@ -83,73 +48,130 @@ libdir      = $(exec_prefix)/lib
 libexecdir  = $(exec_prefix)/libexec
 mandir      = $(prefix)/share/man
 man1dir     = $(mandir)/man1
-
+# Installation location for $(PLUGINS)
 plugindir   = $(libexecdir)/bcftools
 pluginpath  = $(plugindir)
+# Installation location for $(MISC_PROGRAMS) and $(MISC_SCRIPTS)
+misc_bindir = $(bindir)
 
 MKDIR_P = mkdir -p
 INSTALL = install -p
-INSTALL_PROGRAM = $(INSTALL)
 INSTALL_DATA    = $(INSTALL) -m 644
 INSTALL_DIR     = $(MKDIR_P) -m 755
+INSTALL_MAN     = $(INSTALL_DATA)
+INSTALL_PROGRAM = $(INSTALL)
+INSTALL_SCRIPT  = $(INSTALL_PROGRAM)
 
-MISC_PROGRAMS = \
+PROGRAMS = bcftools
+MISC_SCRIPTS = \
     misc/color-chrs.pl \
     misc/guess-ploidy.py \
     misc/plot-vcfstats \
     misc/plot-roh.py \
     misc/run-roh.pl \
     misc/vcfutils.pl
+TEST_PROGRAMS = test/test-rbuf test/test-regidx
 
-all:$(PROG) plugins
+all: $(PROGRAMS) $(TEST_PROGRAMS) plugins
 
-# See htslib/Makefile
-PACKAGE_VERSION = 1.4.1
+ALL_CPPFLAGS = -I. $(HTSLIB_CPPFLAGS) $(CPPFLAGS)
+ALL_LDFLAGS  = $(HTSLIB_LDFLAGS) $(LDFLAGS)
+ALL_LIBS     = -lz -ldl $(LIBS)
+
+# Usually config.mk and config.h are generated by running configure
+# or config.status, but if those aren't used create defaults here.
+config.mk:
+	@sed -e '/^prefix/,/^PLUGIN_EXT/d;s/@Hsource@//;s/@Hinstall@/#/;s#@HTSDIR@#../htslib#g;s/@HTSLIB_CPPFLAGS@/-I$$(HTSDIR)/g;' config.mk.in > $@
+
+config.h:
+	echo '/* Basic config.h generated by Makefile */' > $@
+ifneq "$(PLUGINS_ENABLED)" "no"
+	echo '#define ENABLE_BCF_PLUGINS 1' >> $@
+	echo '#define PLUGIN_EXT ".so"' >> $@
+endif
+
+include config.mk
+
+PACKAGE_VERSION = 1.5
+
+# If building from a Git repository, replace $(PACKAGE_VERSION) with the Git
+# description of the working tree: either a release tag with the same value
+# as $(PACKAGE_VERSION) above, or an exact description likely based on a tag.
+# $(shell), :=, etc are GNU Make-specific.  If you don't have GNU Make,
+# comment out this conditional.
 ifneq "$(wildcard .git)" ""
 PACKAGE_VERSION := $(shell git describe --always --dirty)
 DOC_VERSION :=  $(shell git describe --always)+
 DOC_DATE := $(shell date +'%Y-%m-%d %R %Z')
+
+# Force version.h to be remade if $(PACKAGE_VERSION) has changed.
 version.h: $(if $(wildcard version.h),$(if $(findstring "$(PACKAGE_VERSION)",$(shell cat version.h)),,force))
 endif
+
+# If you don't have GNU Make but are building from a Git repository, you may
+# wish to replace this with a rule that always rebuilds version.h:
+# version.h: force
+#	echo '#define BCFTOOLS_VERSION "`git describe --always --dirty`"' > $@
 version.h:
 	echo '#define BCFTOOLS_VERSION "$(PACKAGE_VERSION)"' > $@
 
+print-version:
+	@echo $(PACKAGE_VERSION)
 
-.SUFFIXES:.c .o
-.PHONY:all clean clean-all clean-plugins distclean install lib tags test testclean force plugins docs
 
-force:
+.SUFFIXES: .c .o
 
 .c.o:
-	$(CC) $(CFLAGS) $(EXTRA_CPPFLAGS) $(ALL_CPPFLAGS) -c -o $@ $<
+	$(CC) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) -c -o $@ $<
 
-test: $(PROG) plugins test/test-rbuf test/test-regidx $(BGZIP) $(TABIX)
-	./test/test-regidx
-	./test/test.pl --exec bgzip=$(BGZIP) --exec tabix=$(TABIX)
-
-test-plugins: $(PROG) plugins test/test-rbuf $(BGZIP) $(TABIX)
-	./test/test.pl --plugins --exec bgzip=$(BGZIP) --exec tabix=$(TABIX)
+# The polysomy command is not compiled by default because it brings dependency
+# on libgsl. The command can be compiled wth `make USE_GPL=1`. See the INSTALL
+# and LICENSE documents to understand license implications.
+ifdef USE_GPL
+    main.o : EXTRA_CPPFLAGS += -DUSE_GPL
+    OBJS += polysomy.o peakfit.o
+    GSL_LIBS ?= -lgsl -lcblas
+endif
 
+bcftools: $(OBJS) $(HTSLIB)
+	$(CC) $(DYNAMIC_FLAGS) -pthread $(ALL_LDFLAGS) -o $@ $(OBJS) $(HTSLIB_LIB) -lm $(ALL_LIBS) $(GSL_LIBS)
 
 # Plugin rules
+ifneq "$(PLUGINS_ENABLED)" "no"
 PLUGINC = $(foreach dir, plugins, $(wildcard $(dir)/*.c))
-PLUGINS = $(PLUGINC:.c=.so)
+PLUGINS = $(PLUGINC:.c=$(PLUGIN_EXT))
 PLUGINM = $(PLUGINC:.c=.mk)
 
-ifeq "$(shell uname -s)" "Darwin"
+ifneq "$(origin PLATFORM)" "file"
+PLATFORM := $(shell uname -s)
+endif
+ifeq "$(PLATFORM)" "Darwin"
 $(PLUGINS): | bcftools
 PLUGIN_FLAGS = -bundle -bundle_loader bcftools
 else
 PLUGIN_FLAGS = -fPIC -shared
 endif
 
+vcfplugin.o: EXTRA_CPPFLAGS += -DPLUGINPATH='"$(pluginpath)"'
+
 %.so: %.c version.h version.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ version.c $< $(LIBS)
 
 -include $(PLUGINM)
 
-plugins: $(PLUGINS)
+test check: test-plugins
+
+else   # PLUGINS_ENABLED
+
+PLUGINC =
+PLUGINS =
+PLUGINM =
 
+test check: test-no-plugins
+
+endif  # PLUGINS_ENABLED
+
+plugins: $(PLUGINS)
 
 bcftools_h = bcftools.h $(htslib_hts_defs_h) $(htslib_vcf_h)
 bin_h = bin.h $(htslib_hts_h)
@@ -164,9 +186,9 @@ cnv_h = HMM.h $(htslib_vcf_h) $(htslib_synced_bcf_reader_h)
 bam2bcf_h = bam2bcf.h $(htslib_hts_h) $(htslib_vcf_h)
 bam_sample_h = bam_sample.h $(htslib_sam_h)
 
-main.o: main.c $(htslib_hts_h) version.h $(bcftools_h)
+main.o: main.c $(htslib_hts_h) config.h version.h $(bcftools_h)
 vcfannotate.o: vcfannotate.c $(htslib_vcf_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(bcftools_h) vcmp.h $(filter_h)
-vcfplugin.o: vcfplugin.c $(htslib_vcf_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(bcftools_h) vcmp.h $(filter_h)
+vcfplugin.o: vcfplugin.c config.h $(htslib_vcf_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(bcftools_h) vcmp.h $(filter_h)
 vcfcall.o: vcfcall.c $(htslib_vcf_h) $(htslib_kfunc_h) $(htslib_synced_bcf_reader_h) $(htslib_khash_str2int_h) $(bcftools_h) $(call_h) $(prob1_h) $(ploidy_h)
 vcfconcat.o: vcfconcat.c $(htslib_vcf_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(htslib_bgzf_h) $(htslib_tbx_h) $(bcftools_h)
 vcfconvert.o: vcfconvert.c $(htslib_vcf_h) $(htslib_bgzf_h) $(htslib_synced_bcf_reader_h) $(htslib_vcfutils_h) $(bcftools_h) $(filter_h) $(convert_h) $(tsv2vcf_h)
@@ -204,9 +226,25 @@ mpileup.o: mpileup.c $(htslib_sam_h) $(htslib_faidx_h) $(htslib_kstring_h) $(hts
 bam_sample.o: $(bam_sample_h) $(htslib_hts_h) $(htslib_khash_str2int_h)
 version.o: version.h version.c
 hclust.o: hclust.c hclust.h
+vcfbuf.o: vcfbuf.c vcfbuf.h rbuf.h
 smpl_ilist.o: smpl_ilist.c smpl_ilist.h
 csq.o: csq.c smpl_ilist.h regidx.h filter.h kheap.h rbuf.h
 
+# test programs
+
+# For tests that might use it, set $REF_PATH explicitly to use only reference
+# areas within the test suite (or set it to ':' to use no reference areas).
+# (regression.sh sets $REF_PATH to a subdirectory itself.)
+test-no-plugins: $(PROGRAMS) $(TEST_PROGRAMS) $(BGZIP) $(TABIX)
+	./test/test-rbuf
+	./test/test-regidx
+	REF_PATH=: ./test/test.pl --exec bgzip=$(BGZIP) --exec tabix=$(TABIX)
+
+test-plugins: $(PROGRAMS) $(TEST_PROGRAMS) $(BGZIP) $(TABIX) plugins
+	./test/test-rbuf
+	./test/test-regidx
+	REF_PATH=: ./test/test.pl --plugins --exec bgzip=$(BGZIP) --exec tabix=$(TABIX)
+
 test/test-rbuf.o: test/test-rbuf.c rbuf.h
 
 test/test-rbuf: test/test-rbuf.o
@@ -215,18 +253,16 @@ test/test-rbuf: test/test-rbuf.o
 test/test-regidx.o: test/test-regidx.c regidx.h
 
 test/test-regidx: test/test-regidx.o regidx.o $(HTSLIB)
-	$(CC) $(ALL_LDFLAGS) -o $@ $^ $(HTSLIB) -lpthread $(HTSLIB_LIBS) $(ALL_LIBS)
+	$(CC) $(ALL_LDFLAGS) -o $@ $^ $(HTSLIB) -lpthread $(HTSLIB_LIB) $(ALL_LIBS)
 
-bcftools: $(HTSLIB) $(OBJS)
-	$(CC) $(ALL_LDFLAGS) -o $@ $(OBJS) $(HTSLIB) -lpthread $(HTSLIB_LIBS) $(GSL_LIBS) $(ALL_LIBS)
 
+# make docs target depends the a2x asciidoc program
 doc/bcftools.1: doc/bcftools.txt
 	cd doc && a2x -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) --doctype manpage --format manpage bcftools.txt
 
 doc/bcftools.html: doc/bcftools.txt
 	cd doc && a2x -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) --doctype manpage --format xhtml bcftools.txt
 
-# make docs target depends the a2x asciidoc program
 docs: doc/bcftools.1 doc/bcftools.html
 
 # To avoid an install dependency on asciidoc, the make install target
@@ -236,8 +272,9 @@ docs: doc/bcftools.1 doc/bcftools.html
 # make docs can be run to update if asciidoc is available
 install: $(PROG) $(PLUGINS)
 	$(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) $(DESTDIR)$(plugindir)
-	$(INSTALL_PROGRAM) $(PROG) $(MISC_PROGRAMS) $(DESTDIR)$(bindir)
-	$(INSTALL_DATA) doc/bcftools.1 $(DESTDIR)$(man1dir)
+	$(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(bindir)
+	$(INSTALL_SCRIPT) $(MISC_SCRIPTS) $(DESTDIR)$(misc_bindir)
+	$(INSTALL_MAN) doc/bcftools.1 $(DESTDIR)$(man1dir)
 	$(INSTALL_PROGRAM) plugins/*.so $(DESTDIR)$(plugindir)
 
 clean: testclean clean-plugins
@@ -252,9 +289,16 @@ testclean:
 	-rm -f test/*.o test/*~ $(TEST_PROG)
 
 distclean: clean
+	-rm -f config.cache config.h config.log config.mk config.status
+	-rm -rf autom4te.cache
 	-rm -f TAGS
 
 clean-all: clean clean-htslib
 
 tags:
 	ctags -f TAGS *.[ch] plugins/*.[ch]
+
+force:
+
+.PHONY: all check clean clean-all clean-plugins distclean force install
+.PHONY: print-version tags test testclean plugins docs
diff --git a/NEWS b/NEWS
index 42b86fd..5ae6521 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,35 @@
-## Noteworthy changes for the next release:
+## Release 1.5 (June 2017)
+
+* Added autoconf support to bcftools. See `INSTALL` for more details.
+
+* `norm`: Make norm case insensitive (#601). Trim the reference allele (#602).
+
+* `mpileup`: fix for misreported indel depths for reads containing adjacent
+  indels (3c1205c1).
+
+* `plot-vcfstats`: Open stats file in text mode, not binary (#618).
+
+* `fixref` plugin: Allow multiallelic sites in the `-i, --use-id reference`.
+  Also flip genotypes, not just REF/ALT!
+
+* `merge`: fix gVCF merge bug when last record on a chromosome opened a
+  gVCF block (#616)
+
+* New options added to the ROH plotting script.
+
+* `consensus`: Properly flush chain info (#606, thanks to @krooijers).
+
+* New `+prune` plugin for pruning sites by LD (R2) or maximum number of
+  records within a window.
+
+* New N_MISSING, F_MISSING (number and fraction misssing) filtering
+  expressions.
+
+* Fix HMM initilization in `roh` when snapshots are used in multiple
+  chromosome VCF.
+
+* Fix buffer overflow (#607) in `filter`.
+
 
 ## Release 1.4.1 (8 May 2017)
 
diff --git a/bam2bcf.c b/bam2bcf.c
index b4fb7f1..c8dc91b 100644
--- a/bam2bcf.c
+++ b/bam2bcf.c
@@ -168,27 +168,36 @@ int bcf_call_glfgen(int _n, const bam_pileup1_t *pl, int ref_base, bcf_callaux_t
     for (i = n = 0; i < _n; ++i) {
         const bam_pileup1_t *p = pl + i;
         int q, b, mapQ, baseQ, is_diff, min_dist, seqQ;
-        // set base
-        if (p->is_del || p->is_refskip || (p->b->core.flag&BAM_FUNMAP)) continue;
+        if (p->is_refskip || (p->b->core.flag&BAM_FUNMAP)) continue;
+        if (p->is_del && !is_indel) continue;
         ++ori_depth;
+        if (is_indel)
+        {
+            b     = p->aux>>16&0x3f;
+            baseQ = q = p->aux&0xff;
+            // This read is not counted as indel. Instead of skipping it, treat it as ref. It is
+            // still only an approximation, but gives more accurate AD counts and calls correctly
+            // hets instead of alt-homs in some cases (see test/mpileup/indel-AD.1.sam)
+            if ( q < bca->min_baseQ ) b = 0, q = (int)bam_get_qual(p->b)[p->qpos];
+            seqQ  = p->aux>>8&0xff;
+            is_diff = (b != 0);
+        }
+        else
+        {
+            b = bam_seqi(bam_get_seq(p->b), p->qpos); // base
+            b = seq_nt16_int[b? b : ref_base]; // b is the 2-bit base
+            baseQ = q = (int)bam_get_qual(p->b)[p->qpos];
+            if (q < bca->min_baseQ) continue;
+            seqQ  = 99;
+            is_diff = (ref4 < 4 && b == ref4)? 0 : 1;
+        }
         mapQ  = p->b->core.qual < 255? p->b->core.qual : DEF_MAPQ; // special case for mapQ==255
         if ( !mapQ ) r->mq0++;
-        baseQ = q = is_indel? p->aux&0xff : (int)bam_get_qual(p->b)[p->qpos]; // base/indel quality
-        seqQ = is_indel? (p->aux>>8&0xff) : 99;
-        if (q < bca->min_baseQ) continue;
         if (q > seqQ) q = seqQ;
         mapQ = mapQ < bca->capQ? mapQ : bca->capQ;
         if (q > mapQ) q = mapQ;
         if (q > 63) q = 63;
         if (q < 4) q = 4;       // MQ=0 reads count as BQ=4
-        if (!is_indel) {
-            b = bam_seqi(bam_get_seq(p->b), p->qpos); // base
-            b = seq_nt16_int[b? b : ref_base]; // b is the 2-bit base
-            is_diff = (ref4 < 4 && b == ref4)? 0 : 1;
-        } else {
-            b = p->aux>>16&0x3f;
-            is_diff = (b != 0);
-        }
         bca->bases[n++] = q<<5 | (int)bam_is_rev(p->b)<<4 | b;
         // collect annotations
         if (b < 4)
diff --git a/bam2bcf_indel.c b/bam2bcf_indel.c
index 52837b5..6c367da 100644
--- a/bam2bcf_indel.c
+++ b/bam2bcf_indel.c
@@ -357,14 +357,14 @@ int bcf_call_gap_prep(int n, int *n_plp, bam_pileup1_t **plp, int pos, bcf_calla
                     }
                     free(qq);
                 }
-/*
+#if 0
                 for (l = 0; l < tend - tbeg + abs(types[t]); ++l)
                     fputc("ACGTN"[(int)ref2[tbeg-left+l]], stderr);
                 fputc('\n', stderr);
                 for (l = 0; l < qend - qbeg; ++l) fputc("ACGTN"[(int)query[l]], stderr);
                 fputc('\n', stderr);
-                fprintf(stderr, "pos=%d type=%d read=%d:%d name=%s qbeg=%d tbeg=%d score=%d\n", pos, types[t], s, i, bam1_qname(p->b), qbeg, tbeg, sc);
-*/
+                fprintf(stderr, "pos=%d type=%d read=%d:%d name=%s qbeg=%d tbeg=%d score=%d\n", pos, types[t], s, i, bam_get_qname(p->b), qbeg, tbeg, sc);
+#endif
             }
         }
     }
@@ -454,7 +454,7 @@ int bcf_call_gap_prep(int n, int *n_plp, bam_pileup1_t **plp, int pos, bcf_calla
                     if (x == bca->indel_types[j]) break;
                 p->aux = j<<16 | (j == 4? 0 : (p->aux&0xffff));
                 if ((p->aux>>16&0x3f) > 0) ++n_alt;
-                //fprintf(stderr, "X pos=%d read=%d:%d name=%s call=%d type=%d seqQ=%d indelQ=%d\n", pos, s, i, bam1_qname(p->b), (p->aux>>16)&0x3f, bca->indel_types[(p->aux>>16)&0x3f], (p->aux>>8)&0xff, p->aux&0xff);
+                //fprintf(stderr, "X pos=%d read=%d:%d name=%s call=%d type=%d seqQ=%d indelQ=%d\n", pos, s, i, bam_get_qname(p->b), (p->aux>>16)&0x3f, bca->indel_types[(p->aux>>16)&0x3f], (p->aux>>8)&0xff, p->aux&0xff);
             }
         }
 
diff --git a/bcftools.h b/bcftools.h
index 7d2d49f..dde3ab0 100644
--- a/bcftools.h
+++ b/bcftools.h
@@ -63,6 +63,12 @@ static inline char gt2iupac(char a, char b)
     return iupac[(int)a][(int)b];
 }
 
+static inline char nt_to_upper(char nt)
+{
+    if ( nt < 97 ) return nt;
+    return nt - 32;
+}
+
 static inline double phred_score(double prob)
 {
     if ( prob==0 ) return 99;
diff --git a/config.mk.in b/config.mk.in
new file mode 100644
index 0000000..df70d55
--- /dev/null
+++ b/config.mk.in
@@ -0,0 +1,63 @@
+#  Optional configure Makefile overrides for bcftools.
+#
+#    Copyright (C) 2015,2017 Genome Research Ltd.
+#
+#    Author: John Marshall <jm18 at sanger.ac.uk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# This is @configure_input@
+#
+# If you use configure, this file overrides variables and augments rules
+# in the Makefile to reflect your configuration choices.  If you don't run
+# configure, the main Makefile contains suitable conservative defaults.
+
+prefix       = @prefix@
+exec_prefix  = @exec_prefix@
+bindir       = @bindir@
+datarootdir  = @datarootdir@
+mandir       = @mandir@
+
+CC       = @CC@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS   = @CFLAGS@
+LDFLAGS  = @LDFLAGS@
+LIBS     = @LIBS@
+
+DYNAMIC_FLAGS = @CC_RDYNAMIC_OPT@
+
+USE_GPL = @USE_GPL@
+GSL_LIBS = @GSL_LIBS@
+
+PLATFORM   = @PLATFORM@
+PLUGINS_ENABLED = @enable_bcftools_plugins@
+plugindir = @bcf_plugindir@
+PLUGIN_EXT = @PLUGIN_EXT@
+
+ at Hsource@HTSDIR = @HTSDIR@
+ at Hsource@include $(HTSDIR)/htslib.mk
+ at Hsource@include $(HTSDIR)/htslib_static.mk
+ at Hsource@HTSLIB = $(HTSDIR)/libhts.a
+ at Hsource@HTSLIB_LIB = $(HTSLIB) $(HTSLIB_static_LIBS)
+ at Hsource@HTSLIB_LDFLAGS = $(HTSLIB_static_LDFLAGS)
+ at Hsource@BGZIP = $(HTSDIR)/bgzip
+ at Hsource@TABIX = $(HTSDIR)/tabix
+HTSLIB_CPPFLAGS = @HTSLIB_CPPFLAGS@
+ at Hinstall@HTSLIB_LDFLAGS = @HTSLIB_LDFLAGS@
+ at Hinstall@HTSLIB_LIB = -lhts
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..256264f
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,218 @@
+# Configure script for bcftools, utilities for VCF/BCF files.
+#
+#    Copyright (C) 2015,2017 Genome Research Ltd.
+#
+#    Author: John Marshall <jm18 at sanger.ac.uk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+dnl Process this file with autoconf to produce a configure script
+AC_INIT([BCFtools], m4_esyscmd_s([make print-version]),
+        [samtools-help at lists.sourceforge.net], [], [http://www.htslib.org/])
+AC_PREREQ([2.63])  dnl This version introduced 4-argument AC_CHECK_HEADER
+AC_CONFIG_SRCDIR([main.c])
+AC_CONFIG_HEADERS([config.h])
+
+m4_include([m4/ax_with_htslib.m4])
+
+dnl Copyright notice to be copied into the generated configure script
+AC_COPYRIGHT([Portions copyright (C) 2015,2017 Genome Research Ltd.
+
+This configure script is free software: you are free to change and
+redistribute it.  There is NO WARRANTY, to the extent permitted by law.])
+
+AC_PROG_CC
+
+AC_SYS_LARGEFILE
+
+AC_ARG_ENABLE([bcftools-plugins],
+  [AS_HELP_STRING([--disable-bcftools-plugins],
+                  [do not build optional plugins])],
+  [], [enable_bcftools_plugins=yes])
+AC_SUBST(enable_bcftools_plugins)
+
+AC_ARG_WITH([bcf-plugin-dir],
+  [AS_HELP_STRING([--with-bcf-plugin-dir=DIR],
+                  [plugin installation location [LIBEXECDIR/bcftools]])],
+  [case $withval in
+     yes|no) AC_MSG_ERROR([no directory specified for --with-plugin-dir]) ;;
+   esac],
+   [with_bcf_plugin_dir='$(libexecdir)/bcftools'])
+AC_SUBST([bcf_plugindir], $with_bcf_plugin_dir)
+
+AC_ARG_WITH([bcf-plugin-path],
+  [AS_HELP_STRING([--with-bcf-plugin-path=PATH],
+                  [default BCFTOOLS_PLUGINS plugin search path [PLUGINDIR]])],
+  [case $withval in
+     yes) AC_MSG_ERROR([no path specified for --with-bcf-plugin-path]) ;;
+     no)  with_bcf_plugin_path= ;;
+   esac],
+  [with_bcf_plugin_path=$with_bcf_plugin_dir])
+AC_SUBST([PLUGINPATH], $with_bcf_plugin_path)
+
+AC_ARG_ENABLE([libgsl],
+  [AS_HELP_STRING([--enable-libgsl],
+                  [build options that require the GNU scientific library (changes bcftools license to GPL, see INSTALL for details)])],
+  [], [enable_libgsl=no])
+
+AC_ARG_WITH([cblas],
+  [AS_HELP_STRING([--with-cblas],
+                  [which cblas library to use (only needed with libgsl; default: try cblas then gslcblas)])],
+  [AS_CASE([$withval],
+	   [no],[AC_MSG_ERROR([no library name specified for --with-cblas])])],
+  [with_cblas=yes])
+
+AX_WITH_HTSLIB
+if test "$ax_cv_htslib" != yes; then
+  AC_MSG_ERROR([HTSlib development files not found
+
+BCFtools uses HTSlib to parse bioinformatics file formats etc.  Building it
+requires an unpacked HTSlib source tree (which will be built in conjunction
+with bcftools) or a previously-installed HTSlib.  In either case you may
+need to configure --with-htslib=DIR to locate the appropriate HTSlib.
+
+FAILED.  You must supply an HTSlib in order to build bcftools successfully.])
+fi
+
+if test "$ax_cv_htslib_which" = source; then
+  Hsource=
+  Hinstall='#'
+else
+  Hsource='#'
+  Hinstall=
+fi
+AC_SUBST([Hsource])
+AC_SUBST([Hinstall])
+
+AS_IF([test "$enable_bcftools_plugins" != "no"], [dnl
+  AC_MSG_CHECKING([shared library type])
+  test -n "$host_alias" || host_alias=unknown-`uname -s`
+  AS_CASE([$host_alias],
+    [*-cygwin* | *-CYGWIN*],[dnl
+      host_result="Cygwin DLL"
+      PLATFORM=CYGWIN
+      PLUGIN_EXT=.cygdll],
+
+    [*-darwin* | *-Darwin*],[dnl
+      host_result="Darwin dylib"
+      PLATFORM=Darwin
+      PLUGIN_EXT=.so],
+
+    [*],[dnl
+      host_result="plain .so"
+      PLATFORM=default
+      PLUGIN_EXT=.so])
+  AC_MSG_RESULT([$host_result])
+  AC_SUBST([PLATFORM])
+  AC_SUBST([PLUGIN_EXT])
+  AC_DEFINE_UNQUOTED([PLUGIN_EXT], ["$PLUGIN_EXT"],
+                     [Platform-dependent plugin filename extension.])
+  AC_DEFINE([ENABLE_BCF_PLUGINS], 1,
+            [Define if BCFtools should enable plugins.])
+
+  AC_SEARCH_LIBS([dlopen], [dl], [],
+    [AC_MSG_ERROR([dlopen() not found
+
+Plugin support requires dynamic linking facilities from the operating system.
+Either configure with --disable-bcftools-plugins or resolve this error to
+build bcftools.])])
+
+  AC_MSG_CHECKING([if the compiler accepts -rdynamic])
+  save_CFLAGS=$CFLAGS
+  CFLAGS="$CFLAGS -rdynamic"
+  AC_LINK_IFELSE([AC_LANG_PROGRAM()],[cc_rdynamic=yes],[cc_rdynamic=no])
+  CFLAGS=$save_CFLAGS
+  AC_MSG_RESULT([$cc_rdynamic])
+  AS_IF([test "$cc_rdynamic" = "yes"],dnl
+    [CC_RDYNAMIC_OPT=-rdynamic],[CC_RDYNAMIC_OPT=])
+  AC_SUBST([CC_RDYNAMIC_OPT])
+])
+
+save_LIBS=$LIBS
+zlib_devel=ok
+dnl Set a trivial non-empty INCLUDES to avoid excess default includes tests
+AC_CHECK_HEADER([zlib.h], [], [zlib_devel=missing], [;])
+AC_CHECK_LIB(z, inflate,  [], [zlib_devel=missing])
+LIBS=$save_LIBS
+
+if test $zlib_devel != ok; then
+  AC_MSG_ERROR([zlib development files not found
+
+BCFtools uses compression routines from the zlib library <http://zlib.net>.
+Building bcftools requires zlib development files to be installed on the build
+machine; you may need to ensure a package such as zlib1g-dev (on Debian or
+Ubuntu Linux) or zlib-devel (on RPM-based Linux distributions) is installed.
+
+FAILED.  This error must be resolved in order to build bcftools successfully.])
+fi
+
+AS_IF([test "$enable_libgsl" != "no"], [dnl
+  gsl_devel=ok
+  save_LIBS="$LIBS"dnl Libraries for GSL are listed in $(GSL_LIBS)
+  GSL_LIBS=
+  AC_CHECK_HEADER([gsl/gsl_version.h], [], [gsl_devel=missing], [;])
+  AS_IF([test "$gsl_devel" != "missing"], [dnl
+    AS_CASE([$with_cblas],
+      [yes],[AC_SEARCH_LIBS([cblas_dgemm],[cblas gslcblas],
+              [GSL_LIBS="$ac_cv_search_cblas_dgemm"],
+              [gsl_devel=missing])],
+      [AC_CHECK_LIB([$with_cblas],[cblas_dgemm],
+         [GSL_LIBS="-l$with_cblas"],[gsl_devel=missing])])
+  ])
+  AS_IF([test "$gsl_devel" != "missing"], [dnl
+    AC_CHECK_LIB(gsl, gsl_multifit_gradient,
+      [GSL_LIBS="-lgsl $GSL_LIBS"], [gsl_devel=missing], [$GSL_LIBS])
+  ])
+
+  AS_IF([test "$gsl_devel" != "ok"], [dnl
+    AC_MSG_ERROR([libgsl development files not found
+
+The bcftools polysomy command uses routines from the GNU Scientific library
+<https://www.gnu.org/software/gsl/>.  Building BCFtools with libgsl enabled
+requires libgsl development files to be installed on the build machine; you
+may need to ensure a package such as libgsl0-dev (on Debian or Ubuntu linux)
+or gsl-devel (on RPM-based Linux distributions) is installed.
+
+Either configure with --disable-libgsl or resolve this error to build bcftools.
+    ])
+  ])
+
+  LIBS="$save_LIBS"
+  USE_GPL=1
+  AC_SUBST([USE_GPL])
+  AC_SUBST([GSL_LIBS])
+])
+
+AC_CONFIG_FILES([config.mk])
+AC_OUTPUT
+
+AS_IF([test "x$USE_GPL" != "x"], [dnl
+  AC_MSG_NOTICE([License has been changed to GPL.
+
+Linking against the GNU scientific library requires that the resulting
+binary is licensed using the GNU General Public License.  In particular,
+this means you will have to follow the terms of this license in order
+to distribute binary copies.  For more information see the INSTALL file.
+
+Text of the GNU General Public License can be found in the LICENSE file,
+or at http://www.gnu.org/copyleft/gpl.html
+
+Information on the GNU Scientific Library, including the rationale for
+its choice of license can be found at https://www.gnu.org/software/gsl/
+])])
diff --git a/consensus.c b/consensus.c
index 4fccc4f..258ef14 100644
--- a/consensus.c
+++ b/consensus.c
@@ -536,13 +536,14 @@ static void consensus(args_t *args)
     {
         if ( str.s[0]=='>' )
         {
-            // new sequence encountered, apply all cached variants
+            // new sequence encountered
+            if (args->chain) {
+                print_chain(args);
+                destroy_chain(args);
+            }
+            // apply all cached variants
             while ( args->vcf_rbuf.n )
             {
-                if (args->chain) {
-                    print_chain(args);
-                    destroy_chain(args);
-                }
                 bcf1_t *rec = args->vcf_buf[args->vcf_rbuf.f];
                 if ( rec->rid!=args->rid || ( args->fa_end_pos && rec->pos > args->fa_end_pos ) ) break;
                 int i = rbuf_shift(&args->vcf_rbuf);
diff --git a/doc/bcftools.1 b/doc/bcftools.1
index 3999217..0df9450 100644
--- a/doc/bcftools.1
+++ b/doc/bcftools.1
@@ -2,12 +2,12 @@
 .\"     Title: bcftools
 .\"    Author: [see the "AUTHORS" section]
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date: 2017-05-08
+.\"      Date: 2017-06-21
 .\"    Manual: \ \&
 .\"    Source: \ \&
 .\"  Language: English
 .\"
-.TH "BCFTOOLS" "1" "2017\-05\-08" "\ \&" "\ \&"
+.TH "BCFTOOLS" "1" "2017\-06\-21" "\ \&" "\ \&"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -41,7 +41,7 @@ Most commands accept VCF, bgzipped VCF and BCF with filetype detected automatica
 BCFtools is designed to work on a stream\&. It regards an input file "\-" as the standard input (stdin) and outputs to the standard output (stdout)\&. Several commands can thus be combined with Unix pipes\&.
 .SS "VERSION"
 .sp
-This manual page was last updated \fB2017\-05\-08\fR and refers to bcftools git version \fB1\&.4\&.1\fR\&.
+This manual page was last updated \fB2017\-06\-21\fR and refers to bcftools git version \fB1\&.5\fR\&.
 .SS "BCF1"
 .sp
 The BCF1 format output by versions of samtools <= 0\&.1\&.19 is \fBnot\fR compatible with this version of bcftools\&. To read BCF1 files one can use the view command from old versions of bcftools packaged with samtools versions <= 0\&.1\&.19 to convert to VCF, which can then be read by this version of bcftools\&.
@@ -1495,19 +1495,19 @@ reference sequence in fasta format\&. Must be indexed with samtools faidx
 .nr an-break-flag 1
 .br
 .ps +1
-\fBHAPS/SAMPLE conversion:\fR
+\fBHAP/SAMPLE conversion:\fR
 .RS 4
 .PP
-\fB\-\-hapsample2vcf\fR \fIprefix\fR or \fIhaps\-file\fR,\fIsample\-file\fR
+\fB\-\-hapsample2vcf\fR \fIprefix\fR or \fIhap\-file\fR,\fIsample\-file\fR
 .RS 4
-convert from haps/sample format to VCF\&. The columns of \&.haps file are similar to \&.gen file above, but there are only two haplotype columns per sample\&. Note that the first column of the haps file is expected to be in the form "CHR:POS_REF_ALT(_END)?", with the _END being optional for defining the INFO/END tag when ALT is a symbolic allele, for example:
+convert from hap/sample format to VCF\&. The columns of \&.hap file are similar to \&.gen file above, but there are only two haplotype columns per sample\&. Note that the first column of the \&.hap file is expected to be in the form "CHR:POS_REF_ALT(_END)?", with the _END being optional for defining the INFO/END tag when ALT is a symbolic allele, for example:
 .RE
 .sp
 .if n \{\
 .RS 4
 .\}
 .nf
-  \&.haps
+  \&.hap
   \-\-\-\-
   1:111485207_G_A rsID1 111485207 G A 0 1 0 0
   1:111494194_C_T rsID2 111494194 C T 0 1 0 0
@@ -1517,9 +1517,9 @@ convert from haps/sample format to VCF\&. The columns of \&.haps file are simila
 .RE
 .\}
 .PP
-\fB\-\-hapsample\fR \fIprefix\fR or \fIhaps\-file\fR,\fIsample\-file\fR
+\fB\-\-hapsample\fR \fIprefix\fR or \fIhap\-file\fR,\fIsample\-file\fR
 .RS 4
-convert from VCF to haps/sample format used by IMPUTE2 and SHAPEIT\&. The columns of \&.haps file begin with ID,RSID,POS,REF,ALT\&. In order to prevent strand swaps, the program uses IDs of the form "CHROM:POS_REF_ALT"\&.
+convert from VCF to hap/sample format used by IMPUTE2 and SHAPEIT\&. The columns of \&.hap file begin with ID,RSID,POS,REF,ALT\&. In order to prevent strand swaps, the program uses IDs of the form "CHROM:POS_REF_ALT"\&.
 .RE
 .PP
 \fB\-\-haploid2diploid\fR
@@ -1559,26 +1559,26 @@ output VCF IDs instead of "CHROM:POS_REF_ALT" IDs
 .nr an-break-flag 1
 .br
 .ps +1
-\fBHAPS/LEGEND/SAMPLE conversion:\fR
+\fBHAP/LEGEND/SAMPLE conversion:\fR
 .RS 4
 .PP
-\fB\-H, \-\-haplegendsample2vcf\fR \fIprefix\fR or \fIhaps\-file\fR,\fIlegend\-file\fR,\fIsample\-file\fR
+\fB\-H, \-\-haplegendsample2vcf\fR \fIprefix\fR or \fIhap\-file\fR,\fIlegend\-file\fR,\fIsample\-file\fR
 .RS 4
-convert from haps/legend/sample format used by IMPUTE2 to VCF, see also
+convert from hap/legend/sample format used by IMPUTE2 to VCF, see also
 \fB\-h, \-\-hapslegendsample\fR
 below\&.
 .RE
 .PP
-\fB\-h, \-\-haplegendsample\fR \fIprefix\fR or \fIhaps\-file\fR,\fIlegend\-file\fR,\fIsample\-file\fR
+\fB\-h, \-\-haplegendsample\fR \fIprefix\fR or \fIhap\-file\fR,\fIlegend\-file\fR,\fIsample\-file\fR
 .RS 4
-convert from VCF to haps/legend/sample format used by IMPUTE2 and SHAPEIT\&. The columns of \&.legend file ID,POS,REF,ALT\&. In order to prevent strand swaps, the program uses IDs of the form "CHROM:POS_REF_ALT"\&. The \&.sample file is quite basic at the moment with columns for population, group and sex expected to be edited by the user\&. For example:
+convert from VCF to hap/legend/sample format used by IMPUTE2 and SHAPEIT\&. The columns of \&.legend file ID,POS,REF,ALT\&. In order to prevent strand swaps, the program uses IDs of the form "CHROM:POS_REF_ALT"\&. The \&.sample file is quite basic at the moment with columns for population, group and sex expected to be edited by the user\&. For example:
 .RE
 .sp
 .if n \{\
 .RS 4
 .\}
 .nf
-  \&.haps
+  \&.hap
   \-\-\-\-\-
   0 1 0 0 1 0
   0 1 0 0 0 1
@@ -4547,13 +4547,13 @@ MAX, MIN, AVG, SUM, STRLEN, ABS
 .sp -1
 .IP \(bu 2.3
 .\}
-variables calculated on the fly if not present: number of alternate alleles; number of samples; count of alternate alleles; minor allele count (similar to AC but is always smaller than 0\&.5); frequency of alternate alleles (AF=AC/AN); frequency of minor alleles (MAF=MAC/AN); number of alleles in called genotypes
+variables calculated on the fly if not present: number of alternate alleles; number of samples; count of alternate alleles; minor allele count (similar to AC but is always smaller than 0\&.5); frequency of alternate alleles (AF=AC/AN); frequency of minor alleles (MAF=MAC/AN); number of alleles in called genotypes; number of samples with missing genotype; fraction of samples with missing genotype
 .sp
 .if n \{\
 .RS 4
 .\}
 .nf
-N_ALT, N_SAMPLES, AC, MAC, AF, MAF, AN
+N_ALT, N_SAMPLES, AC, MAC, AF, MAF, AN, N_MISSING, F_MISSING
 .fi
 .if n \{\
 .RE
diff --git a/doc/bcftools.html b/doc/bcftools.html
index c178294..5104307 100644
--- a/doc/bcftools.html
+++ b/doc/bcftools.html
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>bcftools</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /></head><body><div xml:lang="en" class="refentry" title="bcftools" lang="en"><a id="idp162448"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bcftools — utilities for variant calling and manipula [...]
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>bcftools</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /></head><body><div xml:lang="en" class="refentry" title="bcftools" lang="en"><a id="idp25137632"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bcftools — utilities for variant calling and manipu [...]
 Call Format (VCF) and its binary counterpart BCF. All commands work
 transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.</p><p>Most commands accept VCF, bgzipped VCF and BCF with filetype detected
 automatically even when streaming from a pipe. Indexed VCF and BCF
@@ -8,7 +8,7 @@ will work in all situations. Un-indexed VCF and BCF and streams will
 work in most, but not all situations. In general, whenever multiple VCFs are
 read simultaneously, they must be indexed and therefore also compressed.</p><p>BCFtools is designed to work on a stream. It regards an input file "-" as the
 standard input (stdin) and outputs to the standard output (stdout). Several
-commands can thus be  combined  with  Unix pipes.</p><div class="refsect2" title="VERSION"><a id="_version"></a><h3>VERSION</h3><p>This manual page was last updated <span class="strong"><strong>2017-05-08</strong></span> and refers to bcftools git version <span class="strong"><strong>1.4.1</strong></span>.</p></div><div class="refsect2" title="BCF1"><a id="_bcf1"></a><h3>BCF1</h3><p>The BCF1 format output by versions of samtools <= 0.1.19 is <span class="strong"><strong>not</strong></span>
+commands can thus be  combined  with  Unix pipes.</p><div class="refsect2" title="VERSION"><a id="_version"></a><h3>VERSION</h3><p>This manual page was last updated <span class="strong"><strong>2017-06-21</strong></span> and refers to bcftools git version <span class="strong"><strong>1.5</strong></span>.</p></div><div class="refsect2" title="BCF1"><a id="_bcf1"></a><h3>BCF1</h3><p>The BCF1 format output by versions of samtools <= 0.1.19 is <span class="strong"><strong>not</strong></span>
 compatible with this version of bcftools. To read BCF1 files one can use
 the view command from old versions of bcftools packaged with samtools
 versions <= 0.1.19 to convert to VCF, which can then be read by
@@ -849,23 +849,23 @@ depth information, such as INFO/AD or FORMAT/AD. For that, consider using the
 <span class="strong"><strong>-f, --fasta-ref</strong></span> <span class="emphasis"><em>file</em></span>
 </span></dt><dd>
     reference sequence in fasta format. Must be indexed with samtools faidx
-</dd></dl></div></div><div class="refsect3" title="HAPS/SAMPLE conversion:"><a id="_haps_sample_conversion"></a><h4>HAPS/SAMPLE conversion:</h4><div class="variablelist"><dl><dt><span class="term">
-<span class="strong"><strong>--hapsample2vcf</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>haps-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
+</dd></dl></div></div><div class="refsect3" title="HAP/SAMPLE conversion:"><a id="_hap_sample_conversion"></a><h4>HAP/SAMPLE conversion:</h4><div class="variablelist"><dl><dt><span class="term">
+<span class="strong"><strong>--hapsample2vcf</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>hap-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
 </span></dt><dd>
-    convert from haps/sample format to VCF. The columns of .haps file are
+    convert from hap/sample format to VCF. The columns of .hap file are
     similar to .gen file above, but there are only two haplotype columns per
-    sample. Note that the first column of the haps file is expected to be in
+    sample. Note that the first column of the .hap file is expected to be in
     the form "CHR:POS_REF_ALT(_END)?", with the _END being optional for
     defining the INFO/END tag when ALT is a symbolic allele, for example:
-</dd></dl></div><pre class="screen">  .haps
+</dd></dl></div><pre class="screen">  .hap
   ----
   1:111485207_G_A rsID1 111485207 G A 0 1 0 0
   1:111494194_C_T rsID2 111494194 C T 0 1 0 0
   1:111495231_A_<DEL>_111495784 rsID3 111495231 A <DEL> 0 0 1 0</pre><div class="variablelist"><dl><dt><span class="term">
-<span class="strong"><strong>--hapsample</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>haps-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
+<span class="strong"><strong>--hapsample</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>hap-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
 </span></dt><dd>
-    convert from VCF to haps/sample format used by IMPUTE2 and SHAPEIT.
-    The columns of .haps file begin with ID,RSID,POS,REF,ALT. In order to
+    convert from VCF to hap/sample format used by IMPUTE2 and SHAPEIT.
+    The columns of .hap file begin with ID,RSID,POS,REF,ALT. In order to
     prevent strand swaps, the program uses IDs of the form
     "CHROM:POS_REF_ALT".
 </dd><dt><span class="term">
@@ -884,20 +884,20 @@ depth information, such as INFO/AD or FORMAT/AD. For that, consider using the
 <span class="strong"><strong>--vcf-ids</strong></span>
 </span></dt><dd>
     output VCF IDs instead of "CHROM:POS_REF_ALT" IDs
-</dd></dl></div></div><div class="refsect3" title="HAPS/LEGEND/SAMPLE conversion:"><a id="_haps_legend_sample_conversion"></a><h4>HAPS/LEGEND/SAMPLE conversion:</h4><div class="variablelist"><dl><dt><span class="term">
-<span class="strong"><strong>-H, --haplegendsample2vcf</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>haps-file</em></span>,<span class="emphasis"><em>legend-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
+</dd></dl></div></div><div class="refsect3" title="HAP/LEGEND/SAMPLE conversion:"><a id="_hap_legend_sample_conversion"></a><h4>HAP/LEGEND/SAMPLE conversion:</h4><div class="variablelist"><dl><dt><span class="term">
+<span class="strong"><strong>-H, --haplegendsample2vcf</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>hap-file</em></span>,<span class="emphasis"><em>legend-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
 </span></dt><dd>
-    convert from haps/legend/sample format used by IMPUTE2 to VCF, see
+    convert from hap/legend/sample format used by IMPUTE2 to VCF, see
     also <span class="strong"><strong>-h, --hapslegendsample</strong></span> below.
 </dd><dt><span class="term">
-<span class="strong"><strong>-h, --haplegendsample</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>haps-file</em></span>,<span class="emphasis"><em>legend-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
+<span class="strong"><strong>-h, --haplegendsample</strong></span> <span class="emphasis"><em>prefix</em></span> or <span class="emphasis"><em>hap-file</em></span>,<span class="emphasis"><em>legend-file</em></span>,<span class="emphasis"><em>sample-file</em></span>
 </span></dt><dd>
-    convert from VCF to haps/legend/sample format used by IMPUTE2 and SHAPEIT.
+    convert from VCF to hap/legend/sample format used by IMPUTE2 and SHAPEIT.
     The columns of .legend file ID,POS,REF,ALT. In order to prevent strand
     swaps, the program uses IDs of the form "CHROM:POS_REF_ALT". The .sample
     file is quite basic at the moment with columns for population, group and
     sex expected to be edited by the user. For example:
-</dd></dl></div><pre class="screen">  .haps
+</dd></dl></div><pre class="screen">  .hap
   -----
   0 1 0 0 1 0
   0 1 0 0 0 1
@@ -2623,8 +2623,9 @@ function on FORMAT tags (over samples) and INFO tags (over vector fields)
 variables calculated on the fly if not present: number of alternate alleles;
 number of samples; count of alternate alleles; minor allele count (similar to
 AC but is always smaller than 0.5); frequency of alternate alleles (AF=AC/AN);
-frequency of minor alleles (MAF=MAC/AN); number of alleles in called genotypes
-</p><pre class="literallayout">N_ALT, N_SAMPLES, AC, MAC, AF, MAF, AN</pre></li></ul></div><div class="itemizedlist" title="Notes:"><p class="title"><strong>Notes:</strong></p><ul class="itemizedlist" type="disc"><li class="listitem">
+frequency of minor alleles (MAF=MAC/AN); number of alleles in called genotypes;
+number of samples with missing genotype; fraction of samples with missing genotype
+</p><pre class="literallayout">N_ALT, N_SAMPLES, AC, MAC, AF, MAF, AN, N_MISSING, F_MISSING</pre></li></ul></div><div class="itemizedlist" title="Notes:"><p class="title"><strong>Notes:</strong></p><ul class="itemizedlist" type="disc"><li class="listitem">
 String comparisons and regular expressions are case-insensitive
 </li><li class="listitem">
 If the subscript "*" is used in regular expression search, the
diff --git a/doc/bcftools.txt b/doc/bcftools.txt
index e625665..a6ef03b 100644
--- a/doc/bcftools.txt
+++ b/doc/bcftools.txt
@@ -869,24 +869,24 @@ depth information, such as INFO/AD or FORMAT/AD. For that, consider using the
     reference sequence in fasta format. Must be indexed with samtools faidx
 
 
-==== HAPS/SAMPLE conversion:
-*--hapsample2vcf* 'prefix' or 'haps-file','sample-file'::
-    convert from haps/sample format to VCF. The columns of .haps file are
+==== HAP/SAMPLE conversion:
+*--hapsample2vcf* 'prefix' or 'hap-file','sample-file'::
+    convert from hap/sample format to VCF. The columns of .hap file are
     similar to .gen file above, but there are only two haplotype columns per
-    sample. Note that the first column of the haps file is expected to be in
+    sample. Note that the first column of the .hap file is expected to be in
     the form "CHR:POS_REF_ALT(_END)?", with the _END being optional for
     defining the INFO/END tag when ALT is a symbolic allele, for example:
 ----
-  .haps
+  .hap
   ----
   1:111485207_G_A rsID1 111485207 G A 0 1 0 0
   1:111494194_C_T rsID2 111494194 C T 0 1 0 0
   1:111495231_A_<DEL>_111495784 rsID3 111495231 A <DEL> 0 0 1 0
 ----
 
-*--hapsample* 'prefix' or 'haps-file','sample-file'::
-    convert from VCF to haps/sample format used by IMPUTE2 and SHAPEIT.
-    The columns of .haps file begin with ID,RSID,POS,REF,ALT. In order to
+*--hapsample* 'prefix' or 'hap-file','sample-file'::
+    convert from VCF to hap/sample format used by IMPUTE2 and SHAPEIT.
+    The columns of .hap file begin with ID,RSID,POS,REF,ALT. In order to
     prevent strand swaps, the program uses IDs of the form
     "CHROM:POS_REF_ALT".
 
@@ -906,19 +906,19 @@ depth information, such as INFO/AD or FORMAT/AD. For that, consider using the
 *--vcf-ids*::
     output VCF IDs instead of "CHROM:POS_REF_ALT" IDs
 
-==== HAPS/LEGEND/SAMPLE conversion:
-*-H, --haplegendsample2vcf* 'prefix' or 'haps-file','legend-file','sample-file'::
-    convert from haps/legend/sample format used by IMPUTE2 to VCF, see
+==== HAP/LEGEND/SAMPLE conversion:
+*-H, --haplegendsample2vcf* 'prefix' or 'hap-file','legend-file','sample-file'::
+    convert from hap/legend/sample format used by IMPUTE2 to VCF, see
     also *-h, --hapslegendsample* below.
 
-*-h, --haplegendsample* 'prefix' or 'haps-file','legend-file','sample-file'::
-    convert from VCF to haps/legend/sample format used by IMPUTE2 and SHAPEIT.
+*-h, --haplegendsample* 'prefix' or 'hap-file','legend-file','sample-file'::
+    convert from VCF to hap/legend/sample format used by IMPUTE2 and SHAPEIT.
     The columns of .legend file ID,POS,REF,ALT. In order to prevent strand
     swaps, the program uses IDs of the form "CHROM:POS_REF_ALT". The .sample
     file is quite basic at the moment with columns for population, group and
     sex expected to be edited by the user. For example:
 ----
-  .haps
+  .hap
   -----
   0 1 0 0 1 0
   0 1 0 0 0 1
@@ -2669,9 +2669,10 @@ to require that all alleles are of the given type. Compare
 * variables calculated on the fly if not present: number of alternate alleles;
 number of samples; count of alternate alleles; minor allele count (similar to
 AC but is always smaller than 0.5); frequency of alternate alleles (AF=AC/AN);
-frequency of minor alleles (MAF=MAC/AN); number of alleles in called genotypes
+frequency of minor alleles (MAF=MAC/AN); number of alleles in called genotypes;
+number of samples with missing genotype; fraction of samples with missing genotype
 
-        N_ALT, N_SAMPLES, AC, MAC, AF, MAF, AN
+        N_ALT, N_SAMPLES, AC, MAC, AF, MAF, AN, N_MISSING, F_MISSING
 
 
 .Notes:
diff --git a/filter.c b/filter.c
index 463028f..78ff1f1 100644
--- a/filter.c
+++ b/filter.c
@@ -698,6 +698,40 @@ static void filters_set_alt_string(filter_t *flt, bcf1_t *line, token_t *tok)
     tok->values[0] = str.m;
     tok->str_value = str.s;
 }
+static void filters_set_nmissing(filter_t *flt, bcf1_t *line, token_t *tok)
+{
+    bcf_unpack(line, BCF_UN_FMT);
+    if ( !line->n_sample )
+    {
+        tok->nvalues = 1;
+        tok->values[0] = 0;
+        return;
+    }
+
+    int i,igt = bcf_hdr_id2int(flt->hdr, BCF_DT_ID, "GT");
+    bcf_fmt_t *fmt = NULL;
+    for (i=0; i<line->n_fmt; i++)
+        if ( line->d.fmt[i].id==igt ) { fmt = &line->d.fmt[i]; break; }
+    if ( !fmt )
+    {
+        tok->nvalues = 0;
+        return;
+    }
+    if ( fmt->type!=BCF_BT_INT8 ) error("TODO: the GT fmt_type is not int8\n");
+
+    int j,nmissing = 0;
+    for (i=0; i<line->n_sample; i++)
+    {
+        int8_t *ptr = (int8_t*) (fmt->p + i*fmt->size);
+        for (j=0; j<fmt->n; j++)
+        {
+            if ( ptr[j]==bcf_int8_vector_end ) break;
+            if ( ptr[j]==bcf_gt_missing ) { nmissing++; break; }
+        }
+    }
+    tok->nvalues = 1;
+    tok->values[0] = tok->tag[0]=='N' ? nmissing : (double)nmissing / line->n_sample;
+}
 static void filters_set_nalt(filter_t *flt, bcf1_t *line, token_t *tok)
 {
     tok->nvalues = 1;
@@ -832,6 +866,7 @@ static void set_strlen(filter_t *flt, bcf1_t *line, token_t *tok)
         {
             char *se = ss;
             while ( *se && *se!=',' ) se++;
+            hts_expand(double, i+1, tok->mvalues, tok->values);
             if ( !*se ) tok->values[i] = strlen(ss);
             else
             {
@@ -1303,6 +1338,18 @@ static int filters_init1(filter_t *filter, char *str, int len, token_t *tok)
             tok->threshold = bcf_hdr_nsamples(filter->hdr);
             return 0;
         }
+        else if ( !strncasecmp(str,"N_MISSING",len) )
+        {
+            tok->setter = &filters_set_nmissing;
+            tok->tag = strdup("N_MISSING");
+            return 0;
+        }
+        else if ( !strncasecmp(str,"F_MISSING",len) )
+        {
+            tok->setter = &filters_set_nmissing;
+            tok->tag = strdup("F_MISSING");
+            return 0;
+        }
     }
 
     // does it have array subscript?
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..0b0fdcb
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,501 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2013-12-25.23; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+tab='	'
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+is_target_a_directory=possibly
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
+
+    -o) chowncmd="$chownprog $2"
+        shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
+
+    -T) is_target_a_directory=never;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --) shift
+        break;;
+
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+        u_plus_rw=
+      else
+        u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+        u_plus_rw=
+      else
+        u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      dstdir=`dirname "$dst"`
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            if (umask $mkdir_umask &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+            then
+              if test -z "$dir_arg" || {
+                   # Check for POSIX incompatibilities with -m.
+                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                   # other-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/d" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
+      esac
+
+      oIFS=$IFS
+      IFS=/
+      set -f
+      set fnord $dstdir
+      shift
+      set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+        test X"$d" = X && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       set +f &&
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/m4/ax_with_htslib.m4 b/m4/ax_with_htslib.m4
new file mode 100644
index 0000000..0b02781
--- /dev/null
+++ b/m4/ax_with_htslib.m4
@@ -0,0 +1,154 @@
+# ===========================================================================
+#      http://www.gnu.org/software/autoconf-archive/ax_with_htslib.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_WITH_HTSLIB
+#
+# DESCRIPTION
+#
+#   This macro checks whether HTSlib <http://www.htslib.org/> is installed
+#   or nearby, and adds a --with-htslib=DIR option to the configure script
+#   for specifying the location.  It locates either an installation prefix
+#   (with 'include' and 'lib' subdirectories) or an HTSlib source tree, as
+#   HTSlib is fast-moving and users may wish to use an in-development tree.
+#
+#   Different checks occur depending on the --with-htslib argument given:
+#
+#   With --with-htslib=DIR, checks whether DIR is a source tree or contains
+#     a working installation.
+#   By default, searches for a source tree (with a name matching htslib*)
+#     within or alongside $srcdir.  Produces AC_MSG_ERROR if there are
+#     several equally-likely candidates.  If there are none, checks for
+#     a working default installation.
+#   With --with-htslib=system, checks for a working default installation.
+#
+#   If a source tree is found or specified, it is added to AC_CONFIG_SUBDIRS
+#   if either --enable-configure-htslib is set, or where htslib is included
+#   in a subdirectory (for packages that want to supply an embedded htslib).
+#   Unfortunately this may cause a "you should use literals" warning when
+#   autoconf is run.
+#
+#   The following output variables are set by this macro:
+#
+#     HTSDIR              Directory containing HTSlib source tree
+#     HTSLIB_CPPFLAGS     Preprocessor flags for compiling with HTSlib
+#     HTSLIB_LDFLAGS      Linker flags for linking with HTSlib
+#
+#   The following shell variables may be defined:
+#
+#     ax_cv_htslib        Set to "yes" if HTSlib was found
+#     ax_cv_htslib_which  Set to "source", "install", or "none"
+#
+# LICENSE
+#
+#   Copyright (C) 2015,2017 Genome Research Ltd
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved.  This file is offered as-is, without any
+#   warranty.
+
+#serial 1
+
+AC_DEFUN([AX_WITH_HTSLIB],
+[AC_ARG_WITH([htslib],
+  [AS_HELP_STRING([--with-htslib=DIR],
+    [use the HTSlib source tree or installation in DIR])
+dnl Not indented, to avoid extra whitespace outwith AS_HELP_STRING()
+AS_HELP_STRING([--with-htslib=system],
+    [use only a system HTSlib installation])],
+  [], [with_htslib=search])
+AC_ARG_ENABLE([configure-htslib],
+  [AS_HELP_STRING([--enable-configure-htslib],
+     [run configure for htslib as well @<:@default=only_in_subdir@:>@])],
+  [], [enable_configure_htslib=only_in_subdir])
+
+case $with_htslib in
+yes|search)
+  AC_MSG_CHECKING([location of HTSlib source tree])
+  case $srcdir in
+    .) srcp= ;;
+    *) srcp=$srcdir/ ;;
+  esac
+  found=
+  for dir in ${srcp}htslib* -- ${srcp}../htslib -- ${srcp}../htslib*
+  do
+    if test "$dir" = "--"; then
+      test -n "$found" && break
+    elif test -f "$dir/hts.c" && test -f "$dir/htslib/hts.h"; then
+      found="${found}1"
+      HTSDIR=$dir
+    fi
+  done
+  if test -z "$found"; then
+    AC_MSG_RESULT([none found])
+    ax_cv_htslib_which=system
+  elif test "$found" = 1; then
+    AC_MSG_RESULT([$HTSDIR])
+    ax_cv_htslib_which=source
+    if test "x$enable_configure_htslib" = "xonly_in_subdir" ; then
+      case $HTSDIR in
+        "${srcp}htslib"*) enable_configure_htslib=yes ;;
+        *) ;;
+      esac
+    fi
+  else
+    AC_MSG_RESULT([several directories found])
+    AC_MSG_ERROR([use --with-htslib=DIR to select which HTSlib to use])
+  fi
+  ;;
+no) ax_cv_htslib_which=none ;;
+system) ax_cv_htslib_which=system ;;
+*)
+  HTSDIR=$with_htslib
+  if test -f "$HTSDIR/hts.c" && test -f "$HTSDIR/htslib/hts.h"; then
+    ax_cv_htslib_which=source
+  else
+    ax_cv_htslib_which=install
+  fi
+  ;;
+esac
+
+case $ax_cv_htslib_which in
+source)
+  ax_cv_htslib=yes
+  HTSLIB_CPPFLAGS="-I$HTSDIR"
+  HTSLIB_LDFLAGS="-L$HTSDIR"
+  if test "x$enable_configure_htslib" = "xyes"; then
+    # We can't use a literal, because $HTSDIR is user-provided and variable
+    AC_CONFIG_SUBDIRS($HTSDIR)
+  fi
+  ;;
+system)
+  AC_CHECK_HEADER([htslib/sam.h],
+    [AC_CHECK_LIB(hts, hts_version, [ax_cv_htslib=yes], [ax_cv_htslib=no])],
+    [ax_cv_htslib=no], [;])
+  ax_cv_htslib_which=install
+  HTSDIR=
+  HTSLIB_CPPFLAGS=
+  HTSLIB_LDFLAGS=
+  ;;
+install)
+  ax_saved_CPPFLAGS=$CPPFLAGS
+  ax_saved_LDFLAGS=$LDFLAGS
+  HTSLIB_CPPFLAGS="-I$HTSDIR/include"
+  HTSLIB_LDFLAGS="-L$HTSDIR/lib"
+  CPPFLAGS="$CPPFLAGS $HTSLIB_CPPFLAGS"
+  LDFLAGS="$LDFLAGS $HTSLIB_LDFLAGS"
+  AC_CHECK_HEADER([htslib/sam.h],
+    [AC_CHECK_LIB(hts, hts_version, [ax_cv_htslib=yes], [ax_cv_htslib=no])],
+    [ax_cv_htslib=no], [;])
+  HTSDIR=
+  CPPFLAGS=$ax_saved_CPPFLAGS
+  LDFLAGS=$ax_saved_LDFLAGS
+  ;;
+none)
+  ax_cv_htslib=no
+  ;;
+esac
+
+AC_SUBST([HTSDIR])
+AC_SUBST([HTSLIB_CPPFLAGS])
+AC_SUBST([HTSLIB_LDFLAGS])])
diff --git a/main.c b/main.c
index 9350ff8..4e3e0e5 100644
--- a/main.c
+++ b/main.c
@@ -22,6 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.  */
 
+#include "config.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -110,7 +111,12 @@ static cmd_t cmds[] =
     },
     { .func  = main_plugin,
       .alias = "plugin",
+#ifdef ENABLE_BCF_PLUGINS
       .help  = "user-defined plugins"
+#else
+      /* Do not advertise when plugins disabled. */
+      .help  = "-user-defined plugins"
+#endif
     },
     { .func  = main_vcfquery,
       .alias = "query",
diff --git a/misc/plot-roh.py b/misc/plot-roh.py
index e464c7a..49cef76 100755
--- a/misc/plot-roh.py
+++ b/misc/plot-roh.py
@@ -1,33 +1,52 @@
 #!/usr/bin/python
 
-import glob, gzip, csv, sys, os, copy
+import glob, gzip, csv, sys, os, copy, re
 csv.register_dialect('tab', delimiter='\t', quoting=csv.QUOTE_NONE)
 
+def usage(msg=None):
+    if msg==None:
+        print 'Usage: plot.py [OPTIONS] <dir>'
+        print 'Options:'
+        print '   -H, --highlight +group1,-group2       Highlight calls shared within group1 but not present in group2'
+        print '   -i, --interactive                     Run interactively'
+        print '   -l, --min-length <num>                Filter input regions shorter than this [0]'
+        print '   -n, --min-markers <num>               Filter input regions with fewer marker than this [0]'
+        print '   -o, --outfile <file>                  Output file name [plot.png]'
+        print '   -q, --min-qual <num>                  Filter input regions with quality smaller than this [0]'
+        print '   -r, --region [^]<chr|chr:beg-end>     Plot this chromosome/region only'
+        print '   -s, --samples <file>                  List of samples to show, rename or group: "name[\\tnew_name[\\tgroup]]"'
+        print '   -h, --help                            This usage text'
+        print 'Matplotlib options:'
+        print '   +adj, --adjust <str>     Set plot adjust [bottom=0.18,left=0.07,right=0.98]'
+        print '   +dpi, --dpi <num>        Set bitmap DPI [150]'
+        print '   +sxt, --show-xticks      Show x-ticks (genomic coordinate)'
+        print '   +xlb, --xlabel <str>     Set x-label'
+        print '   +xli, --xlimit <num>     Extend x-range by this fraction [0.05]'
+    else:
+        print msg
+    sys.exit(1)
+
 dir         = None
-reg         = {'chr':None,'beg':0,'end':(1<<32)-1}
+regs        = None
 min_length  = 0
 min_markers = 0
 min_qual    = 0
 interactive = False
-if len(sys.argv) < 2: 
-    print 'Usage: plot.py [OPTIONS] <dir>'
-    print 'Options:'
-    print '   -i, --interactive                 Run interactively'
-    print '   -l, --min-length <num>            Filter input regions shorter than this [0]'
-    print '   -n, --min-markers <num>           Filter input regions with fewer marker than this [0]'
-    print '   -q, --min-qual <num>              Filter input regions with quality smaller than this [0]'
-    print '   -r, --region <chr|chr:beg-end>    Plot this chromosome/region only'
-    sys.exit(1)
+sample_file = None
+highlight   = None
+outfile     = None
+adjust      = 'bottom=0.18,left=0.07,right=0.98'
+dpi         = 150
+xlim        = 0.05
+show_xticks = False
+xlabel      = None
+
+if len(sys.argv) < 2: usage()
 args = sys.argv[1:]
 while len(args):
     if args[0]=='-r' or args[0]=='--region': 
         args = args[1:]
-        x = args[0].split(':')
-        reg['chr'] = x[0]
-        if len(x)>1:
-            (reg['beg'],reg['end']) = x[1].split('-')
-            reg['beg'] = float(reg['beg'])
-            reg['end'] = float(reg['end'])
+        regs = args[0]
     elif args[0]=='-i' or args[0]=='--interactive': 
         interactive = True
     elif args[0]=='-l' or args[0]=='--min-length': 
@@ -36,13 +55,45 @@ while len(args):
     elif args[0]=='-n' or args[0]=='--min-markers': 
         args = args[1:]
         min_markers = float(args[0])
+    elif args[0]=='-o' or args[0]=='--outfile': 
+        args = args[1:]
+        outfile = args[0]
     elif args[0]=='-q' or args[0]=='--min-qual': 
         args = args[1:]
         min_qual = float(args[0])
+    elif args[0]=='-H' or args[0]=='--highlight': 
+        args = args[1:]
+        highlight = args[0]
+    elif args[0]=='-s' or args[0]=='--samples': 
+        args = args[1:]
+        sample_file = args[0]
+    elif args[0]=='-?' or args[0]=='-h' or args[0]=='--help':
+        usage()
+    elif args[0]=='+adj' or args[0]=='--adjust': 
+        args = args[1:]
+        adjust = args[0]
+    elif args[0]=='+dpi' or args[0]=='--dpi': 
+        args = args[1:]
+        dpi = float(args[0])
+    elif args[0]=='+xlb' or args[0]=='--xlabel': 
+        args = args[1:]
+        xlabel = args[0]
+    elif args[0]=='+sxt' or args[0]=='--show-xticks': 
+        show_xticks = True
+    elif args[0]=='+xli' or args[0]=='--xlimit': 
+        args = args[1:]
+        xlim = float(args[0])
     else:
         dir = args[0]
     args = args[1:]
 
+if interactive and outfile!=None: usage("Use -i, --interactive or -o, --outfile, but not both")
+if not interactive and outfile==None: outfile = 'plot.png'
+
+def wrap_hash(**args): return args
+adjust = eval("wrap_hash("+adjust+")")
+
+
 import matplotlib as mpl
 for gui in ['TKAgg','GTKAgg','Qt4Agg','WXAgg','MacOSX']:
     try:
@@ -58,6 +109,50 @@ mpl.rcParams['axes.color_cycle'] = cols
 
 globstr = os.path.join(dir, '*.txt.gz')
 fnames = glob.glob(globstr)
+if len(fnames)==0: usage("No data files found in \""+dir+"\"")
+
+def parse_regions(str):
+    if str==None: return None
+    regs = { 'inc':[], 'exc':[] }
+    list = str.split(',')
+    key = 'inc'
+    if list[0][0]=='^': 
+        key = 'exc'
+        list[0] = list[0][1:]
+    for reg in list:
+        x = reg.split(':')
+        chr = x[0]
+        beg = 0
+        end = (1<<32)-1
+        if len(x)>1:
+            (beg,end) = x[1].split('-')
+            beg = float(beg)
+            end = float(end)
+        regs[key].append({'chr':chr,'beg':beg,'end':end})
+    return regs
+
+def region_overlap(regs,chr,beg,end):
+    if regs==None: return (beg,end)
+    if len(regs['exc'])>0:
+        for reg in regs['exc']:
+            if chr==reg['chr']: return None
+        return (beg,end)
+    if len(regs['inc'])==0: return (beg,end)
+    for reg in regs['inc']:
+        if chr!=reg['chr']: continue
+        if beg>reg['end']: continue
+        if end<reg['beg']: continue
+        if beg<reg['beg']: beg = reg['beg']
+        if end>reg['end']: end = reg['end']
+        return (beg,end)
+    return None
+
+def parse_outfile(fname):
+    files = re.split(r',',fname)
+    bname = re.search(r'^(.+)\.[^.]+$', files[0]).group(1)
+    for i in range(len(files)-1):
+        files[i+1] = bname+"."+files[i+1]
+    return files
 
 def next_region(rgs):
     min = None
@@ -100,8 +195,62 @@ def merge_regions(rg):
             for smpl in smpls: out[smpl].append([beg,end])
     return out
 
+def prune_regions(groups,regions):
+    regs = {'+':{},'-':{}}
+    for smpl in regions:
+        grp = groups[smpl]
+        for reg in regions[smpl]:
+            key = str(reg[0])+"-"+str(reg[1])   # reg=[beg,end] -> "beg-end"
+            if key not in regs[grp]: regs[grp][key] = 0
+            regs[grp][key] += 1
+    nexp = 0
+    for smpl in groups:
+        if groups[smpl]=='+': nexp += 1
+    for smpl in regions:
+        rm = []
+        for reg in regions[smpl]:
+            key = str(reg[0])+"-"+str(reg[1]) 
+            if key in regs['-']: rm.append(reg)
+            elif key not in regs['+'] or regs['+'][key]!=nexp: rm.append(reg)
+        for reg in rm:
+            if reg in regions[smpl]:
+                regions[smpl].remove(reg)
+    return regions
+
+def parse_samples(fname,highlight):
+    if fname==None: return (None,None,{})
+    samples = {}
+    groups  = {}
+    grp2sgn = {}
+    smpl2y  = {}
+    # parse "+name" to create a map "name":"+"
+    if highlight!=None:
+        for grp in re.split(r',', highlight):
+            if grp[0]!='+' and grp[0]!='-': usage("Expected + or - before the group name: "+grp)
+            grp2sgn[grp[1:]] = grp[0]
+    # read samples, renaming them
+    with open(fname) as f:
+        for line in f:
+            row  = re.split(r'\s+', line.rstrip('\n'))
+            smpl = row[0]
+            if len(row)==1: samples[smpl] = smpl
+            else:
+                samples[smpl] = row[1]
+            if len(row)==3:
+                grp = row[2]
+                if grp in grp2sgn:
+                    grp = grp2sgn[grp]
+                else:
+                    grp = '+'
+                groups[smpl] = grp
+            y = len(smpl2y)
+            smpl2y[smpl] = y
+    if highlight==None: groups = None
+    return (samples,groups,smpl2y)
+
+regs = parse_regions(regs)
+(samples,groups,smpl2y) = parse_samples(sample_file,highlight)
 
-smpl2y = {}
 dat_gt = {}
 dat_rg = {}
 chrs   = []
@@ -112,13 +261,15 @@ for fname in fnames:
         if row[0]=='GT':
             chr  = row[1]
             pos  = int(row[2])
-            if reg['chr']!=None and (chr!=reg['chr'] or pos<reg['beg'] or pos>reg['end']): continue
+            reg  = region_overlap(regs,chr,pos,pos)
+            if reg==None: continue
             smpl = row[3]
+            if samples!=None and smpl not in samples: continue
             gt   = row[4]
             x = gt.split('/')
             dsg = 2
             if x[0]!=x[1]: dsg = 1
-            elif x[0]=='0': dsg = 0
+            elif x[0]=='0': continue        # skip HomRef 0/0 genotypes
             if chr not in dat_gt: 
                 dat_gt[chr] = {}
                 chrs.append(chr)
@@ -130,6 +281,7 @@ for fname in fnames:
             dat_gt[chr][smpl].append([pos,dsg])
         elif row[0]=='RG':
             smpl  = row[1]
+            if samples!=None and smpl not in samples: continue
             chr   = row[2]
             beg   = int(row[3])
             end   = int(row[4])
@@ -139,14 +291,22 @@ for fname in fnames:
             if length < min_length: continue
             if nmark < min_markers : continue
             if qual < min_qual : continue
-            if reg['chr']!=None and (chr!=reg['chr'] or end<reg['beg'] or beg>reg['end']): continue
+            reg = region_overlap(regs,chr,beg,end)
             if chr not in dat_rg: dat_rg[chr] = {}
             if smpl not in dat_rg[chr]: dat_rg[chr][smpl] = []
-            if reg['chr']!=None:
-                if beg<reg['beg']: beg = reg['beg']
-                if end>reg['end']: end = reg['end']
+            if reg!=None:
+                if beg<reg[0]: beg = reg[0]
+                if end>reg[1]: end = reg[1]
             dat_rg[chr][smpl].append([beg,end])
 
+if samples==None: 
+    samples = {}
+    for smpl in smpl2y: samples[smpl] = smpl
+
+# list the samples in the same order as encountered in the file, from top to bottom
+for smpl in smpl2y:
+    smpl2y[smpl] = len(smpl2y) - smpl2y[smpl] - 1
+
 off_list = []
 off_hash = {}
 off = 0
@@ -155,6 +315,8 @@ dat_rg1 = {}
 for chr in chrs:
     if chr in dat_rg:
         rg1 = merge_regions(dat_rg[chr])
+        if groups!=None: 
+            rg1 = prune_regions(groups,rg1)
         if len(rg1)!=0: dat_rg1[chr] = rg1
     off_hash[chr] = off
     max_pos = 0
@@ -184,70 +346,61 @@ def format_coord(x, y):
         off = off_list[i]
     return 'chr%s:%s'%(chr,bignum(int(x - off)))
 
-if interactive:
-    fig, ax1 = plt.subplots(1, 1, figsize=wh, num=dir)
-    ax1.yaxis.set_ticks_position('none')
-    ax1.format_coord = format_coord
-    xtick_lbl = []
-    xtick_pos = []
-    for chr in dat_gt:
-        off  = off_hash[chr]
-        xtick_lbl.append(chr)
-        xtick_pos.append(off)
-        icol = 0
-        for smpl in dat_gt[chr]:
-            y = smpl2y[smpl]
-            if chr in dat_rg and smpl in dat_rg[chr]:
-                for rg in dat_rg[chr][smpl]:
-                    rect = patches.Rectangle((rg[0]+off,3*y+0.5), rg[1]-rg[0]+1, 2, color='#dddddd')
-                    ax1.add_patch(rect)
-            if chr in dat_rg1 and smpl in dat_rg1[chr]:
-                for rg in dat_rg1[chr][smpl]:
-                    rect = patches.Rectangle((rg[0]+off,3*y+0.5), rg[1]-rg[0]+1, 2, color='#d9534f')
-                    ax1.add_patch(rect)
-            ax1.plot([x[0]+off for x in dat_gt[chr][smpl]],[x[1]+3*y for x in dat_gt[chr][smpl]],'.',color=cols[icol])
-            icol += 1
-            if icol >= len(cols): 0
-    ytick_lbl = []
-    ytick_pos = []
-    for chr in dat_gt:
-        for smpl in dat_gt[chr]:
-            ytick_lbl.append(smpl)
-            ytick_pos.append(3*smpl2y[smpl]+1)
-        break
+
+fig, ax1 = plt.subplots(1, 1, figsize=wh, num=dir)
+ax1.yaxis.set_ticks_position('none')
+ax1.format_coord = format_coord
+xtick_lbl = []
+xtick_pos = []
+max_x = 0
+for chr in dat_gt:
+    off  = off_hash[chr]
+    icol = 0
+    max  = 0
+    for smpl in dat_gt[chr]:
+        y = smpl2y[smpl]
+        if chr in dat_rg and smpl in dat_rg[chr]:
+            for rg in dat_rg[chr][smpl]:
+                rect = patches.Rectangle((rg[0]+off,3*y+0.5), rg[1]-rg[0]+1, 2, color='#dddddd')
+                ax1.add_patch(rect)
+        if chr in dat_rg1 and smpl in dat_rg1[chr]:
+            for rg in dat_rg1[chr][smpl]:
+                rect = patches.Rectangle((rg[0]+off,3*y+0.5), rg[1]-rg[0]+1, 2, color='#d9534f')
+                ax1.add_patch(rect)
+        ax1.plot([x[0]+off for x in dat_gt[chr][smpl]],[x[1]+3*y for x in dat_gt[chr][smpl]],'.',color=cols[icol])
+        if max_x < dat_gt[chr][smpl][-1][0]+off: max_x = dat_gt[chr][smpl][-1][0]+off
+        if max < dat_gt[chr][smpl][-1][0]: max = dat_gt[chr][smpl][-1][0]
+        icol += 1
+        if icol >= len(cols): 0
+    xtick_lbl.append(chr)
+    xtick_pos.append(off)
+ytick_lbl = []
+ytick_pos = []
+for chr in dat_gt:
+    for smpl in dat_gt[chr]:
+        ytick_lbl.append(samples[smpl])
+        ytick_pos.append(3*smpl2y[smpl]+1)
+    break
+if xlim!=0:
+    ax1.set_xlim(0,max_x+xlim*max_x)
+lbl_pos = 3*(len(smpl2y)-1)
+ax1.annotate('   HomAlt ',xy=(max_x,lbl_pos-1),xycoords='data',va='center')
+ax1.annotate('   Het',xy=(max_x,lbl_pos-2),xycoords='data',va='center')
+if not show_xticks:
     ax1.set_xticks(xtick_pos)
     ax1.set_xticklabels(xtick_lbl)
-    ax1.set_yticks(ytick_pos)
-    ax1.set_yticklabels(ytick_lbl)
-    ax1.set_ylim(0,3*len(smpl2y)+0.5)
-    plt.subplots_adjust(bottom=0.18,left=0.05,right=0.98)
+if xlabel!=None:
+    ax1.set_xlabel(xlabel)
+ax1.set_yticks(ytick_pos)
+ax1.set_yticklabels(ytick_lbl)
+ax1.set_ylim(0,3*len(smpl2y)+0.5)
+plt.subplots_adjust(**adjust)
+if interactive:
     plt.show()
 else:
-    for chr in dat_gt:
-        fig, ax1 = plt.subplots(1, 1, figsize=wh)
-        ax1.yaxis.set_ticks_position('none')
-        ax1.format_coord = format_coord
-        tick_lbl = []
-        tick_pos = []
-        for smpl in dat_gt[chr]:
-            y = smpl2y[smpl]
-            tick_lbl.append(smpl)
-            tick_pos.append(3*y+1)
-            if chr in dat_rg and smpl in dat_rg[chr]:
-                for rg in dat_rg[chr][smpl]:
-                    rect = patches.Rectangle((rg[0],3*y+0.5), rg[1]-rg[0]+1, 2, color='#dddddd')
-                    ax1.add_patch(rect)
-            if chr in dat_rg and smpl in dat_rg1[chr]:
-                for rg in dat_rg1[chr][smpl]:
-                    rect = patches.Rectangle((rg[0],3*y+0.5), rg[1]-rg[0]+1, 2, color='#d9534f')
-                    ax1.add_patch(rect)
-            ax1.plot([x[0] for x in dat_gt[chr][smpl]],[x[1]+3*y for x in dat_gt[chr][smpl]],'.')
-        ax1.set_yticks(tick_pos)
-        ax1.set_yticklabels(tick_lbl)
-        ax1.set_xlabel('chr'+chr)
-        ax1.set_ylim(0,3*len(smpl2y)+0.5)
-        plt.subplots_adjust(bottom=0.18,left=0.1,right=0.95)
-        plt.savefig('rmme-chr'+chr+'.png',dpi=150)
-        plt.close()
+    files = parse_outfile(outfile)
+    for file in (parse_outfile(outfile)):
+        plt.savefig(file,dpi=dpi)
+    plt.close()
 
 
diff --git a/misc/plot-vcfstats b/misc/plot-vcfstats
index 5751baa..7172f05 100755
--- a/misc/plot-vcfstats
+++ b/misc/plot-vcfstats
@@ -861,7 +861,7 @@ sub plot_per_sample_stats
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append(row)
@@ -1000,7 +1000,7 @@ sub plot_DP
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append(row)
@@ -1046,7 +1046,7 @@ sub plot_hwe
 
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append(row)
@@ -1112,7 +1112,7 @@ sub plot_tstv_by_AF
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append([float(x) for x in row])
@@ -1187,7 +1187,7 @@ sub plot_tstv_by_QUAL
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append([float(x) for x in row])
@@ -1275,7 +1275,7 @@ sub plot_concordance_by_AF
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append(row)
@@ -1347,7 +1347,7 @@ sub plot_concordance_by_sample
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append(row)
@@ -1403,7 +1403,7 @@ sub plot_counts_by_AF_col
     tprint $fh, "
 
             dat = {}
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] == '#': continue
@@ -1492,7 +1492,7 @@ sub plot_overlap_by_AF_col
 
         dat = []
 
-        with open('$img.dat', 'rb') as f:
+        with open('$img.dat', 'r') as f:
         \\treader = csv.reader(f, 'tab')
         \\tfor row in reader:
         \\t\\tif row[0][0] != '#': dat.append(row)
@@ -1549,7 +1549,7 @@ sub plot_indel_distribution
     tprint $fh, "
 
             dat = []
-            with open('$img.dat', 'rb') as f:
+            with open('$img.dat', 'r') as f:
             \\treader = csv.reader(f, 'tab')
             \\tfor row in reader:
             \\t\\tif row[0][0] != '#': dat.append([float(x) for x in row])
diff --git a/plugins/GTisec.mk b/plugins/GTisec.mk
index 58d1cc7..b74f0fc 100644
--- a/plugins/GTisec.mk
+++ b/plugins/GTisec.mk
@@ -1,2 +1,2 @@
 plugins/GTisec.so: plugins/GTisec.c version.h version.c 
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ version.c $< $(LIBS)
diff --git a/plugins/GTsubset.mk b/plugins/GTsubset.mk
index 9e90936..4dcdbea 100644
--- a/plugins/GTsubset.mk
+++ b/plugins/GTsubset.mk
@@ -1,2 +1,2 @@
 plugins/GTsubset.so: plugins/GTsubset.c version.h version.c 
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ version.c $< $(LIBS)
diff --git a/plugins/ad-bias.mk b/plugins/ad-bias.mk
index b6a33a6..3597df4 100644
--- a/plugins/ad-bias.mk
+++ b/plugins/ad-bias.mk
@@ -1,2 +1,2 @@
 plugins/ad-bias.so: plugins/ad-bias.c version.h version.c convert.h convert.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ convert.c version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ convert.c version.c $< $(LIBS)
diff --git a/plugins/af-dist.mk b/plugins/af-dist.mk
index 2ee23c7..c451f21 100644
--- a/plugins/af-dist.mk
+++ b/plugins/af-dist.mk
@@ -1,2 +1,2 @@
 plugins/af-dist.so: plugins/af-dist.c version.h version.c bin.h bin.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ bin.c version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ bin.c version.c $< $(LIBS)
diff --git a/plugins/color-chrs.mk b/plugins/color-chrs.mk
index 506b99d..a6b3ba3 100644
--- a/plugins/color-chrs.mk
+++ b/plugins/color-chrs.mk
@@ -1,2 +1,2 @@
 plugins/color-chrs.so: plugins/color-chrs.c version.h version.c HMM.h HMM.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ HMM.c version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ HMM.c version.c $< $(LIBS)
diff --git a/plugins/fill-from-fasta.mk b/plugins/fill-from-fasta.mk
index 196578f..688df71 100644
--- a/plugins/fill-from-fasta.mk
+++ b/plugins/fill-from-fasta.mk
@@ -1,2 +1,2 @@
 plugins/fill-from-fasta.so: plugins/fill-from-fasta.c version.h version.c filter.h filter.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ filter.c version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ filter.c version.c $< $(LIBS)
diff --git a/plugins/fixploidy.mk b/plugins/fixploidy.mk
index c476169..300654d 100644
--- a/plugins/fixploidy.mk
+++ b/plugins/fixploidy.mk
@@ -1,2 +1,2 @@
-plugins/fixploidy.so: plugins/fixploidy.c version.h version.c ploidy.h ploidy.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ ploidy.c version.c $< $(LIBS)
+plugins/fixploidy.so: plugins/fixploidy.c version.h version.c regidx.h regidx.c ploidy.h ploidy.c
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ ploidy.c regidx.c version.c $< $(LIBS)
diff --git a/plugins/fixref.c b/plugins/fixref.c
index 25f96e1..b745ecb 100644
--- a/plugins/fixref.c
+++ b/plugins/fixref.c
@@ -94,7 +94,7 @@
 typedef struct
 {
     uint32_t pos;
-    uint8_t ref:4, alt:4;
+    uint8_t ref;
 }
 marker_t;
 
@@ -129,7 +129,7 @@ const char *usage(void)
         "About: This tool helps to determine and fix strand orientation.\n"
         "       Currently the following modes are recognised:\n"
         "           flip  .. flips non-ambiguous SNPs and ignores the rest\n"
-        "           id    .. swap REF/ALT using the ID column to determine the REF allele\n"
+        "           id    .. swap REF/ALT and GTs using the ID column to determine the REF allele\n"
         "           stats .. collect and print stats\n"
         "           top   .. converts from Illumina TOP strand to fwd\n"
         "\n"
@@ -292,12 +292,10 @@ static void dbsnp_init(args_t *args, const char *chr)
     while ( bcf_sr_next_line(sr) )
     {
         bcf1_t *rec = bcf_sr_get_line(sr, 0);
-        if ( rec->n_allele!=2 ) continue;       // skip multiallelic markers
         if ( rec->d.allele[0][1]!=0 || rec->d.allele[1][1]!=0 ) continue;   // skip non-snps
 
         int ref = nt2int(rec->d.allele[0][0]);
-        int alt = nt2int(rec->d.allele[1][0]);
-        if ( ref<0 || alt<0 ) continue;     // non-[ACGT] base
+        if ( ref<0 ) continue;     // non-[ACGT] base
 
         uint32_t id = parse_rsid(rec->d.id);
         if ( !id ) continue;
@@ -308,7 +306,6 @@ static void dbsnp_init(args_t *args, const char *chr)
         if ( ret==0 ) continue; // skip ambiguous id
         kh_val(args->i2m, k).pos = (uint32_t)rec->pos;
         kh_val(args->i2m, k).ref = ref;
-        kh_val(args->i2m, k).alt = alt;
     }
 done:
     bcf_sr_destroy(sr);
@@ -316,7 +313,7 @@ done:
 
 static bcf1_t *dbsnp_check(args_t *args, bcf1_t *rec, int ir, int ia, int ib)
 {
-    int k, ref,alt,pos;
+    int k, ref,pos;
     uint32_t id = parse_rsid(rec->d.id);
     if ( !id ) goto no_info;
 
@@ -332,13 +329,11 @@ static bcf1_t *dbsnp_check(args_t *args, bcf1_t *rec, int ir, int ia, int ib)
     }
 
     ref = kh_val(args->i2m, k).ref;
-    alt = kh_val(args->i2m, k).alt;
-
 	if ( ref!=ir ) 
         error("Reference base mismatch at %s:%d .. %c vs %c\n",bcf_seqname(args->hdr,rec),rec->pos+1,int2nt(ref),int2nt(ir));
 
-    if ( ia==ref && ib==alt ) return rec;
-    if ( ia==alt && ib==ref ) { args->nswap++; return set_ref_alt(args,rec,int2nt(ib),int2nt(ia),0); }
+    if ( ia==ref ) return rec;
+    if ( ib==ref ) { args->nswap++; return set_ref_alt(args,rec,int2nt(ib),int2nt(ia),1); }
 
 no_info:
     args->nunresolved++;
diff --git a/plugins/isecGT.mk b/plugins/isecGT.mk
new file mode 100644
index 0000000..680473d
--- /dev/null
+++ b/plugins/isecGT.mk
@@ -0,0 +1,2 @@
+plugins/isecGT.so: plugins/isecGT.c version.h version.c smpl_ilist.h
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ smpl_ilist.c version.c $< $(LIBS)
diff --git a/plugins/prune.c b/plugins/prune.c
new file mode 100644
index 0000000..5c4f506
--- /dev/null
+++ b/plugins/prune.c
@@ -0,0 +1,292 @@
+/* 
+    Copyright (C) 2017 Genome Research Ltd.
+
+    Author: Petr Danecek <pd3 at sanger.ac.uk>
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+    
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+    
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+    THE SOFTWARE.
+*/
+/*
+    Prune sites by missingness, LD
+
+    See calc_ld() in vcfbuf.c for the actual LD calculation
+
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <strings.h>
+#include <getopt.h>
+#include <stdarg.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <errno.h>
+#include <htslib/vcf.h>
+#include <htslib/synced_bcf_reader.h>
+#include <htslib/vcfutils.h>
+#include "bcftools.h"
+#include "vcfbuf.h"
+#include "filter.h"
+
+#define FLT_INCLUDE 1
+#define FLT_EXCLUDE 2
+
+typedef struct
+{
+    filter_t *filter;
+    char *filter_str, *af_tag;
+    int filter_logic;   // one of FLT_INCLUDE/FLT_EXCLUDE (-i or -e)
+    vcfbuf_t *vcfbuf;
+    int argc, region_is_file, target_is_file, output_type, filter_r2_id, rand_missing, nsites, ld_win;
+    char **argv, *region, *target, *fname, *output_fname, *info_pos, *info_r2, *filter_r2;
+    htsFile *out_fh;
+    bcf_hdr_t *hdr;
+    bcf_srs_t *sr;
+    double max_ld;
+}
+args_t;
+
+const char *about(void)
+{
+    return "Prune sites by missingness, linkage disequilibrium\n";
+}
+
+static const char *usage_text(void)
+{
+    return 
+        "\n"
+        "About: Prune sites by missingness or linkage disequilibrium.\n"
+        "\n"
+        "Usage: bcftools +prune [Options]\n"
+        "Plugin options:\n"
+        "       --AF-tag STR                use this tag with -n to determine allele frequency\n"
+        "   -a, --annotate-info STR         add INFO/STR_POS and STR_R2 annotation: an upstream site with the biggest r2 value\n"
+        "   -e, --exclude EXPR              exclude sites for which the expression is true\n"
+        "   -f, --set-filter STR            annotate FILTER column with STR instead of discarding the site\n"
+        "   -i, --include EXPR              include only sites for which the expression is true\n"
+        "   -l, --max-LD R2                 remove sites with r2 bigger than R2 within within the -w window\n"
+        "   -n, --nsites-per-win N          keep at most N sites in the -w window, removing sites with small AF first\n"
+        "   -o, --output FILE               write output to the FILE [standard output]\n"
+        "   -O, --output-type b|u|z|v       b: compressed BCF, u: uncompressed BCF, z: compressed VCF, v: uncompressed VCF [v]\n"
+        "       --randomize-missing         replace missing data with randomly assigned genotype based on site's allele frequency\n"
+        "   -r, --regions REGION            restrict to comma-separated list of regions\n"
+        "   -R, --regions-file FILE         restrict to regions listed in a file\n"
+        "   -t, --targets REGION            similar to -r but streams rather than index-jumps\n"
+        "   -T, --targets-file FILE         similar to -R but streams rather than index-jumps\n"
+        "   -w, --window INT[bp|kb]         the window size of INT sites/bp/kb for the -n/-l options [100kb]\n"
+        "Examples:\n"
+        "   # Discard records with r2 bigger than 0.6 in a window of 1000 sites\n"
+        "   bcftools +prune -l 0.6 -w 1000 input.bcf -Ob -o output.bcf\n"
+        "\n"
+        "   # Set FILTER (but do not discard) records with r2 bigger than 0.4 in the default window of 100kb\n"
+        "   bcftools +prune -l 0.4 -f MAX_R2 input.bcf -Ob -o output.bcf\n"
+        "\n"
+        "   # Annotate INFO field of all records with maximum r2 in a window of 1000 sites\n"
+        "   bcftools +prune -l 0.6 -w 1000 -f MAX_R2 input.bcf -Ob -o output.bcf\n"
+        "\n"
+        "   # Discard records with r2 bigger than 0.6, first removing records with more than 2% of genotypes missing\n"
+        "   bcftools +prune -l 0.6 -e'F_MISSING>=0.02' input.bcf -Ob -o output.bcf\n"
+        "\n";
+}
+
+static void init_data(args_t *args)
+{
+    args->sr = bcf_sr_init();
+    if ( args->region )
+    {
+        args->sr->require_index = 1;
+        if ( bcf_sr_set_regions(args->sr, args->region, args->region_is_file)<0 ) error("Failed to read the regions: %s\n",args->region);
+    }
+    if ( args->target && bcf_sr_set_targets(args->sr, args->target, args->target_is_file, 0)<0 ) error("Failed to read the targets: %s\n",args->target);
+    if ( !bcf_sr_add_reader(args->sr,args->fname) ) error("Error: %s\n", bcf_sr_strerror(args->sr->errnum));
+    args->hdr = bcf_sr_get_header(args->sr,0);
+
+    args->out_fh = hts_open(args->output_fname,hts_bcf_wmode(args->output_type));
+    if ( args->out_fh == NULL ) error("Can't write to \"%s\": %s\n", args->output_fname, strerror(errno));
+    if ( args->filter_r2 )
+    {
+        bcf_hdr_printf(args->hdr,"##FILTER=<ID=%s,Description=\"A site with r2>%e upstream within %d%s\">",args->filter_r2,args->max_ld,
+                args->ld_win < 0 ? -args->ld_win/1000 : args->ld_win,
+                args->ld_win < 0 ? "kb" : " sites");
+    }
+    if ( args->info_r2 )
+    {
+        bcf_hdr_printf(args->hdr,"##INFO=<ID=%s,Number=1,Type=Integer,Description=\"A site with r2>%e upstream\">",args->info_pos,args->max_ld);
+        bcf_hdr_printf(args->hdr,"##INFO=<ID=%s,Number=1,Type=Float,Description=\"A site with r2>%e upstream\">",args->info_r2,args->max_ld);
+    }
+    bcf_hdr_write(args->out_fh, args->hdr);
+    if ( args->filter_r2 )
+        args->filter_r2_id = bcf_hdr_id2int(args->hdr, BCF_DT_ID, args->filter_r2);
+
+    args->vcfbuf = vcfbuf_init(args->hdr, args->ld_win);
+    vcfbuf_set_opt(args->vcfbuf,double,VCFBUF_LD_MAX,args->max_ld);
+    if ( args->nsites ) vcfbuf_set_opt(args->vcfbuf,int,VCFBUF_NSITES,args->nsites);
+    if ( args->af_tag ) vcfbuf_set_opt(args->vcfbuf,char*,VCFBUF_AF_TAG,args->af_tag);
+    if ( args->rand_missing ) vcfbuf_set_opt(args->vcfbuf,int,VCFBUF_RAND_MISSING,1);
+    vcfbuf_set_opt(args->vcfbuf,int,VCFBUF_SKIP_FILTER,args->filter_r2 ? 1 : 0);
+
+    if ( args->filter_str )
+        args->filter = filter_init(args->hdr, args->filter_str);
+}
+static void destroy_data(args_t *args)
+{
+    if ( args->filter )
+        filter_destroy(args->filter);
+    hts_close(args->out_fh);
+    vcfbuf_destroy(args->vcfbuf);
+    bcf_sr_destroy(args->sr);
+    free(args->info_pos);
+    free(args->info_r2);
+    free(args);
+}
+static void flush(args_t *args, int flush_all)
+{
+    bcf1_t *rec;
+    while ( (rec = vcfbuf_flush(args->vcfbuf, flush_all)) )
+        bcf_write1(args->out_fh, args->hdr, rec);
+}
+static void process(args_t *args)
+{
+    bcf1_t *rec = bcf_sr_get_line(args->sr,0);
+    if ( args->filter )
+    {
+        int ret  = filter_test(args->filter, rec, NULL);
+        if ( args->filter_logic==FLT_INCLUDE ) { if ( !ret ) return; }
+        else if ( ret ) return;
+    }
+    bcf_sr_t *sr = bcf_sr_get_reader(args->sr, 0);
+    if ( args->max_ld )
+    {
+        double ld_val;
+        bcf1_t *ld_rec = vcfbuf_max_ld(args->vcfbuf, rec, &ld_val);
+        if ( ld_rec && ld_val > args->max_ld )
+        {
+            if ( !args->filter_r2 ) return;
+            bcf_add_filter(args->hdr, rec, args->filter_r2_id);
+        }
+        if ( ld_rec && args->info_r2 )
+        {
+            float tmp = ld_val;
+            bcf_update_info_float(args->hdr, rec, args->info_r2, &tmp, 1);
+            bcf_update_info_int32(args->hdr, rec, args->info_pos, &ld_rec->pos, 1);
+        }
+    }
+    sr->buffer[0] = vcfbuf_push(args->vcfbuf, rec, 1);
+    flush(args,0);
+}
+
+int run(int argc, char **argv)
+{
+    args_t *args = (args_t*) calloc(1,sizeof(args_t));
+    args->argc   = argc; args->argv = argv;
+    args->output_type  = FT_VCF;
+    args->output_fname = "-";
+    args->ld_win = -100e3;
+    static struct option loptions[] =
+    {
+        {"randomize-missing",no_argument,NULL,1},
+        {"AF-tag",required_argument,NULL,2},
+        {"exclude",required_argument,NULL,'e'},
+        {"include",required_argument,NULL,'i'},
+        {"annotate-info",required_argument,NULL,'a'},
+        {"set-filter",required_argument,NULL,'f'},
+        {"max-LD",required_argument,NULL,'l'},
+        {"regions",required_argument,NULL,'r'},
+        {"regions-file",required_argument,NULL,'R'},
+        {"output",required_argument,NULL,'o'},
+        {"output-type",required_argument,NULL,'O'},
+        {"nsites-per-win",required_argument,NULL,'n'},
+        {"window",required_argument,NULL,'w'},
+        {NULL,0,NULL,0}
+    };
+    int c;
+    char *tmp;
+    while ((c = getopt_long(argc, argv, "vr:R:t:T:l:o:O:a:f:i:e:n:w:",loptions,NULL)) >= 0)
+    {
+        switch (c) 
+        {
+            case  1 : args->rand_missing = 1; break;
+            case  2 : args->af_tag = optarg; break;
+            case 'e': args->filter_str = optarg; args->filter_logic |= FLT_EXCLUDE; break;
+            case 'i': args->filter_str = optarg; args->filter_logic |= FLT_INCLUDE; break;
+            case 'a': 
+                {
+                    int l = strlen(optarg);
+                    args->info_pos = (char*)malloc(l+5);
+                    args->info_r2  = (char*)malloc(l+5);
+                    sprintf(args->info_pos,"%s_POS", optarg);
+                    sprintf(args->info_r2,"%s_R2", optarg);
+                }
+                break; 
+            case 'f': args->filter_r2 = optarg; break;
+            case 'n': 
+                args->nsites = strtod(optarg,&tmp);
+                if ( tmp==optarg || *tmp ) error("Could not parse: --nsites-per-win %s\n", optarg);
+                break;
+            case 'l': 
+                args->max_ld = strtod(optarg,&tmp);
+                if ( tmp==optarg || *tmp ) error("Could not parse: --max-LD %s\n", optarg);
+                break;
+            case 'w': 
+                args->ld_win = strtod(optarg,&tmp);
+                if ( !*tmp ) break;
+                if ( tmp==optarg ) error("Could not parse: --window %s\n", optarg);
+                else if ( !strcasecmp("bp",tmp) ) args->ld_win *= -1;
+                else if ( !strcasecmp("kb",tmp) ) args->ld_win *= -1000;
+                else error("Could not parse: --window %s\n", optarg);
+                break;
+            case 'T': args->target_is_file = 1; 
+            case 't': args->target = optarg; break; 
+            case 'R': args->region_is_file = 1; 
+            case 'r': args->region = optarg; break; 
+            case 'o': args->output_fname = optarg; break;
+            case 'O':
+                      switch (optarg[0]) {
+                          case 'b': args->output_type = FT_BCF_GZ; break;
+                          case 'u': args->output_type = FT_BCF; break;
+                          case 'z': args->output_type = FT_VCF_GZ; break;
+                          case 'v': args->output_type = FT_VCF; break;
+                          default: error("The output type \"%s\" not recognised\n", optarg);
+                      }
+                      break;
+            case 'h':
+            case '?':
+            default: error("%s", usage_text()); break;
+        }
+    }
+    if ( args->filter_logic == (FLT_EXCLUDE|FLT_INCLUDE) ) error("Only one of -i or -e can be given.\n");
+    if ( !args->max_ld && !args->nsites ) error("%sError: Expected --max-LD, --nsites-per-win or both\n\n", usage_text());
+
+    if ( optind==argc )
+    {
+        if ( !isatty(fileno((FILE *)stdin)) ) args->fname = "-";  // reading from stdin
+        else { error(usage_text()); }
+    }
+    else if ( optind+1!=argc ) error(usage_text());
+    else args->fname = argv[optind];
+
+    init_data(args);
+    
+    while ( bcf_sr_next_line(args->sr) ) process(args);
+    flush(args,1);
+
+    destroy_data(args);
+    return 0;
+}
+
+
diff --git a/plugins/setGT.mk b/plugins/setGT.mk
index bb61b20..75afe51 100644
--- a/plugins/setGT.mk
+++ b/plugins/setGT.mk
@@ -1,2 +1,2 @@
 plugins/setGT.so: plugins/setGT.c version.h version.c filter.h filter.c
-	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ filter.c version.c $< $(LIBS)
+	$(CC) $(PLUGIN_FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(LDFLAGS) -o $@ filter.c version.c $< $(LIBS)
diff --git a/rbuf.h b/rbuf.h
index 3d2805c..2c0e5b1 100644
--- a/rbuf.h
+++ b/rbuf.h
@@ -46,11 +46,16 @@ static inline void rbuf_init(rbuf_t *rbuf, int size)
 /**
  *  rbuf_kth() - get index of the k-th element of the round buffer
  *  @rbuf:  the rbuf_t holder
- *  @k:     0-based index
+ *  @k:     0-based index. If negative, return k-th element from the end, 1-based
  */
 static inline int rbuf_kth(rbuf_t *rbuf, int k)
 {
-    if ( k >= rbuf->n || k<0 ) return -1;
+    if ( k >= rbuf->n ) return -1;
+    if ( k < 0 )
+    {
+        k = rbuf->n + k; 
+        if ( k < 0 ) return -1;
+    }
     int i = k + rbuf->f;
     if ( i >= rbuf->m ) i -= rbuf->m;
     return i;
@@ -58,9 +63,29 @@ static inline int rbuf_kth(rbuf_t *rbuf, int k)
 /**
  *  rbuf_last() - get index of the last element of the round buffer
  *  @rbuf:  the rbuf_t holder
+ */
+#define rbuf_last(rbuf) rbuf_kth(rbuf, -1)
+
+/**
+ *  rbuf_l2ridx() - get 0-based rbuf index which corresponds to i-th linear index
+ *  @rbuf:  the rbuf_t holder
+ *  @idx:   0-based linear index
  *
+ *  Returns 0-based circular index or -1 if out of bounds
  */
-#define rbuf_last(rbuf) rbuf_kth(rbuf, (rbuf)->n - 1)
+static inline int rbuf_l2ridx(rbuf_t *rbuf, int idx)
+{
+    if ( idx < 0 || idx >= rbuf->n ) return -1;
+    if ( idx >= rbuf->f )
+    {
+        int i = idx - rbuf->f;
+        if ( i >= rbuf->n ) return -1;
+        return i;
+    }
+    int i = rbuf->m - rbuf->f + idx;
+    if ( i >= rbuf->n ) return -1;
+    return i;
+}
 
 /**
  *  rbuf_next() - get index of the next element in the round buffer
@@ -198,4 +223,39 @@ static inline void rbuf_shift_n(rbuf_t *rbuf, int n)
     } \
 }
 
+/**
+ *  rbuf_remove_kth() - remove k-th rbuf element (0-based) and memmove the data block
+ *  @rbuf:      the rbuf holder
+ *  @type_t:    data type
+ *  @k:         k-th element to remove
+ *  @data:      data array to be modified
+ */
+#define rbuf_remove_kth(rbuf, type_t, kth, data) \
+{ \
+    int k = rbuf_kth(rbuf, kth); \
+    if ( k < (rbuf)->f )    /* shrink from back */ \
+    { \
+        int l = rbuf_kth(rbuf, -1); \
+        if ( k < l ) \
+        { \
+            type_t tmp = (data)[k]; \
+            memmove(data+k, data+k+1, (l - k)*sizeof(type_t)); \
+            (data)[l] = tmp; \
+        } \
+        (rbuf)->n--; \
+    } \
+    else                    /* shrink from front */ \
+    { \
+        if ( k > (rbuf)->f ) \
+        { \
+            type_t tmp = (data)[k]; \
+            memmove(&data[(rbuf)->f+1], &data[(rbuf)->f], (k - (rbuf)->f)*sizeof(type_t)); \
+            (data)[(rbuf)->f] = tmp; \
+        } \
+        (rbuf)->f++; \
+        (rbuf)->n--; \
+        if ( (rbuf)->f == (rbuf)->m ) (rbuf)->f = 0; \
+    } \
+}
+
 #endif
diff --git a/test/create-bam-test b/test/create-bam-test
new file mode 100755
index 0000000..f2fe81b
--- /dev/null
+++ b/test/create-bam-test
@@ -0,0 +1,99 @@
+#!/usr/bin/env perl
+#
+# Author: petr.danecek at sanger
+#
+
+use strict;
+use warnings;
+use Carp;
+
+my $opts = parse_params();
+create_test($opts);
+
+exit;
+
+#--------------------------------
+
+sub error
+{
+    my (@msg) = @_;
+    if ( scalar @msg ) { confess @msg; }
+    print 
+        "Usage: create-bam-test [OPTIONS]\n",
+        "Options:\n",
+        "   -b, --bam <file.bam>            \n",
+        "   -f, --fa-ref <ref.fa>           \n",
+        "   -o, --output-prefix <string>    \n",
+        "   -r, --region <region>           \n",
+        "   -h, -?, --help                  This help message.\n",
+        "\n";
+    exit -1;
+}
+sub parse_params
+{
+    my $opts = {};
+    while (defined(my $arg=shift(@ARGV)))
+    {
+        if ( $arg eq '-b' || $arg eq '--bam' ) { $$opts{bam}=shift(@ARGV); next }
+        if ( $arg eq '-f' || $arg eq '--fa-ref' ) { $$opts{ref}=shift(@ARGV); next }
+        if ( $arg eq '-o' || $arg eq '--output-prefix' ) { $$opts{out}=shift(@ARGV); next }
+        if ( $arg eq '-r' || $arg eq '--region' ) { $$opts{region}=shift(@ARGV); next }
+        if ( $arg eq '-?' || $arg eq '-h' || $arg eq '--help' ) { error(); }
+        error("Unknown parameter \"$arg\". Run -h for help.\n");
+    }
+    if ( !exists($$opts{bam}) ) { error("Missing the -b option.\n") }
+    if ( !exists($$opts{ref}) ) { error("Missing the -f option.\n") }
+    if ( !exists($$opts{out}) ) { error("Missing the -o option.\n") }
+    if ( !exists($$opts{region}) ) { error("Missing the -r option.\n") }
+    return $opts;
+}
+sub create_test
+{
+    my ($opts) = @_;
+    if ( !($$opts{region}=~/^([^:]+):(\d+)-(\d+)$/) ) { error("Could not parse the region: $$opts{region}"); }
+    my $chr = $1;
+    my $beg = $2;
+    my $end = $3;
+    my $ori_beg = $beg;
+    my $ori_end = $end;
+    my @reads  = ();
+    my $cmd = "samtools view -h $$opts{bam} $$opts{region}";
+    open(my $out,'>',"$$opts{out}.sam") or error("$$opts{out}.sam: $!");
+    open(my $fh,"$cmd |") or error("$cmd: $!");
+    while (my $line=<$fh>)
+    {
+        my @vals = split(/\t/,$line);
+        if ( $vals[0] eq '@HD' ) { print $out $line; next; }
+        if ( $vals[0] =~ /^\@/ ) { next; }
+        if ( $vals[3] < $beg ) { $beg = $vals[3]; }
+        if ( $vals[7] < $beg ) { $beg = $vals[7]; }
+        if ( $vals[3] + length($vals[9]) > $end ) { $end = $vals[3] + length($vals[9]); }
+        my $i;
+        for ($i=0; $i<@vals; $i++) { if ($vals[$i]=~/^RG:Z:/) { last; } }
+        if ( $i!=@vals ) { splice(@vals,$i,1); }
+        chomp($vals[-1]);
+        push @reads, \@vals;
+    }
+    close($fh) or error("close failed: $cmd");
+
+    print $out "\@SQ\tSN:$chr\tLN:".($end-$beg+1)."\n";
+    print $out "\@RG\tID:rg\tSM:sample\n";
+
+    for my $read (@reads)
+    {
+        $$read[3] -= $beg - 1;
+        $$read[7] -= $beg - 1;
+        print $out join("\t",@$read,"RG:Z:rg")."\n";
+    }
+    close($out) or error("close failed: $$opts{out}.sam");
+
+    `samtools view -b $$opts{out}.sam -o $$opts{out}.bam`;
+    `samtools index $$opts{out}.bam`;
+    `samtools faidx $$opts{ref} $chr:$beg-$end | sed 's,:, ,' > $$opts{out}.fa`;
+    `samtools faidx $$opts{out}.fa`;
+
+    $ori_beg -= $beg - 1;
+    $ori_end -= $beg - 1;
+    print "$chr:$ori_beg-$ori_end\n";
+}
+
diff --git a/test/fixref.2.out b/test/fixref.2.out
new file mode 100644
index 0000000..08762cb
--- /dev/null
+++ b/test/fixref.2.out
@@ -0,0 +1,11 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##contig=<ID=1,length=2147483647>
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	XY00001
+1	1	rs1	C	T	.	.	.	GT	0/1
+1	2	rs2	T	A	.	.	.	GT	0/1
+1	3	rs3	A	T	.	.	.	GT	0/1
+1	4	rs4	A	T	.	.	.	GT	0/1
+1	5	rs5	C	T	.	.	.	GT	0/1
+1	6	rs6	C	T	.	.	.	GT	0/1
diff --git a/test/fixref.2a.vcf b/test/fixref.2a.vcf
new file mode 100644
index 0000000..313c668
--- /dev/null
+++ b/test/fixref.2a.vcf
@@ -0,0 +1,10 @@
+##fileformat=VCFv4.2
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##contig=<ID=1,length=2147483647>
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	XY00001
+1	1	rs1	C	T	.	.	.	GT	0/1
+1	2	rs2	A	T	.	.	.	GT	1/0
+1	3	rs3	A	T	.	.	.	GT	0/1
+1	4	rs4	T	A	.	.	.	GT	1/0
+1	5	rs5	C	T	.	.	.	GT	0/1
+1	6	rs6	T	C	.	.	.	GT	1/0
diff --git a/test/fixref.2b.vcf b/test/fixref.2b.vcf
new file mode 100644
index 0000000..4a346a5
--- /dev/null
+++ b/test/fixref.2b.vcf
@@ -0,0 +1,10 @@
+##fileformat=VCFv4.2
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##contig=<ID=1,length=2147483647>
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
+1	1	rs1	C	T	.	.	.
+1	2	rs2	T	G	.	.	.
+1	3	rs3	A	T,C	.	.	.
+1	4	rs4	A	T,C	.	.	.
+1	5	rs5	C	A,T	.	.	.
+1	6	rs6	C	A,T	.	.	.
diff --git a/test/merge.gvcf.3.a.vcf b/test/merge.gvcf.3.a.vcf
new file mode 100644
index 0000000..9c97c17
--- /dev/null
+++ b/test/merge.gvcf.3.a.vcf
@@ -0,0 +1,8 @@
+##fileformat=VCFv4.2
+##contig=<ID=A>
+##contig=<ID=B>
+##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
+##INFO=<ID=SRC,Number=.,Type=String,Description="Source file">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample1
+B	1	.	G	.	1	.	END=2;SRC=file1	GT	0/0
diff --git a/test/merge.gvcf.3.b.vcf b/test/merge.gvcf.3.b.vcf
new file mode 100644
index 0000000..3773bca
--- /dev/null
+++ b/test/merge.gvcf.3.b.vcf
@@ -0,0 +1,10 @@
+##fileformat=VCFv4.2
+##contig=<ID=A>
+##contig=<ID=B>
+##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
+##INFO=<ID=SRC,Number=.,Type=String,Description="Source file">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample2
+A	1	.	G	C	1	.	SRC=file2	GT	1/1
+B	1	.	G	C	2	.	SRC=file2	GT	1/1
+B	2	.	A	C	2	.	SRC=file2	GT	1/1
diff --git a/test/merge.gvcf.3.out b/test/merge.gvcf.3.out
new file mode 100644
index 0000000..6201839
--- /dev/null
+++ b/test/merge.gvcf.3.out
@@ -0,0 +1,11 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##contig=<ID=A>
+##contig=<ID=B>
+##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
+##INFO=<ID=SRC,Number=.,Type=String,Description="Source file">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample1	sample2
+B	1	.	G	C	2	.	SRC=file1,file2	GT	0/0	1/1
+B	2	.	A	C	2	.	SRC=file1,file2	GT	0/0	1/1
+A	1	.	G	C	1	.	SRC=file2	GT	./.	1/1
diff --git a/test/mpileup/indel-AD.1.bam b/test/mpileup/indel-AD.1.bam
new file mode 100644
index 0000000..4b6fe57
Binary files /dev/null and b/test/mpileup/indel-AD.1.bam differ
diff --git a/test/mpileup/indel-AD.1.cram b/test/mpileup/indel-AD.1.cram
new file mode 100644
index 0000000..0fdd991
Binary files /dev/null and b/test/mpileup/indel-AD.1.cram differ
diff --git a/test/mpileup/indel-AD.1.fa b/test/mpileup/indel-AD.1.fa
new file mode 100644
index 0000000..9188e9e
--- /dev/null
+++ b/test/mpileup/indel-AD.1.fa
@@ -0,0 +1,13 @@
+>000000F 57093-57778
+CAGACAAACATACACCATCAGACAGCAGCACCATATTCTTTTTTTCTGCTAATTTGCTAA
+TTACACAAACACAGACACTAAGAAATATTCTTCCCCTTTGGAAAATGTTTTCCACATTGA
+ATCATGGTTGATTTCATTCATATTTTTTACGCTAATTAAAAAAATAAAGACTCTTTCATG
+TGAAAACAGAGCTTCACAAAGTACTCTCATTCTCACCGCTAGCAGGCTGACAATCAGCAG
+CAGACAGAGCATGATGTGTCTGATGGTCTGGTTGTCATCTGTCTGGGATTGAAGGCCAGG
+TGGCGGCAGATCTAATGGCTGCTCAGGAGGCAGAAGAACTCTGTTGCTGCCCATCACACA
+GCGCCCCACTGTGGTCTGAAGTAAAAAAGTTCATGTACTCGCATGAGAGTTATGTGTAAA
+ACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTG
+TTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACTG
+GTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAG
+TTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAT
+ACAAATTACATCTAGATATTTGTTAT
diff --git a/test/mpileup/indel-AD.1.fa.fai b/test/mpileup/indel-AD.1.fa.fai
new file mode 100644
index 0000000..d6bd5ca
--- /dev/null
+++ b/test/mpileup/indel-AD.1.fa.fai
@@ -0,0 +1 @@
+000000F	686	21	60	61
diff --git a/test/mpileup/indel-AD.1.out b/test/mpileup/indel-AD.1.out
new file mode 100644
index 0000000..05a6f90
--- /dev/null
+++ b/test/mpileup/indel-AD.1.out
@@ -0,0 +1,323 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##contig=<ID=000000F,length=686>
+##ALT=<ID=*,Description="Represents allele(s) other than observed.">
+##INFO=<ID=INDEL,Number=0,Type=Flag,Description="Indicates that the variant is an INDEL.">
+##INFO=<ID=IDV,Number=1,Type=Integer,Description="Maximum number of reads supporting an indel">
+##INFO=<ID=IMF,Number=1,Type=Float,Description="Maximum fraction of reads supporting an indel">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Raw read depth">
+##INFO=<ID=VDB,Number=1,Type=Float,Description="Variant Distance Bias for filtering splice-site artefacts in RNA-seq data (bigger is better)",Version="3">
+##INFO=<ID=RPB,Number=1,Type=Float,Description="Mann-Whitney U test of Read Position Bias (bigger is better)">
+##INFO=<ID=MQB,Number=1,Type=Float,Description="Mann-Whitney U test of Mapping Quality Bias (bigger is better)">
+##INFO=<ID=BQB,Number=1,Type=Float,Description="Mann-Whitney U test of Base Quality Bias (bigger is better)">
+##INFO=<ID=MQSB,Number=1,Type=Float,Description="Mann-Whitney U test of Mapping Quality vs Strand Bias (bigger is better)">
+##INFO=<ID=SGB,Number=1,Type=Float,Description="Segregation based metric.">
+##INFO=<ID=MQ0F,Number=1,Type=Float,Description="Fraction of MQ0 reads (smaller is better)">
+##INFO=<ID=I16,Number=16,Type=Float,Description="Auxiliary tag used for calling, see description of bcf_callret1_t in bam2bcf.h">
+##INFO=<ID=QS,Number=R,Type=Float,Description="Auxiliary tag used for calling">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="List of Phred-scaled genotype likelihoods">
+##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample
+000000F	392	.	C	<*>	0	.	DP=1;I16=1,0,0,0,32,1024,0,0,60,3600,0,0,0,0,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,32:1,0
+000000F	393	.	A	<*>	0	.	DP=1;I16=1,0,0,0,32,1024,0,0,60,3600,0,0,1,1,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,32:1,0
+000000F	394	.	T	<*>	0	.	DP=1;I16=1,0,0,0,32,1024,0,0,60,3600,0,0,2,4,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,32:1,0
+000000F	395	.	G	<*>	0	.	DP=3;I16=1,1,0,0,64,2098,0,0,120,7200,0,0,3,9,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,64:2,0
+000000F	396	.	T	<*>	0	.	DP=3;I16=1,1,0,0,74,2738,0,0,120,7200,0,0,5,17,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,74:2,0
+000000F	397	.	A	<*>	0	.	DP=3;I16=1,1,0,0,68,2410,0,0,120,7200,0,0,7,29,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,68:2,0
+000000F	398	.	C	<*>	0	.	DP=3;I16=1,1,0,0,63,2165,0,0,120,7200,0,0,9,45,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,63:2,0
+000000F	399	.	T	<*>	0	.	DP=3;I16=1,2,0,0,86,2582,0,0,180,10800,0,0,15,81,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,82:3,0
+000000F	400	.	C	<*>	0	.	DP=3;I16=1,1,0,0,63,2165,0,0,120,7200,0,0,13,89,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,63:2,0
+000000F	401	.	G	<*>	0	.	DP=3;I16=1,0,0,0,41,1681,0,0,60,3600,0,0,9,81,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,41:1,0
+000000F	402	.	C	<*>	0	.	DP=5;I16=1,1,0,0,59,1753,0,0,120,7200,0,0,17,149,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,59:2,0
+000000F	403	.	A	<*>	0	.	DP=5;I16=1,2,0,0,85,2649,0,0,180,10800,0,0,20,186,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,81:3,0
+000000F	404	.	T	<*>	0	.	DP=5;I16=2,1,0,0,117,4587,0,0,180,10800,0,0,23,229,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,110:3,0
+000000F	405	.	G	<*>	0	.	DP=6;I16=3,1,0,0,151,5755,0,0,240,14400,0,0,26,278,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,12,133:4,0
+000000F	406	.	A	<*>	0	.	DP=6;I16=2,1,0,0,119,4731,0,0,180,10800,0,0,29,333,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,112:3,0
+000000F	407	.	G	<*>	0	.	DP=6;I16=2,2,0,0,146,5460,0,0,240,14400,0,0,37,419,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,12,134:4,0
+000000F	408	.	A	<*>	0	.	DP=6;I16=2,1,0,0,114,4386,0,0,180,10800,0,0,35,461,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,107:3,0
+000000F	409	.	G	<*>	0	.	DP=6;I16=3,2,0,0,182,6796,0,0,300,18000,0,0,49,599,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,15,159:5,0
+000000F	410	.	T	<*>	0	.	DP=7;I16=3,1,0,0,127,4263,0,0,240,14400,0,0,46,638,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,12,114:4,0
+000000F	411	.	T	<*>	0	.	DP=8;I16=5,2,0,0,243,8757,0,0,420,25200,0,0,99,1615,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,21,188:7,0
+000000F	412	.	A	<*>	0	.	DP=8;I16=5,1,0,0,223,8577,0,0,360,21600,0,0,96,1720,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,18,172:6,0
+000000F	413	.	T	<*>	0	.	DP=9;I16=5,2,0,0,264,10258,0,0,420,25200,0,0,113,2039,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,21,201:7,0
+000000F	414	.	G	<*>	0	.	DP=9;I16=5,3,0,0,305,11939,0,0,480,28800,0,0,121,2273,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,230:8,0
+000000F	415	.	T	G,<*>	0	.	DP=9;I16=5,3,0,1,291,10937,22,484,480,28800,60,3600,136,2754,13,169;QS=0.929712,0.0702875,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=0.974597;BQB=1;MQ0F=0	PL:AD	0,5,202,24,205,214:8,1,0
+000000F	416	.	G	<*>	0	.	DP=10;I16=6,3,0,0,324,11944,0,0,540,32400,0,0,144,3034,0,0;QS=1,0;MQSB=0.924584;MQ0F=0	PL:AD	0,27,235:9,0
+000000F	417	.	T	<*>	0	.	DP=10;I16=6,3,0,0,352,13848,0,0,540,32400,0,0,151,3229,0,0;QS=1,0;MQSB=0.924584;MQ0F=0	PL:AD	0,27,251:9,0
+000000F	418	.	A	<*>	0	.	DP=10;I16=6,3,0,0,348,13536,0,0,540,32400,0,0,157,3387,0,0;QS=1,0;MQSB=0.924584;MQ0F=0	PL:AD	0,27,248:9,0
+000000F	419	.	A	<*>	0	.	DP=10;I16=6,2,0,0,320,12824,0,0,480,28800,0,0,139,2981,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,24,228:8,0
+000000F	420	.	A	<*>	0	.	DP=11;I16=5,2,0,0,279,11143,0,0,420,25200,0,0,129,2889,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,21,212:7,0
+000000F	421	.	A	<*>	0	.	DP=12;I16=7,4,0,0,382,13914,0,0,660,39600,0,0,214,4676,0,0;QS=1,0;MQSB=0.964642;MQ0F=0	PL:AD	0,33,255:11,0
+000000F	422	.	C	<*>	0	.	DP=13;I16=8,5,0,0,489,18651,0,0,780,46800,0,0,243,5389,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,39,255:13,0
+000000F	423	.	A	<*>	0	.	DP=15;I16=9,5,0,0,497,18435,0,0,840,50400,0,0,241,5233,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,42,255:14,0
+000000F	424	.	G	<*>	0	.	DP=15;I16=9,4,0,0,492,19080,0,0,780,46800,0,0,240,5404,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,39,255:13,0
+000000F	425	.	A	<*>	0	.	DP=15;I16=8,4,0,0,480,19236,0,0,720,43200,0,0,238,5422,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,36,255:12,0
+000000F	426	.	G	<*>	0	.	DP=15;I16=9,4,0,0,507,19965,0,0,780,46800,0,0,264,5994,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,39,255:13,0
+000000F	427	.	C	<*>	0	.	DP=15;I16=9,5,0,0,538,20956,0,0,840,50400,0,0,275,6203,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,42,255:14,0
+000000F	428	.	T	<*>	0	.	DP=15;I16=9,5,0,0,509,19219,0,0,840,50400,0,0,281,6359,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,42,255:14,0
+000000F	429	.	C	<*>	0	.	DP=17;I16=9,5,0,0,509,19219,0,0,840,50400,0,0,238,5326,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,42,255:14,0
+000000F	430	.	A	<*>	0	.	DP=18;I16=10,5,0,0,547,20371,0,0,900,54000,0,0,294,6708,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,45,255:15,0
+000000F	431	.	A	<*>	0	.	DP=19;I16=9,6,0,0,580,22580,0,0,900,54000,0,0,276,6228,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,45,255:15,0
+000000F	432	.	T	<*>	0	.	DP=19;I16=10,7,0,0,658,25976,0,0,1020,61200,0,0,302,6922,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,51,255:17,0
+000000F	433	.	T	<*>	0	.	DP=19;I16=10,8,0,0,684,26308,0,0,1080,64800,0,0,321,7205,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,54,255:18,0
+000000F	434	.	T	<*>	0	.	DP=19;I16=10,7,0,0,654,25440,0,0,1020,61200,0,0,304,6730,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,51,255:17,0
+000000F	435	.	T	<*>	0	.	DP=20;I16=11,8,0,0,705,26787,0,0,1140,68400,0,0,337,7521,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,57,255:19,0
+000000F	436	.	A	<*>	0	.	DP=21;I16=11,7,0,0,704,27746,0,0,1080,64800,0,0,332,7508,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,54,255:18,0
+000000F	437	.	T	<*>	0	.	DP=21;I16=11,8,0,0,746,29410,0,0,1140,68400,0,0,341,7681,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,57,255:19,0
+000000F	438	.	T	<*>	0	.	DP=22;I16=9,10,0,0,702,26688,0,0,1140,68400,0,0,341,7503,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,57,255:19,0
+000000F	439	.	T	<*>	0	.	DP=25;I16=11,10,0,0,779,29805,0,0,1260,75600,0,0,400,8944,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,63,255:21,0
+000000F	440	.	T	<*>	0	.	DP=27;I16=12,11,0,0,872,33646,0,0,1380,82800,0,0,385,8529,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,69,255:23,0
+000000F	441	.	G	<*>	0	.	DP=29;I16=17,11,0,0,1042,39830,0,0,1680,100800,0,0,495,11163,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,84,255:28,0
+000000F	442	.	T	<*>	0	.	DP=29;I16=17,10,0,0,1043,40935,0,0,1620,97200,0,0,508,11542,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,81,255:27,0
+000000F	443	.	A	<*>	0	.	DP=31;I16=18,9,0,0,1030,39986,0,0,1620,97200,0,0,516,11736,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,81,255:27,0
+000000F	444	.	T	<*>	0	.	DP=31;I16=18,10,0,0,1088,42568,0,0,1680,100800,0,0,511,11419,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,84,255:28,0
+000000F	445	.	T	<*>	0	.	DP=32;I16=18,9,0,0,1002,38232,0,0,1620,97200,0,0,499,11079,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,81,255:27,0
+000000F	446	.	T	<*>	0	.	DP=34;I16=21,11,0,0,1200,45896,0,0,1920,115200,0,0,588,13174,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,96,255:32,0
+000000F	447	.	A	<*>	0	.	DP=35;I16=21,10,0,0,1138,42818,0,0,1860,111600,0,0,612,13954,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,93,255:31,0
+000000F	448	.	T	<*>	0	.	DP=35;I16=21,11,0,0,1191,45423,0,0,1920,115200,0,0,593,13211,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,96,255:32,0
+000000F	448	.	TTGTG	TTG	0	.	INDEL;IDV=1;IMF=0.0285714;DP=35;I16=22,12,1,0,1863,108589,25,625,2040,122400,60,3600,642,14412,25,625;QS=0.986688,0.013312;VDB=4.51802e-08;SGB=-0.379885;MQSB=1;MQ0F=0	PL:AD	0,80,255:34,1
+000000F	449	.	T	<*>	0	.	DP=35;I16=20,12,0,0,1226,47486,0,0,1920,115200,0,0,607,13511,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,96,255:32,0
+000000F	450	.	G	<*>	0	.	DP=38;I16=25,13,0,0,1457,57045,0,0,2280,136800,0,0,715,16059,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,114,255:38,0
+000000F	451	.	T	<*>	0	.	DP=43;I16=25,14,0,0,1491,58519,0,0,2340,140400,0,0,708,15882,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,117,255:39,0
+000000F	452	.	G	<*>	0	.	DP=45;I16=26,14,0,0,1555,62549,0,0,2400,144000,0,0,731,16465,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,120,255:40,0
+000000F	453	.	C	<*>	0	.	DP=45;I16=25,14,0,0,1608,69148,0,0,2340,140400,0,0,731,16555,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,117,255:39,0
+000000F	454	.	A	<*>	0	.	DP=47;I16=26,17,0,0,1722,73004,0,0,2580,154800,0,0,817,18519,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,129,255:43,0
+000000F	455	.	G	<*>	0	.	DP=48;I16=27,17,0,0,1837,80653,0,0,2640,158400,0,0,861,19597,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,132,255:44,0
+000000F	456	.	T	<*>	0	.	DP=49;I16=25,19,0,0,1769,75479,0,0,2640,158400,0,0,853,19595,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,132,255:44,0
+000000F	457	.	T	<*>	0	.	DP=49;I16=28,19,0,0,1876,79136,0,0,2820,169200,0,0,905,20453,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,141,255:47,0
+000000F	458	.	A	<*>	0	.	DP=50;I16=26,19,0,0,1833,79049,0,0,2700,162000,0,0,884,20032,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,135,255:45,0
+000000F	459	.	G	<*>	0	.	DP=50;I16=27,19,0,0,1837,78191,0,0,2760,165600,0,0,907,20581,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,138,255:46,0
+000000F	460	.	A	<*>	0	.	DP=49;I16=26,16,0,0,1625,66133,0,0,2520,151200,0,0,842,19170,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,126,255:42,0
+000000F	461	.	A	<*>	0	.	DP=52;I16=26,15,0,0,1591,64163,0,0,2460,147600,0,0,854,19910,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,123,255:41,0
+000000F	462	.	A	<*>	0	.	DP=52;I16=25,19,0,0,1675,67071,0,0,2640,158400,0,0,920,21276,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,132,255:44,0
+000000F	463	.	A	<*>	0	.	DP=52;I16=27,19,0,0,1807,73217,0,0,2760,165600,0,0,966,22322,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,138,255:46,0
+000000F	464	.	T	<*>	0	.	DP=52;I16=27,21,0,0,1925,81581,0,0,2880,172800,0,0,1008,23194,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,144,255:48,0
+000000F	465	.	A	<*>	0	.	DP=52;I16=28,21,0,0,1986,84592,0,0,2940,176400,0,0,1050,24328,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,148,255:49,0
+000000F	466	.	A	<*>	0	.	DP=52;I16=26,19,0,0,1845,79017,0,0,2700,162000,0,0,983,22855,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,135,255:45,0
+000000F	467	.	T	<*>	0	.	DP=53;I16=27,20,0,0,1882,79994,0,0,2820,169200,0,0,1006,23366,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,141,255:47,0
+000000F	468	.	A	<*>	0	.	DP=54;I16=27,22,0,0,1975,84097,0,0,2940,176400,0,0,1053,24625,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,148,255:49,0
+000000F	469	.	T	<*>	0	.	DP=54;I16=28,22,0,0,2066,89308,0,0,3000,180000,0,0,1096,25728,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,151,255:50,0
+000000F	470	.	G	<*>	0	.	DP=55;I16=29,23,0,0,2079,88043,0,0,3120,187200,0,0,1120,26266,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,157,255:52,0
+000000F	471	.	A	<*>	0	.	DP=56;I16=30,21,0,0,2036,85916,0,0,3060,183600,0,0,1115,26553,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,154,255:51,0
+000000F	472	.	T	<*>	0	.	DP=59;I16=31,23,0,0,2131,89565,0,0,3240,194400,0,0,1189,28251,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,163,255:54,0
+000000F	473	.	C	A,<*>	0	.	DP=63;I16=20,13,13,10,1273,52265,962,42080,1980,118800,1380,82800,687,16149,530,12700;QS=0.570972,0.429028,0;VDB=1.06176e-06;SGB=-0.692717;RPB=0.425444;MQB=1;MQSB=1;BQB=0.246407;MQ0F=0	PL:AD	255,0,255,255,255,255:33,23,0
+000000F	474	.	A	<*>	0	.	DP=64;I16=34,21,0,0,2149,89755,0,0,3300,198000,0,0,1209,28945,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,166,255:55,0
+000000F	475	.	A	<*>	0	.	DP=64;I16=33,19,0,0,2024,84414,0,0,3120,187200,0,0,1133,27269,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,157,255:52,0
+000000F	476	.	A	<*>	0	.	DP=65;I16=34,21,0,0,2141,89013,0,0,3300,198000,0,0,1176,27986,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,166,255:55,0
+000000F	477	.	T	<*>	0	.	DP=65;I16=34,25,0,0,2360,99252,0,0,3540,212400,0,0,1299,31113,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,178,255:59,0
+000000F	478	.	C	<*>	0	.	DP=65;I16=34,25,0,0,2372,100238,0,0,3540,212400,0,0,1299,31001,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,178,255:59,0
+000000F	479	.	T	<*>	0	.	DP=68;I16=36,27,0,0,2503,104573,0,0,3780,226800,0,0,1376,32912,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,190,255:63,0
+000000F	480	.	G	<*>	0	.	DP=70;I16=39,27,0,0,2597,108131,0,0,3960,237600,0,0,1456,34674,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,199,255:66,0
+000000F	481	.	T	<*>	0	.	DP=70;I16=39,25,0,0,2517,104223,0,0,3840,230400,0,0,1422,33860,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,193,255:64,0
+000000F	482	.	T	<*>	0	.	DP=70;I16=38,26,0,0,2583,108821,0,0,3840,230400,0,0,1443,34469,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,193,255:64,0
+000000F	483	.	T	<*>	0	.	DP=70;I16=39,27,0,0,2666,112166,0,0,3960,237600,0,0,1499,35821,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,199,255:66,0
+000000F	484	.	G	<*>	0	.	DP=70;I16=40,26,0,0,2675,112545,0,0,3960,237600,0,0,1528,36816,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,199,255:66,0
+000000F	485	.	T	<*>	0	.	DP=70;I16=38,27,0,0,2626,110748,0,0,3900,234000,0,0,1504,36152,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,196,255:65,0
+000000F	486	.	T	<*>	0	.	DP=70;I16=39,25,0,0,2585,109217,0,0,3840,230400,0,0,1489,35795,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,193,255:64,0
+000000F	487	.	T	<*>	0	.	DP=73;I16=39,28,0,0,2690,112956,0,0,4020,241200,0,0,1508,36452,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,202,255:67,0
+000000F	488	.	A	<*>	0	.	DP=76;I16=42,25,0,0,2612,107680,0,0,4020,241200,0,0,1566,37882,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,202,255:67,0
+000000F	489	.	C	<*>	0	.	DP=79;I16=43,27,0,0,2682,108830,0,0,4200,252000,0,0,1613,38769,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,211,255:70,0
+000000F	490	.	C	<*>	0	.	DP=80;I16=42,30,0,0,2771,112661,0,0,4320,259200,0,0,1678,40510,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,217,255:72,0
+000000F	491	.	T	<*>	0	.	DP=80;I16=45,30,0,0,2918,119634,0,0,4500,270000,0,0,1744,42234,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,226,255:75,0
+000000F	492	.	G	<*>	0	.	DP=81;I16=45,32,0,0,3134,133520,0,0,4620,277200,0,0,1811,44003,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,232,255:77,0
+000000F	493	.	T	<*>	0	.	DP=81;I16=44,32,0,0,3015,126227,0,0,4560,273600,0,0,1779,43255,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,229,255:76,0
+000000F	494	.	G	<*>	0	.	DP=81;I16=43,31,0,0,3069,132431,0,0,4440,266400,0,0,1762,43026,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,223,255:74,0
+000000F	495	.	T	<*>	0	.	DP=84;I16=43,34,0,0,3069,129013,0,0,4620,277200,0,0,1802,43976,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,232,255:77,0
+000000F	496	.	T	<*>	0	.	DP=87;I16=49,34,0,0,3284,136740,0,0,4980,298800,0,0,1908,46696,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,250,255:83,0
+000000F	497	.	G	<*>	0	.	DP=87;I16=46,35,0,0,3310,141580,0,0,4860,291600,0,0,1877,45941,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,244,255:81,0
+000000F	498	.	T	<*>	0	.	DP=88;I16=45,33,0,0,3059,127911,0,0,4680,280800,0,0,1814,44382,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,235,255:78,0
+000000F	499	.	T	<*>	0	.	DP=89;I16=47,33,0,0,3204,135114,0,0,4800,288000,0,0,1874,45870,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,241,255:80,0
+000000F	500	.	T	<*>	0	.	DP=92;I16=47,34,0,0,3312,141794,0,0,4860,291600,0,0,1870,45908,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,244,255:81,0
+000000F	501	.	G	<*>	0	.	DP=97;I16=53,36,0,0,3549,151581,0,0,5340,320400,0,0,1977,48183,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:89,0
+000000F	502	.	T	<*>	0	.	DP=98;I16=52,35,0,0,3431,146027,0,0,5220,313200,0,0,1960,47742,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:87,0
+000000F	503	.	G	<*>	0	.	DP=98;I16=55,35,0,0,3594,153294,0,0,5400,324000,0,0,2061,50381,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:90,0
+000000F	504	.	T	<*>	0	.	DP=102;I16=53,33,0,0,3445,146525,0,0,5160,309600,0,0,1995,48731,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:86,0
+000000F	505	.	G	<*>	0	.	DP=102;I16=56,37,0,0,3686,156752,0,0,5580,334800,0,0,2099,51191,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:93,0
+000000F	506	.	C	<*>	0	.	DP=103;I16=56,33,0,0,3643,159901,0,0,5340,320400,0,0,2012,48902,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:89,0
+000000F	507	.	T	<*>	0	.	DP=103;I16=53,33,0,0,3484,150674,0,0,5160,309600,0,0,1995,48753,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:86,0
+000000F	508	.	C	<*>	0	.	DP=103;I16=52,33,0,0,3445,151067,0,0,5100,306000,0,0,1960,47672,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:85,0
+000000F	509	.	C	<*>	0	.	DP=103;I16=52,36,0,0,3574,156466,0,0,5280,316800,0,0,2036,49336,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:88,0
+000000F	510	.	C	A,<*>	0	.	DP=106;I16=56,37,0,1,3704,159594,22,484,5580,334800,60,3600,2140,51822,25,625;QS=0.993923,0.00607735,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,255,255,255,255,255:93,1,0
+000000F	511	.	T	<*>	0	.	DP=107;I16=58,36,0,0,3696,157294,0,0,5640,338400,0,0,2174,52616,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:94,0
+000000F	512	.	C	A,<*>	0	.	DP=107;I16=56,36,1,0,3705,161553,22,484,5520,331200,60,3600,2131,51713,25,625;QS=0.993918,0.00608239,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,255,255,255,255,255:92,1,0
+000000F	513	.	T	<*>	0	.	DP=108;I16=57,37,0,0,3791,164183,0,0,5640,338400,0,0,2178,52840,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:94,0
+000000F	514	.	G	<*>	0	.	DP=110;I16=55,40,0,0,3787,163211,0,0,5700,342000,0,0,2230,54240,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:95,0
+000000F	515	.	C	<*>	0	.	DP=110;I16=57,40,0,0,3864,164586,0,0,5820,349200,0,0,2235,53979,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:97,0
+000000F	516	.	G	<*>	0	.	DP=111;I16=58,42,0,0,4020,172632,0,0,6000,360000,0,0,2328,56306,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:100,0
+000000F	517	.	T	<*>	0	.	DP=112;I16=56,41,0,0,3850,163962,0,0,5820,349200,0,0,2278,55274,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:97,0
+000000F	518	.	G	<*>	0	.	DP=115;I16=61,41,0,0,3988,167042,0,0,6120,367200,0,0,2360,57238,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	519	.	C	<*>	0	.	DP=116;I16=61,39,0,0,4039,175485,0,0,6000,360000,0,0,2295,55849,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:100,0
+000000F	520	.	T	G,<*>	0	.	DP=116;I16=61,40,0,1,4083,176505,32,1024,6060,363600,60,3600,2305,55727,25,625;QS=0.99202,0.00798005,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,255,255,255,255,255:101,1,0
+000000F	521	.	G	<*>	0	.	DP=118;I16=61,41,0,0,4166,181354,0,0,6120,367200,0,0,2299,55471,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	522	.	G	<*>	0	.	DP=118;I16=63,39,0,0,4070,175132,0,0,6120,367200,0,0,2319,56007,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	523	.	C	<*>	0	.	DP=119;I16=64,40,0,0,4193,181777,0,0,6240,374400,0,0,2344,56492,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:104,0
+000000F	524	.	T	G,<*>	0	.	DP=119;I16=64,44,1,0,4253,180647,27,729,6480,388800,60,3600,2460,59296,25,625;QS=0.993531,0.00646862,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,255,255,255,255,255:108,1,0
+000000F	525	.	A	<*>	0	.	DP=119;I16=63,39,0,0,4126,179608,0,0,6120,367200,0,0,2330,56198,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	526	.	T	<*>	0	.	DP=120;I16=62,45,0,0,4234,181460,0,0,6420,385200,0,0,2450,58910,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:107,0
+000000F	527	.	C	<*>	0	.	DP=120;I16=64,40,0,0,4275,186993,0,0,6240,374400,0,0,2382,57234,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:104,0
+000000F	528	.	A	<*>	0	.	DP=121;I16=62,45,0,0,4346,189994,0,0,6420,385200,0,0,2426,58030,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:107,0
+000000F	529	.	T	<*>	0	.	DP=123;I16=64,43,0,0,4397,193617,0,0,6420,385200,0,0,2439,58361,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:107,0
+000000F	530	.	G	<*>	0	.	DP=123;I16=66,42,0,0,4392,192268,0,0,6480,388800,0,0,2486,59400,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:108,0
+000000F	531	.	T	<*>	0	.	DP=123;I16=60,43,0,0,4216,185698,0,0,6180,370800,0,0,2343,55757,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:103,0
+000000F	532	.	C	<*>	0	.	DP=124;I16=65,43,0,0,4421,195151,0,0,6480,388800,0,0,2481,59517,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:108,0
+000000F	533	.	A	<*>	0	.	DP=124;I16=63,41,0,0,4194,182396,0,0,6240,374400,0,0,2380,56934,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:104,0
+000000F	534	.	G	<*>	0	.	DP=124;I16=64,43,0,0,4351,190917,0,0,6420,385200,0,0,2465,59239,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:107,0
+000000F	535	.	G	<*>	0	.	DP=125;I16=67,42,0,0,4349,188647,0,0,6540,392400,0,0,2476,59300,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:109,0
+000000F	536	.	T	<*>	0	.	DP=125;I16=61,42,0,0,4238,186282,0,0,6180,370800,0,0,2330,55772,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:103,0
+000000F	537	.	A	<*>	0	.	DP=125;I16=63,46,0,0,4401,190703,0,0,6540,392400,0,0,2484,59546,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:109,0
+000000F	537	.	AC	A	0	.	INDEL;IDV=60;IMF=0.48;DP=125;I16=38,30,31,26,216,1072,1929,68145,4080,244800,3420,205200,1555,37389,1281,30547;QS=0.531796,0.468204;VDB=0.0330029;SGB=-0.693147;MQSB=1;MQ0F=0	PL:AD	255,0,255:68,57
+000000F	538	.	C	<*>	0	.	DP=65;I16=34,19,0,0,2157,94505,0,0,3180,190800,0,0,1211,29361,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,160,255:53,0
+000000F	538	.	CT	C	0	.	INDEL;IDV=64;IMF=0.512;DP=125;I16=33,34,36,22,206,950,1952,68106,4020,241200,3480,208800,1535,36845,1305,31339;QS=0.524714,0.475286;VDB=0.0281315;SGB=-0.693147;MQSB=1;MQ0F=0	PL:AD	255,0,255:67,58
+000000F	539	.	T	<*>	0	.	DP=60;I16=29,24,0,0,2172,96558,0,0,3180,190800,0,0,1199,28695,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,160,255:53,0
+000000F	540	.	G	<*>	0	.	DP=124;I16=62,40,0,0,4079,174277,0,0,6120,367200,0,0,2330,56376,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	541	.	G	<*>	0	.	DP=124;I16=63,45,0,0,4180,177706,0,0,6480,388800,0,0,2457,59503,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:108,0
+000000F	542	.	T	<*>	0	.	DP=124;I16=61,41,0,0,3930,162288,0,0,6120,367200,0,0,2321,56439,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	543	.	C	<*>	0	.	DP=122;I16=60,42,0,0,3946,163434,0,0,6120,367200,0,0,2369,57467,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	544	.	T	<*>	0	.	DP=121;I16=60,45,0,0,4162,176870,0,0,6300,378000,0,0,2442,59388,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:105,0
+000000F	545	.	G	<*>	0	.	DP=121;I16=58,45,0,0,4038,169874,0,0,6180,370800,0,0,2421,59221,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:103,0
+000000F	546	.	G	<*>	0	.	DP=121;I16=63,47,0,0,4266,177590,0,0,6600,396000,0,0,2546,61936,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:110,0
+000000F	547	.	A	<*>	0	.	DP=119;I16=62,44,0,0,4136,173460,0,0,6360,381600,0,0,2497,60853,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:106,0
+000000F	548	.	C	<*>	0	.	DP=119;I16=62,41,0,0,3969,162355,0,0,6180,370800,0,0,2437,59493,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:103,0
+000000F	549	.	C	A,<*>	0	.	DP=117;I16=34,24,29,19,2184,85418,1915,83023,3480,208800,2880,172800,1363,33477,1116,26886;QS=0.538404,0.461596,0;VDB=0.30007;SGB=-0.693147;RPB=0.890173;MQB=1;MQSB=1;BQB=0.513155;MQ0F=0	PL:AD	255,0,255,255,255,255:58,48,0
+000000F	550	.	G	T,<*>	0	.	DP=117;I16=59,45,0,1,4109,172725,22,484,6240,374400,60,3600,2419,58857,25,625;QS=0.994559,0.0054415,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,255,255,255,255,255:104,1,0
+000000F	551	.	G	<*>	0	.	DP=116;I16=59,45,0,0,4136,173538,0,0,6240,374400,0,0,2443,59581,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:104,0
+000000F	552	.	A	<*>	0	.	DP=116;I16=54,48,0,0,3895,157609,0,0,6120,367200,0,0,2374,57728,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	553	.	G	<*>	0	.	DP=116;I16=58,47,0,0,4042,165082,0,0,6300,378000,0,0,2449,59783,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:105,0
+000000F	554	.	A	<*>	0	.	DP=113;I16=54,47,0,0,3991,164831,0,0,6060,363600,0,0,2416,58918,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:101,0
+000000F	555	.	G	<*>	0	.	DP=112;I16=58,45,0,0,4006,164296,0,0,6180,370800,0,0,2450,59688,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:103,0
+000000F	556	.	A	<*>	0	.	DP=112;I16=55,43,0,0,3826,155856,0,0,5880,352800,0,0,2313,56193,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:98,0
+000000F	557	.	A	<*>	0	.	DP=112;I16=59,45,0,0,3937,156777,0,0,6240,374400,0,0,2450,59556,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:104,0
+000000F	558	.	A	<*>	0	.	DP=112;I16=55,42,0,0,3649,144817,0,0,5820,349200,0,0,2260,54730,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:97,0
+000000F	559	.	C	<*>	0	.	DP=112;I16=59,43,0,0,3956,160028,0,0,6120,367200,0,0,2372,57526,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:102,0
+000000F	560	.	T	<*>	0	.	DP=110;I16=56,44,0,0,3865,157199,0,0,6000,360000,0,0,2355,57267,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:100,0
+000000F	561	.	G	<*>	0	.	DP=110;I16=56,42,0,0,3873,160285,0,0,5880,352800,0,0,2286,55404,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:98,0
+000000F	562	.	T	<*>	0	.	DP=110;I16=54,42,0,0,3688,148574,0,0,5760,345600,0,0,2225,53961,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:96,0
+000000F	563	.	G	<*>	0	.	DP=109;I16=56,41,0,0,3859,160735,0,0,5820,349200,0,0,2230,53946,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:97,0
+000000F	564	.	G	<*>	0	.	DP=109;I16=58,43,0,0,3956,162670,0,0,6060,363600,0,0,2314,56052,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:101,0
+000000F	565	.	A	<*>	0	.	DP=108;I16=54,41,0,0,3766,154308,0,0,5700,342000,0,0,2151,51943,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:95,0
+000000F	566	.	T	<*>	0	.	DP=108;I16=57,44,0,0,3990,164950,0,0,6060,363600,0,0,2284,55308,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:101,0
+000000F	567	.	G	<*>	0	.	DP=108;I16=56,42,0,0,3823,154597,0,0,5880,352800,0,0,2227,54105,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:98,0
+000000F	568	.	T	<*>	0	.	DP=106;I16=54,43,0,0,3736,148330,0,0,5820,349200,0,0,2200,53288,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:97,0
+000000F	569	.	C	<*>	0	.	DP=104;I16=53,40,0,0,3686,150380,0,0,5580,334800,0,0,2135,51653,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:93,0
+000000F	570	.	T	<*>	0	.	DP=104;I16=54,45,0,0,3862,156134,0,0,5940,356400,0,0,2268,54950,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:99,0
+000000F	571	.	G	<*>	0	.	DP=104;I16=52,42,0,0,3659,146975,0,0,5640,338400,0,0,2126,51406,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:94,0
+000000F	572	.	T	A,<*>	0	.	DP=103;I16=50,44,0,1,3630,145286,22,484,5640,338400,60,3600,2138,51786,25,625;QS=0.993933,0.00606729,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,255,255,255,255,255:94,1,0
+000000F	573	.	C	<*>	0	.	DP=103;I16=52,43,0,0,3702,147654,0,0,5700,342000,0,0,2178,52732,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:95,0
+000000F	574	.	A	<*>	0	.	DP=102;I16=50,44,0,0,3626,144740,0,0,5640,338400,0,0,2151,52201,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:94,0
+000000F	575	.	A	<*>	0	.	DP=101;I16=50,43,0,0,3621,146859,0,0,5580,334800,0,0,2138,51838,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:93,0
+000000F	576	.	C	<*>	0	.	DP=99;I16=53,41,0,0,3651,146821,0,0,5640,338400,0,0,2144,51928,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:94,0
+000000F	577	.	A	<*>	0	.	DP=99;I16=50,40,0,0,3480,139974,0,0,5400,324000,0,0,2080,50630,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:90,0
+000000F	578	.	C	<*>	0	.	DP=99;I16=51,39,0,0,3535,142973,0,0,5400,324000,0,0,2025,48851,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:90,0
+000000F	579	.	A	<*>	0	.	DP=98;I16=45,43,0,0,3428,136908,0,0,5280,316800,0,0,2016,48816,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:88,0
+000000F	580	.	A	<*>	0	.	DP=98;I16=48,43,0,0,3539,143057,0,0,5460,327600,0,0,2019,48591,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:91,0
+000000F	581	.	C	<*>	0	.	DP=95;I16=48,42,0,0,3504,140196,0,0,5400,324000,0,0,2033,48757,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,255,255:90,0
+000000F	582	.	A	<*>	0	.	DP=94;I16=46,37,0,0,3342,137406,0,0,4980,298800,0,0,1889,45075,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,250,255:83,0
+000000F	583	.	G	<*>	0	.	DP=90;I16=44,40,0,0,3305,134325,0,0,5040,302400,0,0,1897,45227,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,253,255:84,0
+000000F	583	.	GAAAAA	GAAAA	0	.	INDEL;IDV=2;IMF=0.0222222;DP=90;I16=47,41,1,1,977,18253,38,722,5280,316800,120,7200,1993,47543,50,1250;QS=0.977475,0.0225252;VDB=5.8801e-07;SGB=-0.453602;MQSB=1;MQ0F=0	PL:AD	0,230,192:88,2
+000000F	584	.	A	<*>	0	.	DP=87;I16=43,38,0,0,3130,126212,0,0,4860,291600,0,0,1842,43878,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,244,255:81,0
+000000F	585	.	A	<*>	0	.	DP=88;I16=43,37,0,0,3175,129709,0,0,4800,288000,0,0,1795,42431,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,241,255:80,0
+000000F	586	.	A	<*>	0	.	DP=88;I16=38,36,0,0,2877,116309,0,0,4440,266400,0,0,1664,39564,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,223,255:74,0
+000000F	587	.	A	<*>	0	.	DP=88;I16=41,34,0,0,2893,114065,0,0,4500,270000,0,0,1631,38189,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,226,255:75,0
+000000F	588	.	A	<*>	0	.	DP=87;I16=38,36,0,0,2862,114152,0,0,4440,266400,0,0,1623,37917,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,223,255:74,0
+000000F	589	.	G	<*>	0	.	DP=87;I16=44,37,0,0,3066,122368,0,0,4860,291600,0,0,1755,40979,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,244,255:81,0
+000000F	590	.	T	<*>	0	.	DP=87;I16=43,36,0,0,2960,115286,0,0,4740,284400,0,0,1681,39133,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,238,255:79,0
+000000F	591	.	G	<*>	0	.	DP=86;I16=40,40,0,0,2985,114981,0,0,4800,288000,0,0,1710,39762,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,241,255:80,0
+000000F	592	.	A	<*>	0	.	DP=85;I16=39,31,0,0,2681,104999,0,0,4200,252000,0,0,1487,34521,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,211,255:70,0
+000000F	593	.	C	<*>	0	.	DP=84;I16=40,37,0,0,2864,109790,0,0,4620,277200,0,0,1614,37268,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,232,255:77,0
+000000F	594	.	T	<*>	0	.	DP=84;I16=35,37,0,0,2788,110382,0,0,4320,259200,0,0,1503,35071,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,217,255:72,0
+000000F	595	.	G	<*>	0	.	DP=82;I16=40,33,0,0,2756,107068,0,0,4380,262800,0,0,1524,35326,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,220,255:73,0
+000000F	596	.	A	<*>	0	.	DP=81;I16=38,35,0,0,2792,110522,0,0,4380,262800,0,0,1476,34078,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,220,255:73,0
+000000F	597	.	T	<*>	0	.	DP=80;I16=37,35,0,0,2670,101252,0,0,4320,259200,0,0,1464,34086,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,217,255:72,0
+000000F	598	.	T	<*>	0	.	DP=79;I16=35,36,0,0,2768,110274,0,0,4260,255600,0,0,1414,32928,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,214,255:71,0
+000000F	599	.	A	<*>	0	.	DP=77;I16=37,34,0,0,2724,107866,0,0,4260,255600,0,0,1435,33431,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,214,255:71,0
+000000F	600	.	G	<*>	0	.	DP=77;I16=35,35,0,0,2660,104772,0,0,4200,252000,0,0,1383,32119,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,211,255:70,0
+000000F	601	.	T	<*>	0	.	DP=77;I16=32,34,0,0,2504,97808,0,0,3960,237600,0,0,1264,29374,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,199,255:66,0
+000000F	602	.	T	A,<*>	0	.	DP=74;I16=32,31,0,1,2332,89464,37,1369,3780,226800,60,3600,1229,28993,25,625;QS=0.984382,0.0156184,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,156,255,190,255,255:63,1,0
+000000F	603	.	A	<*>	0	.	DP=68;I16=32,26,0,0,2242,89276,0,0,3480,208800,0,0,1196,27816,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,175,255:58,0
+000000F	604	.	G	<*>	0	.	DP=67;I16=33,27,0,0,2335,92671,0,0,3600,216000,0,0,1209,28001,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,181,255:60,0
+000000F	605	.	A	<*>	0	.	DP=66;I16=31,27,0,0,2203,86221,0,0,3480,208800,0,0,1178,27342,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,175,255:58,0
+000000F	606	.	T	G,<*>	0	.	DP=65;I16=29,27,1,0,2184,87922,22,484,3360,201600,60,3600,1135,26317,13,169;QS=0.989968,0.0100319,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,149,255,169,255,255:56,1,0
+000000F	607	.	G	<*>	0	.	DP=64;I16=32,26,0,0,2213,88215,0,0,3480,208800,0,0,1132,25998,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,175,255:58,0
+000000F	608	.	T	<*>	0	.	DP=62;I16=29,26,0,0,2121,83799,0,0,3300,198000,0,0,1114,25840,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,166,255:55,0
+000000F	609	.	A	<*>	0	.	DP=60;I16=29,22,0,0,1952,76460,0,0,3060,183600,0,0,1025,23691,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,154,255:51,0
+000000F	610	.	A	<*>	0	.	DP=59;I16=28,21,0,0,1925,77233,0,0,2940,176400,0,0,1018,23786,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,148,255:49,0
+000000F	611	.	C	T,<*>	0	.	DP=55;I16=14,11,15,11,996,41660,985,37993,1500,90000,1560,93600,551,13321,500,10956;QS=0.498217,0.501783,0;VDB=4.58562e-06;SGB=-0.692976;RPB=0.252922;MQB=1;MQSB=1;BQB=0.99929;MQ0F=0	PL:AD	255,0,255,255,255,255:25,26,0
+000000F	612	.	T	<*>	0	.	DP=54;I16=25,22,0,0,1826,71926,0,0,2820,169200,0,0,1010,23566,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,141,255:47,0
+000000F	613	.	A	<*>	0	.	DP=54;I16=26,23,0,0,1940,79254,0,0,2940,176400,0,0,1021,23633,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,148,255:49,0
+000000F	614	.	A	<*>	0	.	DP=53;I16=25,22,0,0,1844,75548,0,0,2820,169200,0,0,974,22558,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,141,255:47,0
+000000F	615	.	T	<*>	0	.	DP=53;I16=26,23,0,0,1888,74254,0,0,2940,176400,0,0,1007,23377,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,148,255:49,0
+000000F	616	.	T	<*>	0	.	DP=53;I16=25,21,0,0,1755,68505,0,0,2760,165600,0,0,926,21512,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,138,255:46,0
+000000F	617	.	T	<*>	0	.	DP=52;I16=24,24,0,0,1816,71554,0,0,2880,172800,0,0,995,23141,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,144,255:48,0
+000000F	618	.	C	<*>	0	.	DP=52;I16=25,21,0,0,1722,66670,0,0,2760,165600,0,0,925,21453,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,138,255:46,0
+000000F	619	.	A	<*>	0	.	DP=52;I16=23,21,0,0,1693,67139,0,0,2640,158400,0,0,869,20189,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,132,255:44,0
+000000F	620	.	A	<*>	0	.	DP=50;I16=20,20,0,0,1584,65444,0,0,2400,144000,0,0,790,18550,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,120,255:40,0
+000000F	621	.	C	<*>	0	.	DP=49;I16=23,21,0,0,1710,68988,0,0,2640,158400,0,0,891,21065,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,132,255:44,0
+000000F	622	.	T	<*>	0	.	DP=47;I16=19,21,0,0,1570,62196,0,0,2400,144000,0,0,816,19338,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,120,255:40,0
+000000F	623	.	A	<*>	0	.	DP=46;I16=21,20,0,0,1569,61081,0,0,2460,147600,0,0,812,19118,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,123,255:41,0
+000000F	624	.	T	<*>	0	.	DP=45;I16=18,20,0,0,1438,55408,0,0,2280,136800,0,0,767,17931,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,114,255:38,0
+000000F	625	.	C	<*>	0	.	DP=43;I16=17,21,0,0,1422,54590,0,0,2280,136800,0,0,788,18620,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,114,255:38,0
+000000F	626	.	T	<*>	0	.	DP=42;I16=16,19,0,0,1335,51875,0,0,2100,126000,0,0,750,17770,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,105,255:35,0
+000000F	627	.	A	<*>	0	.	DP=42;I16=17,21,0,0,1410,54084,0,0,2280,136800,0,0,781,18335,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,114,255:38,0
+000000F	628	.	G	<*>	0	.	DP=41;I16=16,22,0,0,1467,57575,0,0,2280,136800,0,0,799,18797,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,114,255:38,0
+000000F	629	.	T	<*>	0	.	DP=40;I16=17,21,0,0,1428,54984,0,0,2280,136800,0,0,802,18724,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,114,255:38,0
+000000F	630	.	C	<*>	0	.	DP=38;I16=13,21,0,0,1290,49598,0,0,2040,122400,0,0,756,17748,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,102,255:34,0
+000000F	631	.	T	G,<*>	0	.	DP=37;I16=14,19,1,0,1247,47855,32,1024,1980,118800,60,3600,717,16577,11,121;QS=0.97498,0.0250195,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,70,255,99,255,255:33,1,0
+000000F	632	.	T	<*>	0	.	DP=36;I16=15,19,0,0,1296,50260,0,0,2040,122400,0,0,713,16205,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,102,255:34,0
+000000F	633	.	C	<*>	0	.	DP=35;I16=12,18,0,0,1147,44371,0,0,1800,108000,0,0,631,14519,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,90,255:30,0
+000000F	634	.	C	<*>	0	.	DP=35;I16=14,19,0,0,1266,49284,0,0,1980,118800,0,0,665,14949,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,99,255:33,0
+000000F	635	.	T	<*>	0	.	DP=35;I16=12,19,0,0,1204,47500,0,0,1860,111600,0,0,634,14516,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,93,255:31,0
+000000F	636	.	C	<*>	0	.	DP=34;I16=12,17,0,0,1119,43609,0,0,1740,104400,0,0,580,13280,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,87,255:29,0
+000000F	637	.	T	<*>	0	.	DP=33;I16=13,15,0,0,1091,42997,0,0,1680,100800,0,0,529,12009,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,84,255:28,0
+000000F	638	.	A	<*>	0	.	DP=32;I16=12,17,0,0,1077,40721,0,0,1740,104400,0,0,561,12877,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,87,255:29,0
+000000F	639	.	A	<*>	0	.	DP=30;I16=13,14,0,0,941,34241,0,0,1620,97200,0,0,539,12123,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,81,255:27,0
+000000F	640	.	A	<*>	0	.	DP=29;I16=11,14,0,0,946,36348,0,0,1500,90000,0,0,525,11987,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,75,255:25,0
+000000F	641	.	G	<*>	0	.	DP=27;I16=10,12,0,0,821,31419,0,0,1320,79200,0,0,457,10131,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,66,255:22,0
+000000F	642	.	A	C,<*>	0	.	DP=26;I16=11,12,0,1,826,30722,22,484,1380,82800,60,3600,469,10353,9,81;QS=0.974057,0.0259434,0;SGB=-0.379885;RPB=1;MQB=1;MQSB=1;BQB=1;MQ0F=0	PL:AD	0,50,255,69,255,255:23,1,0
+000000F	643	.	C	<*>	0	.	DP=26;I16=11,12,0,0,876,33902,0,0,1380,82800,0,0,441,9465,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,69,255:23,0
+000000F	644	.	C	<*>	0	.	DP=26;I16=10,14,0,0,857,31563,0,0,1440,86400,0,0,456,9850,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,72,255:24,0
+000000F	645	.	C	<*>	0	.	DP=26;I16=11,14,0,0,899,33277,0,0,1500,90000,0,0,444,9280,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,75,255:25,0
+000000F	646	.	C	<*>	0	.	DP=26;I16=11,13,0,0,826,29430,0,0,1440,86400,0,0,435,9129,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,72,255:24,0
+000000F	647	.	T	<*>	0	.	DP=26;I16=10,13,0,0,878,33868,0,0,1380,82800,0,0,384,7878,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,69,255:23,0
+000000F	648	.	A	<*>	0	.	DP=26;I16=10,12,0,0,826,31614,0,0,1320,79200,0,0,374,7566,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,66,255:22,0
+000000F	649	.	C	<*>	0	.	DP=26;I16=11,13,0,0,904,34814,0,0,1440,86400,0,0,381,7535,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,72,255:24,0
+000000F	650	.	T	<*>	0	.	DP=26;I16=10,13,0,0,873,33579,0,0,1380,82800,0,0,355,6965,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,69,255:23,0
+000000F	651	.	T	<*>	0	.	DP=26;I16=11,13,0,0,881,32967,0,0,1440,86400,0,0,325,6235,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,72,255:24,0
+000000F	652	.	T	<*>	0	.	DP=25;I16=11,14,0,0,891,32693,0,0,1500,90000,0,0,321,6029,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,75,255:25,0
+000000F	653	.	A	<*>	0	.	DP=21;I16=9,12,0,0,804,31130,0,0,1260,75600,0,0,303,5555,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,63,255:21,0
+000000F	654	.	A	<*>	0	.	DP=21;I16=9,11,0,0,647,21917,0,0,1200,72000,0,0,269,4861,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,60,255:20,0
+000000F	655	.	C	<*>	0	.	DP=21;I16=9,12,0,0,664,22342,0,0,1260,75600,0,0,266,4666,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,63,255:21,0
+000000F	655	.	CACAATACAA	CACAA	0	.	INDEL;IDV=6;IMF=0.285714;DP=21;I16=4,11,5,1,0,0,593,58729,900,54000,360,21600,166,2878,100,1788;QS=0.598662,0.401338;VDB=2.08672e-10;SGB=-0.616816;MQSB=1;MQ0F=0	PL:AD	221,0,255:15,6
+000000F	656	.	A	<*>	0	.	DP=11;I16=4,6,0,0,392,15546,0,0,600,36000,0,0,130,2290,0,0;QS=1,0;MQSB=1.00775;MQ0F=0	PL:AD	0,30,255:10,0
+000000F	657	.	C	<*>	0	.	DP=11;I16=4,7,0,0,421,16219,0,0,660,39600,0,0,131,2189,0,0;QS=1,0;MQSB=0.964642;MQ0F=0	PL:AD	0,33,255:11,0
+000000F	658	.	A	<*>	0	.	DP=10;I16=1,3,0,0,67,1129,0,0,240,14400,0,0,53,937,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,12,59:4,0
+000000F	658	.	AA	AAATTA	0	.	INDEL;IDV=2;IMF=0.125;DP=16;I16=7,6,1,2,0,0,242,24170,780,46800,180,10800,167,2727,50,902;QS=0.462963,0.537037;VDB=1.46535e-07;SGB=-0.511536;MQSB=1;MQ0F=0	PL:AD	88,0,38:13,3
+000000F	659	.	A	<*>	0	.	DP=10;I16=0,4,0,0,57,815,0,0,240,14400,0,0,42,740,0,0;QS=1,0;MQ0F=0	PL:AD	0,12,42:4,0
+000000F	660	.	T	<*>	0	.	DP=2;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
+000000F	661	.	A	<*>	0	.	DP=8;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
+000000F	662	.	C	<*>	0	.	DP=8;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
+000000F	663	.	A	<*>	0	.	DP=8;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
+000000F	664	.	A	<*>	0	.	DP=8;I16=0,2,0,0,52,1352,0,0,120,7200,0,0,20,202,0,0;QS=1,0;MQ0F=0	PL:AD	0,6,47:2,0
+000000F	665	.	A	<*>	0	.	DP=8;I16=5,2,0,0,153,3407,0,0,420,25200,0,0,81,1131,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,21,115:7,0
+000000F	666	.	T	<*>	0	.	DP=8;I16=5,3,0,0,269,9361,0,0,480,28800,0,0,83,1057,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,207:8,0
+000000F	667	.	T	<*>	0	.	DP=8;I16=5,3,0,0,279,10001,0,0,480,28800,0,0,75,899,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,214:8,0
+000000F	668	.	A	<*>	0	.	DP=8;I16=5,3,0,0,278,10018,0,0,480,28800,0,0,67,757,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,214:8,0
+000000F	669	.	C	<*>	0	.	DP=8;I16=5,3,0,0,279,10051,0,0,480,28800,0,0,59,631,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,214:8,0
+000000F	670	.	A	<*>	0	.	DP=8;I16=5,3,0,0,287,10675,0,0,480,28800,0,0,51,521,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,220:8,0
+000000F	671	.	T	<*>	0	.	DP=8;I16=5,3,0,0,264,9116,0,0,480,28800,0,0,43,427,0,0;QS=1,0;MQSB=0.900802;MQ0F=0	PL:AD	0,24,205:8,0
+000000F	672	.	C	<*>	0	.	DP=7;I16=4,3,0,0,237,8337,0,0,420,25200,0,0,36,348,0,0;QS=1,0;MQSB=1.01283;MQ0F=0	PL:AD	0,21,193:7,0
+000000F	673	.	T	<*>	0	.	DP=7;I16=4,3,0,0,223,7385,0,0,420,25200,0,0,29,283,0,0;QS=1,0;MQSB=1.01283;MQ0F=0	PL:AD	0,21,181:7,0
+000000F	674	.	A	<*>	0	.	DP=6;I16=4,2,0,0,199,6757,0,0,360,21600,0,0,23,231,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,18,164:6,0
+000000F	675	.	G	<*>	0	.	DP=4;I16=2,2,0,0,147,5443,0,0,240,14400,0,0,19,189,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,12,134:4,0
+000000F	676	.	A	<*>	0	.	DP=3;I16=2,1,0,0,100,3434,0,0,180,10800,0,0,16,154,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,95:3,0
+000000F	677	.	T	<*>	0	.	DP=3;I16=2,1,0,0,104,3846,0,0,180,10800,0,0,13,125,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,9,100:3,0
+000000F	678	.	A	<*>	0	.	DP=2;I16=0,1,0,0,41,1681,0,0,60,3600,0,0,10,100,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,41:1,0
+000000F	679	.	T	<*>	0	.	DP=2;I16=1,1,0,0,68,2410,0,0,120,7200,0,0,9,81,0,0;QS=1,0;MQSB=1;MQ0F=0	PL:AD	0,6,68:2,0
+000000F	680	.	T	<*>	0	.	DP=1;I16=0,1,0,0,41,1681,0,0,60,3600,0,0,8,64,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,41:1,0
+000000F	681	.	T	<*>	0	.	DP=1;I16=0,1,0,0,41,1681,0,0,60,3600,0,0,7,49,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,41:1,0
+000000F	682	.	G	<*>	0	.	DP=1;I16=0,1,0,0,41,1681,0,0,60,3600,0,0,6,36,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,41:1,0
+000000F	683	.	T	<*>	0	.	DP=1;I16=0,1,0,0,35,1225,0,0,60,3600,0,0,5,25,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,35:1,0
+000000F	684	.	T	<*>	0	.	DP=1;I16=0,1,0,0,31,961,0,0,60,3600,0,0,4,16,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,31:1,0
+000000F	685	.	A	<*>	0	.	DP=1;I16=0,1,0,0,29,841,0,0,60,3600,0,0,3,9,0,0;QS=1,0;MQ0F=0	PL:AD	0,3,29:1,0
+000000F	686	.	T	<*>	0	.	DP=1;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
+000000F	687	.	N	<*>	0	.	DP=1;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
+000000F	688	.	N	<*>	0	.	DP=1;I16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;QS=0,0;MQ0F=0	PL:AD	0,0,0:0,0
diff --git a/test/mpileup/indel-AD.1.sam b/test/mpileup/indel-AD.1.sam
new file mode 100644
index 0000000..f7bef6a
--- /dev/null
+++ b/test/mpileup/indel-AD.1.sam
@@ -0,0 +1,156 @@
+ at HD	VN:1.4	SO:coordinate
+ at SQ	SN:000000F	LN:686
+ at RG	ID:rg	SM:sample
+ST-E00128:308:HHVVLALXX:8:1210:16660:4227	163	000000F	392	60	147M1D4M	=	765	466	CATGTACTCGCATGAGAGTTATGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTC	AAAFFJJFJJAJJJJJJJJFJJJJJJFJJJJJFJFJJJJFJJJJJJJJJJJJJJJFJJJJJJJJJJJFFJJJJJJJJJJJJJJJFJJJFAJFJJAJJJ-<FFFFFJAAJFFJJJFJFFJFJJFJAJJ)AJF<JFJJFJFJJ<FJFFJJJJ-	MD:Z:147^T4	PG:Z:MarkDuplicates	NM:i:1	AS:i:147	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2102:3346:29578	147	000000F	395	60	143M1D8M	=	206	-341	GTACTTGCATGTGAGTTATGTGTAAAACAGAGCTAAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGG	<-<-7---7-----------7<FA--FA--F<A7---JFFJFF<F7JF7FJJFFJJJFJFFJJJFAFFFJJJAJJJJJJ<JFJJJJJJJJFJJAJ7FJJJJJF<7JJ<JJF-FJJJAFJJJJJJJJ77JJAJJJFJJFJFJJJJ<FAFAAA	MD:Z:5C5A22C43C64^C8	PG:Z:MarkDuplicates	NM:i:5	AS:i:124	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2113:30360:20471	147	000000F	395	60	143M1D8M	=	106	-441	GTACTCGCATGAGAGTTATGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGG	-F-7<7-<-JJJFAJFJFJJJFFFFFAFJJFJJA7AJJF-FFJFFJJJJJJJ<JFJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJFF-JJJJJJJJJJJFJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJF<<FAAJFFAF<A	MD:Z:78C64^C8	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1224:23744:37348	163	000000F	402	60	137M1D14M	=	604	328	AATGAGAGTTATGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAG	AAFFFJJJ<JJJJJJJJJJJJJJJJJJJJJJJJFJF-FJJJJJJJJFAJJJJJJJJJJJFJJAFFFJJJFJJJJJJFJJFJJJFJJJJJJJJJFFJJJJFJJJ<J<JAFJJJAJJA<AJJJJJJ7<JFJJJJJ<<JFF7-<<FF<-AFFJF	MD:Z:0C136^T14	PG:Z:MarkDuplicates	NM:i:2	AS:i:143	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2102:23652:24251	147	000000F	402	60	137M1D14M	=	1	-553	CATGAGAGTTGTGGCTAACACAGAGCTCAATTTTCTTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTAGACCGGAG	-7---<-<-7)777-----<A7<-----AJJF<---F7AFJAF-77JFFF7FAFAA777-<FAF--FJFJJJJA-F-AFA-<AA-<F7FFFJJJFJF7JF-FFJJJFAJ<7-<JJJAAFJ<FA<7<7FFJJJJJ<JJA--F<-JFAAAAAA	MD:Z:10A2T0G3A15A102^T5G8	PG:Z:MarkDuplicates	NM:i:7	AS:i:115	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2215:15341:59921	163	000000F	405	60	134M17S	=	728	459	GAGAGTTATGTGTAAAACAGAGCTCAATTTTATTTAGTATTTATTGTGCCGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGAGCGCTCCCTATGCGTGCAGGCTATCATGTCAGGTACGGTTTGAACCGCAGAGG	A---A7F7FJA<JJJ-<F<F-FJ7-<----<FF-F-7F<--<<--77<--7AJ---7-7AF-7---7AAJ----7<7--AFJF7--777-7A---7--7----7--F7A-A-7-7)))7)--<--7----7-7-)---7---7-)))-)-)	MD:Z:35T13A47T1T7C7T18	PG:Z:MarkDuplicates	NM:i:6	AS:i:104	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2117:19664:38825	99	000000F	410	60	19S129M1D3M	=	451	193	CACATCCTTACCTTAAACATTATGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJFJJJJJJJJJJF<	MD:Z:129^T3	PG:Z:MarkDuplicates	NM:i:1	AS:i:129	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2117:26047:35397	99	000000F	411	60	20S128M1D3M	=	526	263	TTCGCCAGTTCCTGGGGGTCTATGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJFFJJJJJFFFJJFFJJJJJAFJJJ7	MD:Z:128^T3	PG:Z:MarkDuplicates	NM:i:1	AS:i:128	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2220:31842:5493	1123	000000F	411	60	20S128M1D3M	=	526	263	TTCGCCAGTTCCTGGGGGTCTATGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGT	AAFFFJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJFJ-FJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJAFJFF-A<AAFJJJJJ7<FJJJAAAF<FJJJ-	MD:Z:128^T3	PG:Z:MarkDuplicates	NM:i:1	AS:i:128	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1216:27529:24638	147	000000F	413	60	125M1D26M	=	229	-336	TGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGG	-FAFJJJJFFF-JFAJFAJAJJJJFFJJJJJJJJAJJJJFJJJJJJJAFJJJJJJJJJJJJJJJFJFJJJFJJFFJJJJJJJJJJJJJJJJJF<AJJJFFFJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJFJJFFAAA	MD:Z:60C64^C10C15	PG:Z:MarkDuplicates	NM:i:3	AS:i:134	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1216:26849:24690	1171	000000F	413	60	125M1D26M	=	229	-336	TGTGTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGG	-AAJJFJJJJJA7JJJAAJJFFJFJFFAJFJJJJF-AJFAJJJJFJJJJJJJJJJJJJJFJJFJJJJJJJJJJJFJJJJJJJJJJJFJJFJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJFFJFJJFFAA<	MD:Z:60C64^C10C15	PG:Z:MarkDuplicates	NM:i:3	AS:i:134	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2104:5994:8991	163	000000F	416	60	123M1D28M	=	1012	732	GTAAAACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATG	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJ7JJJJJJJJJ<<JJJJJFJJJFJJJJ<JFJAF<A-7<F7A<)F<JJFJ7<--7A-<AA7AAJAF)AA-A<-A-)77<7F--A-)<<-	MD:Z:123^T28	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1122:14174:33252	99	000000F	420	60	21S29M2D9M1D77M1D15M	=	452	185	CTCGCATCACTTCTGCATGCCAACAGAGCTCAATTTTATTTTGTATTTATTGCAGTTAGAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAG	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJFJ	MD:Z:29^TG9^A12C64^C10C4	PG:Z:MarkDuplicates	NM:i:6	AS:i:98	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1102:22303:21139	99	000000F	421	60	22S118M1D11M	=	820	548	AATGTGCGTGGACGTATAATGCACAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCG	AAFFFJJJJJJJJJJJJFFJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAFFJJJJJJJJFJJJJFAJJJJJJJ	MD:Z:118^T11	PG:Z:MarkDuplicates	NM:i:1	AS:i:122	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2108:1407:24251	1107	000000F	422	60	116M1D10M25S	=	492	-57	CAGAGCTCAATTGTATTGTGTATTTATTCTGCAGTTAGAAGATAATATGATAAAATCTGTTTGTCTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAAGGTCCATACCCACGAGTCCN	AF)7-F-A-7A<-7F-<-F7<<-A7-7F-AAF<<FJF-7<-AJAJAF7-A-A<---A--<A--7-AFFJF-JJJJF<AJFJJJAJFJAF<FAJJFJJJFFFJJFFJJJA<JJJJFJJJFJJF<F7FFJFJJJJJJFJJJJJJJJJJFFAA#	MD:Z:12T4T10G11A10C12T51^C10	PG:Z:MarkDuplicates	NM:i:7	AS:i:89	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2203:25926:68869	1107	000000F	422	60	116M1D10M25S	=	492	-57	CAGAGCTCAATTTGACTTTGTACTTATTCGACAGTTGGAAAATAACATGATAGAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAAGGTCCATACCCACGAGTCCC	)-)-7--7-A7---7-7--AAF<7-777---7JF7<7-AF-7-7A-AF-<-<-7----<<-7---FJAJJFJJJJJJFJJ<JFJAAAJJJJJFJFJJJJFJJJJJJJJFJJJJJJJJJFJJJJJJFJFJJJJJJJJJJJJJJJJJFFFAAA	MD:Z:13T1T6T5G0T0G5A8T5C0A63^C10	PG:Z:MarkDuplicates	NM:i:11	AS:i:69	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1221:26656:47210	147	000000F	422	60	116M1D35M	=	195	-379	CAGATCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTC	<77--<<<<A-<F<--77F<----F7-AF---<JF<AF-7<JJAF7AFAFFA--FFJFJJ-JFJJFAFJJJJJJJJJJJJFJ<7-J7JFFAJJA<AJJJJJJJFFJJJJJJJJJJJJJJFJFJJJJAJJFJJJJJFFJJJF7FF<FFAAA-	MD:Z:4G46C64^C10C24	PG:Z:MarkDuplicates	NM:i:4	AS:i:129	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1124:12357:72895	99	000000F	423	60	15S115M1D21M	=	569	302	AAGCCGCGTGATGCGAGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAAC	AAFFFJJJJJFJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJFJFAJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJFJJJJJJJJJJJJJ<AJJJ<AJF<FJ-FFFFAJ<FAAFFJJJAAFFFJ<7FJFFFFF	MD:Z:50C64^C10C10	PG:Z:MarkDuplicates	NM:i:3	AS:i:119	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2214:24505:2874	83	000000F	423	60	115M1D16M20S	=	48	-507	AGAGCTCAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGACCATGCGACTGTGACAAGTA	JJFJFJJFAJJJJFJJJJJJJJJJJJJJJJJJJJJJJJAJJJFJJJJJJJJJ<JJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJFJJJJJJJJJJJJJJJFFFAA	MD:Z:50C64^C10C5	PG:Z:MarkDuplicates	NM:i:3	AS:i:114	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1212:10450:51271	163	000000F	429	60	109M1D42M	=	772	478	CAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAA	AAFFFJJJAFJJJJJJFJJAJJJJJJJFFJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJ-AFJJJJFJAFFJFJJJJJJJFJJJAFJJAJAFFFFJFFJJJJJJJJJJJJJJJJJJFJJJJ<JJJJA<FFJJAAF<F<<FFAFFJJJFJJ	MD:Z:44C64^C10C31	PG:Z:MarkDuplicates	NM:i:3	AS:i:134	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1214:5994:34729	1107	000000F	429	60	110M1D20M21S	=	44	-516	CAATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACCGGCGGGTTAACACTCATCCC	<AJJFJJJFJFFAF<AJFJJJJJFAJJJJJJFJJA-JFJ<JAFJ<FA7FJFJJAJFJFJJFJFJFJJJJJFJFJA<JJJJA<JF-JJFFJJJFJJJAFJFJ<JJJJJJFJJFF<AJAAJJJFFFFJAFAFJAJA<JFJFFFJFF<A--AAA	MD:Z:110^T20	PG:Z:MarkDuplicates	NM:i:1	AS:i:123	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2120:28970:13000	83	000000F	429	60	110M1D20M21S	=	24	-536	CAATTTTATTTTGTATTTATTGTTCAGTTAGAAAATAATATGATCAAGTCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACCGGCGGGTTAACACTCATCCC	7--FFA7FFAAF7JJF<FJFF<7-JJJJJJJJJAFJJJJAFFAAJA<-JJJFJJJFJJJFFA-FFJFJJJJJJJJJAFAJJFAFAJFFJFAJJJJFJJJJJJJJJFFJJFJJJJJJFJJJJJJJJJJA<FFJFJJJJAFJJJJFJJFFFAA	MD:Z:23G23A62^T20	PG:Z:MarkDuplicates	NM:i:3	AS:i:113	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2111:29944:30474	147	000000F	430	60	109M1D42M	=	194	-388	AATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAAC	-JJAFA<JJJJJJAFFFFJJJJJJJJJJJJJF7AFAAJFJFFJJ<F-JJJJJJJJJJFAFFJJJJJJJJJJJJJJJJJFJAJJJJJJJJFJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAAA	MD:Z:109^T42	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2111:29467:30597	1171	000000F	430	60	109M1D42M	=	194	-388	AATTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAAC	<A77-<A-7-77FFAFAFA<7--AJJAFF-AA-AJJA-F-F<F-AJA<A7-F-JA--FJFA7F-7J7AF<JFJFJFA7JA7AA-<FAFAA<JAJJJFAA-JFFA-7-JAJJJ<FJJJF7A7JJJFFFFJ7-JFFF<AFJJJAJFJAFAFAA	MD:Z:109^T42	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1215:24677:30527	163	000000F	431	60	107M1D44M	=	669	373	GTTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACA	AAAFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAAJJJJJJJJJJJJJJJJJJJJJJJJ<JJJ<FJJJJJJJJJJJJJFJAJJJJJJFJA7FFJJJJJJA7AAFFFJJJA<AAJJJF-FFF<<AF-	MD:Z:0A41C64^C10C33	PG:Z:MarkDuplicates	NM:i:4	AS:i:133	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2108:25641:68306	1187	000000F	431	60	107M1D44M	=	669	373	GTTTTATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTTCTGTCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACA	AAAFFFJFFJJJJJJJFFFJJFJJJFJJFFJJJ-FJJJAJFJJJJJJJJJJJJJJ<FJJJ-FFJJJJJJJJJJ-FA-FJJJJJJJFJAFJF-7FFFJJJ-AF<-FAF--7FJA7<<)FJA-)7<---A7A---7<A-7<A<F<F-7-A<FA	MD:Z:0A41C44G3G15^C10C33	PG:Z:MarkDuplicates	NM:i:6	AS:i:123	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2210:20141:37436	147	000000F	435	60	104M1D23M24S	=	364	-199	TATTTTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTTGACAGACATCCACAGTTTCTCTC	JJJJJJJJJJJJJJJJJJJJJJJJJ7JAJJJJJJJJJFJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFAFAA	MD:Z:104^T23	PG:Z:MarkDuplicates	NM:i:1	AS:i:120	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1212:16975:63806	147	000000F	436	60	102M1D49M	=	223	-365	ATTTTGTATTTATTGTGCAGTTAGAAAAGAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCATCTGCGTGCGGGCTATCATGTCAGGTATGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAA	-F77A<7-JFA-FFJF<-FJJAA<--7<-FA-<AAJJF7--AF<JFFJF<F-A<<FJJJJFJFJAJFAA7-77A7--FJFJ7AAAJ7<FA77F<FFFA7A-AAF--JJJFFA-JJFAFAAF<-JFFJFFJJJJJJJJFFJAAFJJFF7AAA	MD:Z:28T8C36C9T17^C49	PG:Z:MarkDuplicates	NM:i:5	AS:i:124	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2103:31872:59095	99	000000F	438	60	21S100M1D30M	=	661	370	GAGATTCAGAAGTGAGCTCAGTTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGT	AAFAFJJJJFJJJJJJJJJJJFJFJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFFJAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJFAAJJJ<JJJJJF	MD:Z:35C64^C10C19	PG:Z:MarkDuplicates	NM:i:3	AS:i:113	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2123:12662:68254	99	000000F	439	60	23S99M1D29M	=	504	217	CATTCGCAGAGCACCACAGGCACTTGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATG	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJFJJJJJJAJJJJJJJJJJAJJ	MD:Z:34C64^C10C18	PG:Z:MarkDuplicates	NM:i:3	AS:i:111	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2220:30289:52520	163	000000F	439	60	100M1D45M6S	=	766	463	TTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTAGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGCGGATCTCTGTCAACACAACAGACCAAGC	-AA-FF<FFAFFFFFF<-FFJFJJJJJJ--AFJJF<JFJJAJ<AAF-<-7F-7AAJAJF<F-7AFFFJFAJJJJJ<-F-FA<F7AFA<FJ<A-A<A<-7FF--))-AF7JF)A)A)-77<<<-<A)7)-----7F7A-<F-<FFJ-)-7--	MD:Z:61T38^T22T4G17	PG:Z:MarkDuplicates	NM:i:4	AS:i:123	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1202:9983:67621	99	000000F	439	60	22S100M1D29M	=	587	295	GGATCCGAGTTATGGAGCCGGATTGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGT	AAFFFJ-FJJJAJ7FJJFFFJJJJAJJJ7FF<FJJAJJJAFFJFJJJFJJJJJJFFJJFJJFJFFJJJFJJJJJAJA<JJJJJJJJJJJJ7F<JJJJJJFFFJJJJJJJJFJJAFF-<7<AAAFAF-F<AJF<JJJJJF7AF7<-AJFJAA	MD:Z:100^T29	PG:Z:MarkDuplicates	NM:i:1	AS:i:122	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2116:4817:30545	163	000000F	440	60	99M1D52M	=	501	197	TGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTG	AAAFA7AFFJJJJJJJJJJJJJJJFJFFJJJJJJJJJFJJJFJJJJJJJJJJJJJFFJFJJJJJJFJJFJFFJJJFJ<JJJJJJJJJJFJJJJFFJFJJJJ-FJJJF-FJ<FJJFFFJ<AA-FFFAF7FJJAAAJJA<7<--A<7<--A-<	MD:Z:99^T52	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2107:22282:11084	83	000000F	440	60	99M1D36M16S	=	262	-314	TGTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAAACGTGGAGACAGGTAG	FJFAA<<AJJJJFAFJJFJFJFJJJFFFJJJJJFFAFJFFJFFJJJAFJAFFJJJJJJJFJJJJJJJFFJJJJFJ<JJJJJJJJJJAJJJJJJJJJJAJJJFJJJJ<JJJJJJJJFAFFJJJJJJJJJJJFJFFJAFJJJJJJJJJFFFAA	MD:Z:99^T36	PG:Z:MarkDuplicates	NM:i:1	AS:i:128	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1219:14854:19874	163	000000F	441	60	98M1D53M	=	647	332	GTATTTATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGA	AAAAFJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJFJJJFJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJAJFJJJFFJJJJ<AJJJJJFFJF<FJ7FAFA	MD:Z:98^T53	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1223:25357:38139	99	000000F	441	60	21S97M1D33M	=	675	369	GATTACGGTGGTGCAAGTAGGGTATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTG	AAAFFJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAFJJJJJJJJJJJAJJAJJJ	MD:Z:32C64^C10C22	PG:Z:MarkDuplicates	NM:i:3	AS:i:113	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1120:30787:70258	163	000000F	443	60	95M1D52M4S	=	764	456	ATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTACCC	---<-7<AFJJJJ-<-FJJJJJJJFJJJJJJJAJJ-<JFF<7-7JJF7<7<JJJJ7FFJ-<-AA-<-<7<AFA--7-7-AA<FFFJJJFJFF7JFFA7<7J-A<<JFF<<A<F7AA7AAJ<JJA-FFF-AJJF7F-FFFFFJAFF77--7)	MD:Z:30C64^C10C41	PG:Z:MarkDuplicates	NM:i:3	AS:i:130	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2119:5274:32496	163	000000F	443	60	95M1D56M	=	672	357	ATTTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTCACT	-AAFFJ<J<FJJJ7JJJ7JFJJJJJFJJJ<JFJJFFJJJJFJ7JJJJJJJJJJJJ7AJJFJFJJJJJJJJ<-7<7AAFJJJJJJJJJFFJJJJJJJJFAFJJJFFFF<-FAJ7FFFFJJAF-A<AFFFFJA7FFJJ<FA7-A-A-<F--A7	MD:Z:30C64^C10C41G3	PG:Z:MarkDuplicates	NM:i:4	AS:i:130	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2115:15026:32654	99	000000F	445	60	22S93M1D36M	=	893	597	GATGCATAGTTGCAGGTGCCCATTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCA	A-AFFJJJJJJJJJJJJAJJJJJJJJJJFAJJJFJFJJFJJFJJJJJJJJJJJJJJJJJJJJJFJFFJJJF<FJJJJJJJJJJJJJJAJAJJJJJJJJJJJJJJJJJJJJFJJJFJ-7AFJFAF<AFFF<F7<FAFFJJJFAJJFJJJJJJ	MD:Z:28C64^C10C25	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1102:17584:31881	99	000000F	446	60	22S92M1D37M	=	585	295	GGAGAACCAACTGCTAGACTTGTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAA	AAFFFJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ	MD:Z:27C64^C10C26	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1102:17634:32390	1123	000000F	446	60	22S92M1D37M	=	585	295	GGAGAACCAACTGCTAGACTTGTATTGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAA	AAFFFJJJJJJJJJJJJAJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJFJJFJJJJJJJJJJJJJJJJJJJJ<JFFJJJJJJJJJJJJJJJJJFJJJJJJJJFJFJJJJJJJFJJJJJJJAJJFJFJFFJJAFFFJJFJFJFFFJJJJJJ<	MD:Z:27C64^C10C26	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2213:28189:71910	163	000000F	446	60	93M1D58M	=	814	437	TATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGCCTGTCAACACAACAGAAAAAGTGACTGAT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ<JJJJJJJJJJJJJ<JFJFJJFFJJJJJ<JJJJJJJJAJJFAJJFFFJJJJJJJJAFJJJJJJJJJFFJJFAAJJJ-F7AFJJJJF))77-7<<FF<-<<FFFJF<7FAJ<7<AA-	MD:Z:93^T28T29	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2222:15716:24181	147	000000F	447	60	92M1D59M	=	202	-397	ATTGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATT	-7JJJJJAJJFA---7-<JFAAF7-AJF<A7<7FJ<<J<AFA)JFJFJFJJFFAJFF<JF<<-<7F-JJJJJJJJAJJJJJJJJJJJFJJJJJJJJF7<<JFFFJJJFJJ<JJJJJJJJJJJJJJFJFJFFJJJJJJJJJJJJJJJFFFAA	MD:Z:92^T59	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2224:6796:65476	99	000000F	449	60	22S89M1D40M	=	804	506	CGTTCTGCAGACTCCGGACTTATGTGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACAC	AAAFFJJJAJJJAFFJJFFFJFJJJJJFJFJJJJJJJJJJJJJJJJJJJJAJFJJFJJJJJJJA<F<JJJJJFJJFJJJJFJJJJJJJJJAFJFJJAAJJJJJJJJJJJFJJJJJJJJJJJJJJJFAJJ7FJFFFFJJJ7<FFJJF<AJFJ	MD:Z:24C64^C10C29	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2123:25144:8798	163	000000F	450	60	89M1D62M	=	571	247	GTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGT	AAAFFJJJJJJJJJJJJJJJJJJAJJJJJJJFJJJJJJJJFJJFJAJF<JJJJJJJAF--7FFJJAFJJJJFJFJJJFFFFJFJJJJFA<JJJJJJ<-<AFFJ7FFJ7-AFAAJ<<JJJJJJ-7<<7A7FFJF<FFFAFFJF7<A<<FF<7	MD:Z:89^T62	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1218:2331:70750	99	000000F	450	60	21S89M1D41M	=	556	253	TTGACTTGTCAAGTTCAAGGAGTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAA	<AAAFJFJJFJJJ7FJJJ<JJJ<A<JJJFJJJJJFJJJJJJJFFFF<FJFF7JAFFJJJJ7FFA<<-FAAJJJFJJJ<F<FJFJAA-AAFJAAJJ<AJJFFFF<7------7-7-A7-7F-<-7-A<JA7-7A<FFAAFF<AJ-A-<---7	MD:Z:89^T41	PG:Z:MarkDuplicates	NM:i:1	AS:i:123	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2106:10693:10662	83	000000F	450	60	89M1D41M21S	=	184	-397	GTGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAATATTTTGCGCAGTGTCGCTGG	JJJJJFAJJF<-AFJJJF<JFAJFJJJJJJJJJJJJJJJ<JJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJJJFJJJJFAJJJ7JJJJJJJJJJJFJF-JJFJJJFJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJFFFA<	MD:Z:89^T41	PG:Z:MarkDuplicates	NM:i:1	AS:i:123	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1115:7151:43694	83	000000F	451	60	87M1D44M20S	=	219	-364	TGCAGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAAGATTGCGCAGACCGCACGT	FJJJJFJJJJJJJJJJJJJJFJJJFJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:22C64^C10C33	PG:Z:MarkDuplicates	NM:i:3	AS:i:114	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2117:19664:38825	147	000000F	451	60	88M1D63M	=	410	-193	TGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTT	-A7AJJFJFJAFAFFAJJJJJJJJJJJJJJJJJJJJJJJJJJFJFJJJFJJJJJJJ<JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFA-JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:88^T63	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2119:27275:41321	147	000000F	451	60	88M1D63M	=	190	-413	TGCAGTTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTT	7FJAFA<JJFF<JJJJJAJJJJJJJFFFJFAJJJJJJJFJJJJJJJJFJJJFJJJFAF<FFJJJJJJJJJJJFJFAFJFJFFJFJJJJAJJFJAFJA<JFJJJJJJJJFJAJFJJJFJJJFJJJJJJJJJJFJJJJJJJJJJJJJJFFAAA	MD:Z:88^T63	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1123:20466:2909	147	000000F	451	60	87M1D64M	=	126	-477	AGCAGTTAGAAAATAATATGATGAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGGTGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTT	-A-7JFAAAA---7FFJAA<A<-F<7FAA7-AF-A-F7F-FJFFJAJJJJJFJFAAF77JFJFA7JFA7-JF7A<FFA-JAFAA-JJF7A-<<JF--7JFA7JFAF<<AAF-7-F--JJF7-AJJJF7F<JA7F77F-JFFFJ-FFFFAA<	MD:Z:0T21C64^C10C15A37	PG:Z:MarkDuplicates	NM:i:5	AS:i:128	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1206:27844:34359	147	000000F	452	60	86M1D65M	=	156	-448	GCAGTTAGACTATAATATGATCAAAGCTGTTTGTTTACCTGTGTTGTTTGTGTGGTTCCTCTGGGTGCTGGCTATCATGTAAGGTAAGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGCCTGATTAGTTG	-7--FF<7---7<---JJA<7-----<F<-7FJAF--)A-7-JAFJJFF7<<77----<F-77-AF7-AA--<AF-FF77-7JFJA77JJAJA77-7-J<JJJFJJJFJJFJAF<AFAAJJJ<---<--JJJFA-J7F7-<AJAA<-FAA<	MD:Z:9A0A14T28C1C6C16C5^C0T52A10A0	PG:Z:MarkDuplicates	NM:i:11	AS:i:98	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1224:10937:60343	1171	000000F	452	60	22S87M1D42M	=	194	-388	AATTTTAGTTTGTGTGTGTGGGGCAGTTAGAAAATAATATGATCAAATCTGTTGGTTTACCTGTGTTGTTTGGGGGCTACGTCTGCGTGCTGGCGATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGAGGTCTGTCAACACAAC	--7JAA--AAFA7-<)A-<-))<7-----7--7-----AA<7-A-7---AF<7-A-FJAFFJFFF<AF--A7-7<777-7-AAAJFFFJ<AF7---7-77FAJ<AFF7JJJF-<7----JFJJJFAF<FJJFAF7-F-FFJJFFAF777AA	MD:Z:31T18T1T3C1C13T14^T26T15	PG:Z:MarkDuplicates	NM:i:8	AS:i:87	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1122:14174:33252	147	000000F	452	60	8M1D77M1D66M	=	420	-185	GCAGTTAGAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAG	FJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:8^A12C64^C10C55	PG:Z:MarkDuplicates	NM:i:4	AS:i:127	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2212:3133:36311	99	000000F	454	60	23S85M1D43M	=	668	365	TGTGGTAGTGCCCACACGCTCGAAGTTAGAAAATACTATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACA	AAAFFJJJJJJJJJJFAJFJJJJJJJJJJJJJJJF-<FFJJJJJJJAJJJ<FFJJJJJJJJJFJJ7J-AJJFJJJJJJJJJJJFJJJJJJJJJAJ-FJFJFJFJJFJJFA<FJJJJJF-<-AJFJJFJAF-FJJJ-F<AFJF--7-F-<--	MD:Z:12A72^T43	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2208:23490:63454	83	000000F	454	60	84M1D44M23S	=	285	-298	AGTTAGAAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAACCTATTTACGATTCTGATTGGG	FJFJJJJJJJFJJJJJJJJJJ-<JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:19C64^C10C33	PG:Z:MarkDuplicates	NM:i:3	AS:i:111	XS:i:24	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2124:32491:66425	163	000000F	455	60	2S83M1D60M6S	=	541	205	GTGTTAGATAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAATTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTCGTTCT	<AA-<FJA--F-<FJFJJFJJF-<F7AFFFFFAFJFAAFJJFJFF-<JJJJJAFJJ7AJFJ<-7FFJJA<-FF-AFAJ-F--77-7-7<7FJ<77<<F-----7--77<-<--AJ-A7<A--7<A-<F<--7-<-7-A7F--A<F------	MD:Z:6A11C64^C10C9C39	PG:Z:MarkDuplicates	NM:i:5	AS:i:116	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1207:10013:15074	147	000000F	456	60	83M1D68M	=	393	-215	TTAGAAAATAATATGATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATG	AFA7F7AAJF7JJJJAJFA-7FJJJJJJFJJA7AJJJJFJJJFJJJJJAJAFFF7<<JJJJJJJJJAFJJFJFJJ-JFJJJJJJFJJFFJFFJJJJJJJJJAJJJJJJJFJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJFFFAA	MD:Z:83^T68	PG:Z:MarkDuplicates	NM:i:1	AS:i:144	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1220:31943:17658	147	000000F	458	60	81M1D70M	=	64	-546	AGAAAATAATATGATCAAATCGGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTA	-7----A7-7-<7-77---7<-7A<-<A-7A<AAFFJJJA-FA)A7<A<--<-F7<<-AJFAFA-7AJJFJJ<FF77JFFA77---77-A<77-JAJFFJ<F-<JJFJJJJJJJJAF7-JFFFJJJJJFJFFJJJJAJFJFJJJFF<FA<-	MD:Z:21T59^T70	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1206:6542:38139	83	000000F	460	60	78M1D57M16S	=	166	-430	AAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGCTCTGAGCTCGTAATC	JJJJJJJJJJJJJJFJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:13C64^C10C46	PG:Z:MarkDuplicates	NM:i:3	AS:i:118	XS:i:23	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1101:8339:18362	1107	000000F	460	60	78M1D57M16S	=	166	-430	AAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGCTCTGAGCTCGTAATC	JJJAAJJJ<FJJJJFFFJFFJ<FFJF<FF<FJJJJFJJJJJJJJJJFJJJJJJJJFJJJJFJJJJJJJJJJJJJJJJJFJAJJJFJJJJJJJJFJJJFAAJFJFJJAA7JJJFJAJJAJJJJJJJJJJJJF<-JJJFFFJJJJFFA7FA-A	MD:Z:13C64^C10C46	PG:Z:MarkDuplicates	NM:i:3	AS:i:118	XS:i:23	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1102:12104:32021	1107	000000F	460	60	78M1D57M16S	=	166	-430	AAAATAATATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGCTCTGAGCTCGTAATC	JF-FAFJAJFJFJA<<<-<AF<J777JJAFJJAAFJJJJJJJJFFFF7JFFJJF<<AFAJJJAJJJJJJAF-A7F<JJJJJJJFJJJJJAFFFAJJAFFJJJ<7J7JFFJJJJJJJFFFFJJJFJJJJJJJJJJJFJJJJAJJJJJFFAA<	MD:Z:13C64^C10C46	PG:Z:MarkDuplicates	NM:i:3	AS:i:118	XS:i:23	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1108:19958:55332	147	000000F	461	60	78M1D71M2S	=	180	-431	AAATAATATGATCAAATCTGTTTGTTTAACTGTGTTGTCGGTGTGCTCCCACTGCGTGATGGCTATCATGACAGGTACGGTCAGGACCGGAGAGAAACTGAGGATGTATGACAACACAACAGAAAAAGTGACTGAGTAGTAAGATGTAATA	JJF<<FA<-<--7<-7<FA--F<<-F<--A7A<-AF<-)-7---A7--F7-7-<77------7AAA-<7--A77--A7-77--7AA-7-AAAJJFFAA<--77<A7--<-7FJAJA<FJJJJFJF7-F-F-F-F<-FFF<-JFF7<AA-A-	MD:Z:28C9T0T10T7C11T7^T4T17T6C2T24T4T8	PG:Z:MarkDuplicates	NM:i:13	AS:i:82	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2210:18741:72209	83	000000F	467	60	71M1D58M22S	=	154	-443	TATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGAAACCACCTGGGAGCTAATTGCC	FJJFA7A-<<<7JJJJJJJJJJJJJJJJJJFFJJJJJAJJJJJF-JFJJJJJJJJJJJJFJJJJJJJJFJJFJJAF<JJJJJJJJJJJJJFJJJJJJFJJJJJJFJJJJJJJJJJJJJJJJJFFFJJJJJAJFJJAAJFJJJJJJJFFFAA	MD:Z:6C64^C10C47	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2210:18751:72227	1107	000000F	467	60	71M1D58M22S	=	154	-443	TATGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGAAACCACCTGGGAGCTAATTGCC	FF7JJJJFA<7FJJJFFJFAJFFJJJJJJJJJJJJJJJJJJJJFJJJJJJJJAFJJJJJJJJJJJJJJJJJJJJJJJ<<JJJJAJJJJJ7FJJJJJJJJJFJJJJJJJJJJJJJJFJJJJJJFFJJJJJ-FJJAJFJJJJFJJJJJFFFAA	MD:Z:6C64^C10C47	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1114:6238:60009	163	000000F	468	60	71M1D80M	=	824	484	ATGATCAAATCTGTGTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTTGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACACAAAAAGTGAGTGATTAGTTAGAGGTAATTAATTTCA	AAAAFJ7AA-FJJJ-FFJ7A-<7FAFJF<F7FFJJA<FJF7-A<JAJJJJJJ--<AAFAFFJ<FJ<A7---7-<<A-FFAA-F-77A7-77AAAJ<--A<AAFFJ-<F7A7-7----7--A<A7--7---7<-----77---<-7------	MD:Z:14T38G17^T43G9C12T4C8	PG:Z:MarkDuplicates	NM:i:7	AS:i:114	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1119:7760:27802	163	000000F	470	60	69M1D82M	=	563	217	GATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAAC	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJFJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ<<JFJJJJJFJJJJJJJJJJF	MD:Z:69^T71C10	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1202:2219:21087	177	000000F	471	60	67M1D46M38S	=	106	-399	ATAAAATCTGTTTAATTACCTGTATTATTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCAGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGATTTTATCATATTATTTTCTAACTGCACAATAAATACAA	A7----A<A7--7---FFAFA77-------7-A-A)AJJ<FA---<F-7----AJFFJF-AFF7<<FAF-7--A-<-7AJJFJFFAF-7--<AJFFF-<-77JFJ<<FJJJJJJFFJJJFJFJJJJFJJAJ<F77JJJFFJJJJJJFFFAA	SA:Z:000000F,57531,+,44M107S,60,1;	MD:Z:2C10G0T8G2G40^C5T4C35	PG:Z:MarkDuplicates	NM:i:8	AS:i:73	XS:i:19 [...]
+ST-E00128:308:HHVVLALXX:8:1206:14306:28417	147	000000F	471	60	68M1D83M	=	297	-326	ATCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTATGCGTGCTGGATATCATGACAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACT	A-A-JF--<<<AFFA<--AJ<F7FA<AA-F7<7)JJF-<F7--F7F7A<F-7-7-F77---FA7<JA7-A7-A7-7AJJAA-F-JJJFFJFJFJJJFJF<-JJJF<JJJFJJJJJJ<A<FA<A-7FF<FFA7FJFJFJ-JFJJF<<-FFAA	MD:Z:41C10C7T7^T71C11	PG:Z:MarkDuplicates	NM:i:5	AS:i:124	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2118:1336:14600	99	000000F	472	60	22S67M1D62M	=	660	339	NCTAGCAAGCTTGTACTAATAGTCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGT	#AAFFJJJJJJJJJJJJJJJJJJJJAJJJFAJJJFJJJAFJJJJJJJJJJJJJFJ7FJJJJJJJFJFJAJJFAJJJJFJJJJFFFJJJJJFJJJ<AJJJAA77AA7AAJAFFJFJJJJJJFFJFFFFFFAJJJJJJJJAAJFJJFJJJJAJ	MD:Z:67^T62	PG:Z:MarkDuplicates	NM:i:1	AS:i:122	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1121:25560:47527	83	000000F	472	60	67M1D62M22S	=	272	-330	TCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTACCCGGAGGGAACTGAGCCAAG	<AJJJJJJJFFF-JJJFFFJFJJJJJJJJJJJJJJAJFFAJF7FFJAJJJJJJJJJJFJJJJJJJJFFJFFAA<FAJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAJJJJJJJJJFFJJJJJJJFFAAA	MD:Z:67^T62	PG:Z:MarkDuplicates	NM:i:1	AS:i:122	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1203:11373:34447	1107	000000F	472	60	66M1D64M21S	=	303	-300	TAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTCGGCGGACAACGGAAACCATC	AJAA7JJFJFFFJJFF7FJJJJJJFFFJJJJFFJFAF-J<JAJAJJJJFJJJJJJFJJJFF<JJJJJJFJ<JJJJFJFFJJJJJJJJJJJJJJJJJJJJJJJJJJFJF7JJJJJJJJJFJJFJFJJJFJJJJJJJJJJJJJJFJAFFFFAA	MD:Z:1C64^C10C53	PG:Z:MarkDuplicates	NM:i:3	AS:i:116	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2212:11799:24040	83	000000F	472	60	66M1D64M21S	=	303	-300	TAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTCGGCGGACAACGGAAACCATC	JFAFJJJJFFJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJFJJJJJJJJJFJJJJJAJJF-JJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:1C64^C10C53	PG:Z:MarkDuplicates	NM:i:3	AS:i:116	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1214:31487:14687	163	000000F	473	60	66M1D85M	=	661	278	TAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTAT	AAFAFJJJFJJJJJJJJJJJJJ7FJJJJJJJJJJJJJJJJJJJJAFFJJJJJFJJJJJJJJJJJJJJJJJJJJFFJFJJFJJFJJJJJFJJJFJJJJJJJJJJJJFJJJJJJJFJFJFFJJJAA-AFA<AFFFJJJJJAFJJF7F<---AA	MD:Z:0C65^T71C13	PG:Z:MarkDuplicates	NM:i:3	AS:i:138	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2111:16315:53240	99	000000F	473	60	41S66M1D44M	=	561	187	CCAGCGACACTGCGCATATCTATCTAACTGCACAATAAATACAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAG	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAJFJJJJJJJJJJJJJJJJJJJJJJJJJJ7	MD:Z:66^T44	PG:Z:MarkDuplicates	NM:i:1	AS:i:103	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2120:25408:5458	163	000000F	473	60	65M1D86M	=	519	183	AAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTAT	AAFFFJFJAJFFJJJJJJJJFJFFJJFFAJJJJJFJAAAJ<JJJ<7J<FJJJJAJJJJFJFJJFJFJJJJJ<JJJJJJJJJJJJJJFJJJJFJJAFF7A7FFAFJJJJJJJJJJJJAAF<<AF-AFJ<7FAFAJ<FJJJJJ--<7AJF---	MD:Z:0C64^C10C75	PG:Z:MarkDuplicates	NM:i:3	AS:i:138	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2102:31335:43431	99	000000F	473	60	16S66M1D69M	=	842	520	TGCCCATAGTGGTACGCAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJAJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJFFFJJJJJJJJJJJJJJ	MD:Z:66^T69	PG:Z:MarkDuplicates	NM:i:1	AS:i:128	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2105:5304:5370	99	000000F	474	60	20S64M1D67M	=	861	538	CTAACGAAGGACTGGTGATAAAATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGA	AAFFFJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJFJJJJJJJJJJJFJJJJJJJJJJJFJJFFJJJJJJJJJFJJJJJJJJJJFJJJFJJJJJJJJFJJJFJJJJJJJJJJJJJJJJJJJJJJJ<JJJJJJF<	MD:Z:64^C10C56	PG:Z:MarkDuplicates	NM:i:2	AS:i:119	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1203:28270:39528	83	000000F	476	60	63M1D67M21S	=	252	-355	ATCTGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATACATTCGCTTTCGAGGGTGAT	JJFJJJJJJJJJJJJJJJJJFFJJJJJAJFJFJJJJJJJJJJJJJJA<JJFJFJJFFJJJJJJJJJJJJJFJFFJFJJFJJAJFJAFFJJJFJFJJJJJJJAJJJJJJJ7JJJJJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFFAAA	MD:Z:63^T67	PG:Z:MarkDuplicates	NM:i:1	AS:i:123	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1204:21044:42622	177	000000F	477	60	26S62M1D63M	=	12	-464	TGCAGTTAGATAATCCACTGATACACTCTGTTTGTTTCCCTGTGTTGTTTGTGTGCTACCTCTGCGTGCTGGCTCTCATGTCAGGTACGGTATGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTT	F<-<----<7----)-----7-----<-77<-A-7-)))-<A-A--<---7FA-A7--7J7--777<-<A<-JF7JFJ-A<7<FF-AF77FAFJJA7--<-JJJA<---<-FF<-JJJJJFJJF7FF--<JFJJJJJJJJJJA7F-FA7A-	MD:Z:11A19C16A13^T3C5C53	PG:Z:MarkDuplicates	NM:i:6	AS:i:93	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2103:17249:63437	99	000000F	479	60	20S60M1D71M	=	663	336	CAGCTGGGTTCAAGCTGAAATGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAA	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJA-FJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJFJFFJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ	MD:Z:60^T71	PG:Z:MarkDuplicates	NM:i:1	AS:i:124	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2224:13494:1133	99	000000F	479	60	20S60M1D71M	=	737	278	NAGCTGGGTTCAAGCTGAAATGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTCTCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAA	#AAFFJJFAAFAJ<FAFFJJJ<-FAJF-FFF<7F---<<-<-F-FFJFF7FJFF77JAA7J<AAJ7-FJF-<<AAA<AAFFJAJ7A<-AA-A--7AAJFJ7<--7-<JFF<-FJ<AJFF-7A<AF<--77<F-7-7---77A-AJJA<-<-	MD:Z:46A13^T71	PG:Z:MarkDuplicates	NM:i:2	AS:i:119	XS:i:22	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2222:19278:16287	83	000000F	479	60	59M1D70M22S	=	301	-308	TGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTCACCGACCGTGGATGGTCTCGG	JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:59^C10C59	PG:Z:MarkDuplicates	NM:i:2	AS:i:117	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1102:11769:66425	99	000000F	480	60	20S58M1D73M	=	605	263	GCCATGGGTACACCGCAAAGGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAAC	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJFFJFFAJJJAJJJFJFJJJJJJJJJJJJJJJJJ	MD:Z:58^C10C62	PG:Z:MarkDuplicates	NM:i:2	AS:i:119	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1111:12865:16920	1123	000000F	480	60	21S58M1D72M	=	817	488	CATTACTTCGTTGAGTTCGTAGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAA	AAFAFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJFJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ<AFFFJJJFJJJJJFJ	MD:Z:58^C10C61	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1111:12824:16990	99	000000F	480	60	21S58M1D72M	=	817	488	CATTACTTCGTTGAGTTCGTAGTTTGTTTACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAA	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFF	MD:Z:58^C10C61	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1119:26017:2188	147	000000F	487	60	52M1D99M	=	289	-350	TGCCTGTGTTGTTTGTGTGCTCCGTGTGCGTGCTGGCTATCATGTCAGGTACGGTGTGGACCGGAGAGAAGCTGTGGATGTCTGTGAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTA	7))--F7F<-JF<-F7JA-)))))))JF)JJF<FJF---7--JJF<FJJ<--FF7-<FA---AF<A-7-7---JA-FAJJF-FAF--FF-7AAF-<-----JA7-<JFF<FFJJFAF<FJAF<JJA<JFF<---AFJF<7JFAAF<FFAAA	MD:Z:1A21C1C26^T3C14A14C37C27	PG:Z:MarkDuplicates	NM:i:8	AS:i:112	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1123:10155:40389	83	000000F	487	60	51M1D83M17S	=	265	-357	TACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACACCCAATCACAAGATGT	<-FAJJFJJJJJFJJJF<JJJJFJJFAJJJJFFJJJJJJFJJJJJJJJJJJJJJJ<FJJJJJJJJJJJJJJFJJFAJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJFJJJJJJJJJFJJJFFFAA	MD:Z:51^C10C72	PG:Z:MarkDuplicates	NM:i:2	AS:i:122	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2121:22374:42394	1171	000000F	487	60	52M1D99M	=	212	-427	TACCTGTGTTGTCTGTGTGCGCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTACTTTCAACTATCTAGTCTTCCTCTA	FAFJJFFF<-<7-AF7)-AA)A7JA7FAAFJFAF<7A<JJFJJJJ7<FJFFJFJJJFAA77--FAA-F-F7JJJFFJAJJJAFFJJFFJAA<FFJJJJJJFFJFA<FJJJJJJJJJJJJJJJJJJAFJFJJJFA<JAJFJAFJJFJFFFAA	MD:Z:12T7T31^T71C2A24	PG:Z:MarkDuplicates	NM:i:5	AS:i:124	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2121:22394:42394	147	000000F	487	60	52M1D99M	=	212	-427	TACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTA	FF<JJJJJFJJJFA77A7JAA-AA7<JF<AJJFAJJJJJJJFJJJFJJJJJJJJJJJFFJJFJJJJJJJFFJJJJFJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:52^T71C27	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2208:28148:32144	99	000000F	488	60	37S51M1D63M	=	874	537	CACTACCAGCTCCTCTACCTGAAGCTCCTCTTAACTCACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTATGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAGAAGTGACTGATTAGTT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJ-AFJJJJJJJJJJJFJJJJJJJJJJJJJJJ-<AFFJJJJJJJJJFFJJJJJJJJJJJJJJFFJJFJJAJJJJJ-7FJJJJJJJJJJAJJF	MD:Z:51^T3C42A16	PG:Z:MarkDuplicates	NM:i:3	AS:i:97	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2109:24444:12824	99	000000F	488	60	20S51M1D80M	=	886	539	GCTTCACGACTAACCATCCCACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGTATAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCA	-AAFFJJFJJJJJJJFJJJFFJJJJJJFF-FJJ<7FFJJJAJFJJJ<JJAJJJFFA77<FJJJJJFAAFFJF<7AAAJFJJJ----FJJFJFF-<<JJJAFFJJJJJJJJJFJJJFJJF-A<FFA-AF7FJJF-AFJ7AFJF<JJ77F-<-	MD:Z:51^T11G1G57C8	PG:Z:MarkDuplicates	NM:i:4	AS:i:109	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2102:32065:1239	99	000000F	488	60	23S51M1D77M	=	930	593	NTCGCCAGTTCCTGGGGGGGCCCACCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATT	#AAAFFJJJJFFJJJJJJJJ<JAFJJJJFJJJJFJJJJJJJJJ-FJJJJJAFAJAJJJJJAJA7FJJ--JJJ-AJFJFJJJAAFAJ<J-J7AAJJJJJJFJJJAFF7AAJAAFAJJJFFJJFFJFJAFJJFJJJJJJFJAJJJJFJAJAJ<	MD:Z:51^T71C5	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2110:3863:61591	99	000000F	489	60	20S50M1D81M	=	857	493	GATCGTATCGTCTGCTCCGTCCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAA	AAFFFJJJJJJJJJJJJJJAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJFJJJJJJJJJJJJJFJJJFJJJJJJJJ	MD:Z:50^T71C9	PG:Z:MarkDuplicates	NM:i:2	AS:i:119	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2121:6005:45681	99	000000F	489	60	38S49M1D64M	=	797	451	GACTGCGCAGCTGGCTAGAAGCCAGCTGGCTTAGGCCTCCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTT	AAFFFJJJJAJFJFAFJJJJJJJJJJJ<AFA7JFFJJJJJAF7A-FFJJJJJJJJJJ-FJFJJJJJJJJFJJJJ7FJJJJJJ7<7JJAJF7<-F<FFJFJ7JJJ<J-AFJAJJJ7FJJJF-AFFFFAFJ<FFF<-AJ<<AA<FFFAJF--<	MD:Z:49^C10C53	PG:Z:MarkDuplicates	NM:i:2	AS:i:101	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1123:28757:7251	147	000000F	489	60	50M1D55M46S	=	178	-417	CCTGTGTTGTTTGTGTGCTCCCTCTTCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTAGATAGTTGAAATTAATTACATCTAACTAATCAGTCACTTTTTCTG	)-<-A-FAF<A7A7-))-)JJA<7-)<)7<FA--FA7FJF-)JAF7)FA--JFFFF7JJFJF<77-FA-AFFFJAJJJJJFFAFFJFFAFFJJFJJA<JAFJAJJ<-FFF<<FJJJJJFJJJJ7JJJJJJJJJJJJJJJJJFJJFJFAAAA	SA:Z:000000F,57673,+,50M101S,60,1;	MD:Z:25G24^T55	PG:Z:MarkDuplicates	NM:i:2	AS:i:93	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2203:25936:68887	83	000000F	490	60	68S48M1D10M25S	=	492	-57	TTGTGCTCAATTTTACGTTGTACGTGTTGGGGAGGTAGAAATTGAGTTCAGACGTGCAGTTTTTTTATCTGTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAAGGTCCATACCCACGAGTCCC	-----7--AA7---7---<<F7--7--A7-77---7-7-7----F7-A-7-77------A-<-7--A-FJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:48^C10	PG:Z:MarkDuplicates	NM:i:1	AS:i:51	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2108:1407:24251	1187	000000F	492	60	46M1D10M95S	=	422	57	GTGGTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGGCTGCCTACCCGCGAGGGCCAGAGCGTGAGGGCGCTGTGGAGGGGGAGGGTGTAGTTCTGTGTTGGCGGGGTAGGTGTGGGCGGGGCGAG	A<AAFJJJAFJJF<FJJ7<JFAFJJJ<7FJFJFJJ<JJFJFJFAAFJJJJFFJJ-7<A---7-7---A777F7777----7AF--77--77------77----7-777)-)-7------7--77-----)7-)))-77--7))))))))))	MD:Z:3T42^C10	PG:Z:MarkDuplicates	NM:i:2	AS:i:45	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2203:25926:68869	1187	000000F	492	60	46M1D10M95S	=	422	57	GTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGGGTCCATACCCACGAGTCCCAGATCGGAAGAGCGTCGTGGAGGGGAAGAGTGTAGATCTCGGTGGTCGCCGTAGCATTAAGAATGTGTAG	AAAAFJJJJJJJJJJJJJJJJJFAJJJJJJJJJJJJJJJJJJJJJJJFJJJJFJJJJJJJ-AAJ77AAJFAF7AF<-AA-<<7FFFF--777---7-A----7AA))77----A-7-7FFAF77)-)7A-7--<)7-------7-7-----	MD:Z:46^C10	PG:Z:MarkDuplicates	NM:i:1	AS:i:49	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2203:25936:68887	163	000000F	492	60	46M1D10M95S	=	490	57	GTGTTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAAGGTCCATACCCACGAGTCCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAGAAAAAGCTCG	AAAFFJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJ<JAJ-AJFFJ-FJAA<7AJJJJAJJ<<J---A<7A<-FA-<-7---7<AAAJJF7JFJJJJF7)77)))<)7--7--7--7<-7-7-7-	MD:Z:46^C10	PG:Z:MarkDuplicates	NM:i:1	AS:i:49	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1109:18446:53908	99	000000F	495	60	21S44M1D86M	=	638	256	CGGAACCCATAGAGGCAGCAATTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATC	AAAFFJJFJJJJJJJJJJJ<JFJ7JJJJJFJFJJJJJ<JJJJJFJJJJJJJJJJJJJJJJFJJJJJFAJJJJJJJJJJJJFFJJJJJJJJJJJJJJJAJJJJJJJJJA<JJJJJJJJJJAF<FJJFJJJJ<<FJJJJJFAAAJJFJJJJFA	MD:Z:44^T71C14	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1120:18101:8974	99	000000F	495	60	23S44M1D84M	=	807	463	CAGGCGTCAATAAGCACGTTAGATTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTA	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJ7JJJJJJJFJJJ<FJJJJFJJJJAFFJJJJAAAFJFJJJFJJJJ	MD:Z:44^T71C12	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1119:26606:62206	83	000000F	495	60	43M1D90M18S	=	145	-484	TTGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGCCTATCTGTACTGCCTAA	AAJJJFJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJFAJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFAAA	MD:Z:43^C10C79	PG:Z:MarkDuplicates	NM:i:2	AS:i:121	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2207:2666:63876	163	000000F	496	60	5S43M1D98M5S	=	663	277	AGTGGTGTTTGTGTGCTCCATCTGCGTGCTGGCGATCGTGGCAGGTACGGGCTGGACCGGCGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTCGATGGAATTGATTTCAACTGTCTAGTCGTCCTCTCAAGG	<A--7<----7F7A<A--7-<<-7<F-AFAAJ-<J7F-<7-7FF77AFAJ-7J-JA7A<--7-7-F-<A-7----7-77-7A-77<----7F7F---77--7-------7-----7)7--------7--7--7--7-<-A7-7))7)7A<-	MD:Z:14C13T3A2T7^T2T9A50A4T2C1A9A7T6	PG:Z:MarkDuplicates	NM:i:13	AS:i:74	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2102:4381:6935	163	000000F	496	60	43M1D68M40S	=	873	502	TGTTTGTGTGCTCCCTCTGCGCGCTGGCTATCATGACAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAATGACTGATTAGTCAGATGGGAGTGACTGCAACTCTCAAGTCTTCCTCCAAATCCGCAC	AA7FF<---<A---77F--AJ-7<FJ<JJ---A---<-FFF----<-<7AAJFJJ-7FAJ<-7-AFAJFJJ7A-7AA<AAJJFJJJJ7---7-7--777A7-----77----)-)-)7-77<FF-7--7----7-<-7--))-------))	MD:Z:21T13T7^T49G12T5	PG:Z:MarkDuplicates	NM:i:5	AS:i:84	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2110:17350:53029	83	000000F	496	60	42M1D93M16S	=	62	-570	TGTTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTAGCCAGCTGCGCAGTC	AFFJFJJJJJJJJJJJJJJJJJJJJJJJJFFJJJAJJJJJJJJAFFFJJJJJFJJJJJJJJJJJJJFFAJJJJJJJJJJJJJJJJJJJJJJJJJFJJFJFFJJAJJJJJJJJJJJJJJJJFJJJJJJJJJFJJJJJJJJJJFJJJJFFFAA	MD:Z:42^C10C82	PG:Z:MarkDuplicates	NM:i:2	AS:i:123	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1217:7973:42341	99	000000F	498	60	36S40M1D75M	=	680	333	GGAGAACCAACTGCTACGCACACAACTGCTATCTTCTTTGTGTGCTCCCTCTGCGTGCTGGCTATAATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGGCAACACAACAGAAAAAGTGACTGATTAGTTAGGTGTAACTA	AAFAF-F7FA--FAFJ<AJ-77-FFF7-<7-<7---7A--<<FFJAA<<77FAF<J<JJ<-77<<--<F-AF<A-A--<--7FJA77<F7A7F-<AA7--AAAA7AAA<-7<AAAAF-7--7AAA-------77F------F--7---7--	MD:Z:29C10^C10C22T32A8	PG:Z:MarkDuplicates	NM:i:5	AS:i:88	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1204:26311:52590	99	000000F	499	60	21S39M1D91M	=	854	506	ACCCAAAAGACAGCTGGGTAGTTGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGT	AAFFFJJJJJJJJJJJJJ<AFFJJFJJJJFJJJJJJJJ<JFFJFJJJJFJAAJ-F7AJFFJJA<7AFAJJ-A7FA-AF-7AFFJJJJFJJJJ<AFJJJJJJJJJFAJFJJ<-AFJJJF<AF7-7FJFJJAFJJ7FAA-77AFJAFAA-<J-	MD:Z:39^C10C80	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1218:8856:69221	163	000000F	500	60	38M1D94M19S	=	693	326	TGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTCATTTCCACTATCTAGTCTTTCTCTCCAGCACCCTACTT	AAFFA<JFJFFFJJJJJ<JFJJ<J<FF7JJJF-FJFJFFFFJFFJJFF7AFJJJJJJJJ<7FF<JA7AJJJJ-F-7AAFJFJFF<FFF<<-7--7A-<FF-A-<A-77--AF--7F7---AF7A-<-7<FFF-7----)7)))7<-<FF--	MD:Z:38^C10C63A5A13	PG:Z:MarkDuplicates	NM:i:4	AS:i:110	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2214:4564:20893	99	000000F	500	60	22S38M1D91M	=	642	298	ACACGTATCGAATCCAAGGCTATGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAJJJJJJJJJFJJJJJJFFFJFFJJJJJJ	MD:Z:38^C10C80	PG:Z:MarkDuplicates	NM:i:2	AS:i:117	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2123:21217:42851	1107	000000F	500	60	39M1D96M16S	=	286	-350	TGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTGTCCAATGACGTCTAA	AAJ<J<<<F<FAAAFJFA---<FFJFFJAAJFJJJAJFJJJJJ<<F<AA<77<F7-JJAJJAA-7JJJJJFA7F<7<-FF7-AFJJFFJJF7FFFJJJJJJFJF<JJJJJJJJFJ<F-J<<-AAFFFAFJF<A7FA-FAFF7JJJAAAAAA	MD:Z:39^T71C24	PG:Z:MarkDuplicates	NM:i:2	AS:i:123	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2213:6989:46085	83	000000F	500	60	39M1D96M16S	=	286	-350	TGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTGTCCAATGACGTCTAA	JJJJJFJFJJJFJJFFJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:39^T71C24	PG:Z:MarkDuplicates	NM:i:2	AS:i:123	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1111:30350:55403	163	000000F	501	60	38M1D113M	=	647	269	GTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTT	A<A7FJAJJJFJJAJJ<JJJJJJJJJJJJJFF7JF-AJJJFJJJJFJJJJ77JA-<<FJJJJJFFFJJJJJJJJJJJJAJJJJJJJFFAFAFFAFFAJJ-AAFJJJFFFFFFJJJJJFAFFF-AJFFJJAJFJJAJJ7F<FAAJFAFJJFA	MD:Z:38^T71C41	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1218:27387:9941	99	000000F	501	60	25S38M1D88M	=	734	384	CCACCTACACGTCTCTTGTTCATTAGTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTA	AAFFFJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJFFFJJJJFJJJJJJJFJFJFJJJA	MD:Z:38^T71C16	PG:Z:MarkDuplicates	NM:i:2	AS:i:114	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2113:4391:59270	163	000000F	501	60	38M1D113M	=	704	332	GTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATTTCTGTCAACACAACAGAAAAAGTGACTGATTAGCTAGATGTAATTAATTTCAACTATCTACTCTTCCTTTAAAGACCCCTACTTT	AAAFAJFFJJJAJJJJJFJ<FJJJFFJJFAJJFJFFJJ<-F<J--<A<-77AF--7-<<-7<FAF-7FJ-7AAAJFJJJJJ-FJAJ-7<7FF-A-7<<--7F-7F---7<FF77FJ<A-A-------7-7<-<----7--7<-7<A)7-<A	MD:Z:38^T27G33T9C16G7C16	PG:Z:MarkDuplicates	NM:i:6	AS:i:119	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2116:4817:30545	83	000000F	501	60	38M1D97M16S	=	440	-197	GTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCATGTGAAGAGACGATG	FJF)-JFJJJJJJJ<JF-JJFFFJFJFF<FJF7AFJJJJJJFJJJJJJJJFJJJJJFJJJJJJJJJJJJJJJJJJJFFJJFFJJJJJJJ<FJJJFJJJJJJJFFJJJ<FJJJJJFJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJAFFAAA	MD:Z:38^T71C25	PG:Z:MarkDuplicates	NM:i:2	AS:i:123	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2214:5649:31916	147	000000F	501	60	38M1D113M	=	282	-371	GTGTGCTCCCTCTGCGTGCTGGCTATCACGTCAGGTACGGTCTGAACCTGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAATACCCCTACTTT	7<7)--)<--)-)-)<)<--<--7-<)-))77-A--7)---7---<--7-A7A-AFA-F--<-FF-A-7-JJA-77-A7<-JJJJJFA-7--J<-JF-<F7---J-FFF-JFJJFFFJJF-FFFF7<JAA<F<---<-----F7-<---<<	MD:Z:28T9^T6G3G60C29G11	PG:Z:MarkDuplicates	NM:i:6	AS:i:119	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2124:10855:4614	65	000000F	502	60	23S36M1D92M	=	1015	514	CCAACTCCAACAGCCCGAAACATTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTC	AAFFFJJJJFFJJJJJJJJFJFJJFJJJJJFJJJJJJJFFJJJJJJJJJJJJJJFJFJJJJJFFJFJ<FJJFAAFF<FAJJFA<JFJJJJJFJJFFAFJJJJJFJFJAFFJ<<AAAAJ7AFJJJJAFFFJFFFFAJFJFFFJJA<7<J<7A	MD:Z:36^C10C81	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2118:10155:56633	99	000000F	502	60	23S37M1D91M	=	806	455	TCCACCATCAAGTGCTCACCGGTTGTGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTC	AA-FFJFJJJJJJJJJJJJJJA77FJAJJJJF<JAJJJ<JJJJJJJFJFFFJJJJFA-FFAF-AA<A<AFFJJAJJF<FFJFAJJ7JF<FJJFFFJFJJJJJFFJJJJ<FJ7F<AJFJFAJJFFJ---<FAF-FFJ7JF<-F-F7FFJJJ-	MD:Z:37^T71C19	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2103:17168:17026	147	000000F	504	60	34M1D117M	=	137	-519	TGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACCTTAAC	)<AAJAFJJFFFAAJAAA<JAJ<--A77--FJ<A<AF7JFF<A<FJJJJFFFJJJJJJJJFJJJJFFJJJJJJFJJJJJJJJJJJJJJFJFFJJJJJJFJFJJJJFFFJJJJJJJJJJJJJJJJJJFJJJJJJJFJJFJFJ<JFF-FFFAA	MD:Z:34^C10C100T5	PG:Z:MarkDuplicates	NM:i:3	AS:i:134	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1209:8207:57899	147	000000F	504	60	35M1D116M	=	211	-445	TGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAAC	-JA7JJAJJJ<JJJJJJJJFFJ<JFJJJJJJJJJJJJJJJJJF<AAJJFJJFAFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJFJJFJFJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFAAA	MD:Z:35^T71C44	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2123:12662:68254	147	000000F	504	60	34M1D117M	=	439	-217	TGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAAC	7JJJJJJAJFJFAJJJAF<A-JJJJJ7<JJAFJJFAJAFFJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJFJJJJJFFJAAAAA	MD:Z:34^C10C106	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1207:30350:65459	147	000000F	504	60	34M1D103M14S	=	221	-421	AGCTCCCTATGCGTGCTGGCTGTGATGTCAGGTATGGTCTGGCGAGGCGAGAAACTGTGGGTGTCTGTCAACACAACAGAAACAGTGCATGATTAGGTAGGTGTGACTACTTTCAACTATCTAGTCTTACTCTAAAGCCCAGTACTATAGC	)77------7)FAA7-7<--7-<-FJ<7<--A-FA-<)A77----77---<-7A<FF<F7--F7-AAFFFJJ<FAJ<JF7FF-FF77--A--A<<7-<---7<--FAF<-A7<-<--F<---F<7F<--F7<--7-77-<--7-----A<-	MD:Z:0T7C12A1C10^C8A0C0C2A12A21A4A0C7T3A3A4A18C8	PG:Z:MarkDuplicates	NM:i:18	AS:i:49	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2221:25723:22317	1171	000000F	504	60	35M1D116M	=	211	-445	TGCTCCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAAC	-JAA-7)7<<JFA7<-7AA7A<A7J<A-<<<7A<<A<<)A<A-A7)7-A<--<A<<F<7--JFA<JJAJJJFJFJAJJJFJFJJJJJJAJ<JAAJFJ<JJFJJJJFFJJJJFFJAJ7F-FJAJFF-JFFFJFJAJF-JJJJFAJJFFFAAA	MD:Z:35^T71C44	PG:Z:MarkDuplicates	NM:i:2	AS:i:139	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2223:12185:1573	1171	000000F	504	60	35M1D116M	=	211	-445	TGCTGCCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAAC	7<<))<-A)7-7<<<)--7FF<A7-F<JJFJA7F<FFAF<AJJJAJFF7<F-F-FFJFAAAJFJFJAJJJJJJJFAF-JJFFF7J<J7F<FF-FAFJFFJJFJFJJJJJAJFJA<---J<<-JFJJ7<FJJF-<F7F<JFJJF7FA<7A-A	MD:Z:4C30^T71C44	PG:Z:MarkDuplicates	NM:i:3	AS:i:134	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1216:23957:32900	147	000000F	506	60	5S32M1D114M	=	200	-453	TTGTACTCCCTCTGCGTGCTAGCTAACATGTCAGAGATGGTCTGGACAGAAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCAAGTCTTCCTCTATAGACCCCCACTTT	---7)))-JFA)7)A-7----7-<--FAA7A7----<FAF---7--FFF-FJJJF<FA-77JFFAAJJFF<JJA-7--JFJFAA7JAAAFJJF<JAJFJA-FA7F-FAF-<-JF-<--F7<<-7--AF-F<--F-FF-F-AF<A--FFA-A	MD:Z:15G4T8G0T1^C10C1G74T12A7T5	PG:Z:MarkDuplicates	NM:i:10	AS:i:94	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2116:13636:70152	99	000000F	510	60	21S28M1D102M	=	686	286	AAAGCTCTCCAAACCAGACAGCTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAA	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJFJJJJJJJFJJJJJJJJJJJJJFJJ	MD:Z:28^C10C91	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1114:20973:29244	1123	000000F	510	60	22S29M1D100M	=	569	206	CAGCTGGGTACTTGGTTCGTTGCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGCCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAA	AAFFFJJJJJJJJFJFJJJJJJJFJFJJJJJJJJJJJFFJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJAJFJFFJJJJJJJJJJJJJJJJJJJJFJJJJFFAJFAJJJJJJJJJJJFJFFFJJJJJJJJJJJJJJ7JJ<JFAF	MD:Z:29^T32T38C28	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2117:5761:72508	99	000000F	510	60	22S29M1D100M	=	569	206	CAGCTGGGTACTTGGTTCGTTGCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAA	AAAFFJJJJJJJJJJFFJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJFJJFFJJJJJJJJJJJJJFFFFJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJFJJFJJJJJJJJJJ<FFJFJFJFJJJJJJJJJJJFJAFJJ	MD:Z:29^T71C28	PG:Z:MarkDuplicates	NM:i:2	AS:i:117	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2123:16295:32426	1123	000000F	510	60	22S29M1D100M	=	569	206	CAGCTGGGTACTTGGTTCGTTGCTCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAA	AAAAFAJFJFAA<FA-<FJAJFA-AAFJFJFJFJ7FJJJJ<FJFAJ-FJJFFAAJJJFFJJJJ7-A<-A-<F<AFJFJFAAJAAJFJAJFFAFFFJJFJ-7-7FFAAJJJJJFA-A7AAJJ<<<<-<F-AF7FJFFJJJJFAFFAAJFFA<	MD:Z:29^T71C28	PG:Z:MarkDuplicates	NM:i:2	AS:i:117	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2202:16133:57600	147	000000F	510	60	28M1D45M1D75M3S	=	257	-403	CTCTGCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATT	<-JF<FAJFFAJFJF<AF<A7<FJF<JF<7FJAJ7AJJJJJ<JJJJJFJFFFJJFFFJFFFF7JJJJJJJJJJJJFFJJJJJFJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJAFFAFJFFJJJFJFFFFJAFJJFAFAA	MD:Z:28^C10C34^A75	PG:Z:MarkDuplicates	NM:i:3	AS:i:129	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1114:2686:25411	83	000000F	511	60	28M1D101M22S	=	234	-407	TCTGCGTGCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAGCTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAATTGACTGTCCTGTACACTCCCT	F7FA)JAA<AFF7--7-7FF7-<JJA7JJJF-JJAA-AJJFJJJJF-JJJJJJJJJJJJFFJJJJJJJFFJJJJAFJJJJJJJJJJJA<JJJJAJFF-JJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJFJJF<JJJJJJJJJJJJFFFAA	MD:Z:28^T18A52C29	PG:Z:MarkDuplicates	NM:i:3	AS:i:112	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1211:22262:1836	147	000000F	513	60	26M1D120M5S	=	208	-452	GGCGTGCTAGCTATCATGTCAAGAACGGACTGGACCGGAGAGAAACTGTAGATGTGTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTCTCTAGTCTTACTCTAAAGACACCTACTTTAACACAAATTAC	7<A----7--AAFFF<------7-AA<7--))AA-JFAFFA7---A----A-A<7---7FA-A<-JJJJA<<--AAJA-AJFJ--FFJ7<7A77F7-<-<JJJF<-FFF-A--7--A---JJF-<JFF7<-JF-JFAFJJFAJF-<-7-A<	MD:Z:0T7G12G1T2^T2T20G5C41C11A9C10C15	PG:Z:MarkDuplicates	NM:i:12	AS:i:88	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1109:30411:14687	99	000000F	514	60	24M1D45M1D71M5D11M	=	915	552	TCGTGCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACAT	-AFFFJJJJJJJJJJJJJJJJJJFJJJJJFFFFJJJJJJJJJJJJJJAJJJJJJJJJ<JFJJJJJJJJJJJJJJFJJJJJJJJJJJJFJFJJJJJJFJJJFJJJJJJJJJAJFJJFFJFJJJJ7FFJJFFFFJJJJAJJJJJJJJA<FFFF	MD:Z:0G23^C10C34^A71^ACAAT11	PG:Z:MarkDuplicates	NM:i:9	AS:i:124	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2114:18700:6601	147	000000F	514	60	14S24M1D113M	=	366	-286	CGTCTGCTCCATCCGCGTGCTGGCTCTCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGCTTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGCCCCCTACTT	))-))<--<-))<)<<7)--)77<7-<FF<F-A-7-----)----JJF-7-AFF7-F<7FJA7FAFF<<<FFFJFA-JFJFA<7--<<7-7-JA--F<7<FFJJFFAA-FFAJ<A-7AF-<F-<F-7<AJFJFJAJF-7-F7JJAFF--AA	MD:Z:11A12^C10C46A45A9	PG:Z:MarkDuplicates	NM:i:5	AS:i:110	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2115:8105:8394	147	000000F	516	60	23M1D120M8S	=	213	-447	TTGCTGGCTATCATGTAAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATGTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACACA	-)))7------77A<7--))A--))-<J<-A)-)-F-F<F-7)A----F7-A77-JFFF-F-<F7-7AA7-A<<F-A--AJF7-7-<<JJJ7AJF-F---<<7-7-JF77<F7<JFF-7--F-7-F-7-7FJ7F-7<7A-F-<--JF-AA-	MD:Z:0G15C6^T71C4T43	PG:Z:MarkDuplicates	NM:i:5	AS:i:120	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1105:2869:10117	147	000000F	517	60	21M1D121M9S	=	282	-378	TGCCGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTAGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCT	)-<)<FF7<<F<JFFJA-<FFA)F7)7F<JJFFAFFA7FFAFAA7-FJJFAJFJF<7JFJJJJJJJJJFFA-A7--F<JAFJFF7-FA-FFJJJJJAFJJJJJJJJJFJJJJA-JJJJJFAAF---F<7FAJJJJJFJJJJJJJA<FFFAA	MD:Z:3T17^C10C13G96	PG:Z:MarkDuplicates	NM:i:4	AS:i:121	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2122:16670:50691	163	000000F	518	60	20M1D117M5D14M	=	771	383	GCTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTA	AAFFFA<JAJFJJJJJJJJJFJJJJFJJJJFJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJFFAJFFJ<AJAAJJJJJFJJJFFJJJFAJJJJA<-A<JJFFFJAFJJJJFJJJF7<A)7<<AJJJJFAF<JFAAFJAJ<<	MD:Z:20^C10C106^ACAAT14	PG:Z:MarkDuplicates	NM:i:7	AS:i:129	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2202:3985:21333	163	000000F	518	60	20M1D117M5D14M	=	756	367	ACTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTA	AAFFFJJJFJJJJJJJJJJJJJJJJJJJFJFJJJJJJJFJJJJJJAFJJJJJJJJJJJJJJJJJJJJJFJJJFJFFJJFJJJJJJJJJJJJJFJJJJFFJJJJJJJJJJJJJJJJJJJJJAJJJJA<<FJJJJJFJFAAJ<AAFJFJ77FF	MD:Z:0G19^C10C106^ACAAT14	PG:Z:MarkDuplicates	NM:i:8	AS:i:128	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2218:17553:53627	163	000000F	518	60	21M1D120M10S	=	678	252	GCTGGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACACAAA	AAAFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJFJJJJFFJJJJJJJJJJFFJJFFJJJJJJJFFFF<FFJ<A7AFFF<	MD:Z:21^T71C48	PG:Z:MarkDuplicates	NM:i:2	AS:i:129	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2120:25408:5458	83	000000F	519	60	19M1D117M15S	=	473	-183	CTGGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACCAGGGACTGGTTTAC	7JAFFFFA-AJJJJJJFFFF7FF-FA<JFFJJJFFF7-7<JJJJFAJAJFFFJAFJ<JJ<JAJFFFA-AJJ<<-J<J7JFFJFFAAJFF-<F-FJJJJFFJFFFFFF-JJJFJAJJFJAJ<77JJJAA-FAJFA-FF<AAA<FFJJFFFAA	MD:Z:19^C10C106	PG:Z:MarkDuplicates	NM:i:2	AS:i:124	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1120:21491:67023	163	000000F	521	60	18M1D120M13S	=	682	295	GGCTATCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACACACATTA	AAFAFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJAFFJJJJJJJJJJ<FJJJJJAJJJJJJJJJJJJFFJJAJJJJ	MD:Z:18^T71C48	PG:Z:MarkDuplicates	NM:i:2	AS:i:126	XS:i:19	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1101:8907:12455	163	000000F	521	60	17M1D117M5D17M	=	714	328	GGCTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTAGAT	AAFFFJJJJJJFJJJJJJFJJJJJJJJJJJJJJJJJJJ-AFJJJJFJFJJJFJFJJJJJJJJFJJJJJJJJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJAA<AFFFJJJJJJJJJAFFJ<JFA7FFJAFF<FFJ<FJF<7<F<7	MD:Z:17^C10C106^ACAAT17	PG:Z:MarkDuplicates	NM:i:7	AS:i:128	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1112:9942:24093	163	000000F	523	60	15M1D117M5D19M	=	741	348	CTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTAGATAT	AAAAFJJJJJJJJJJJJFJJJJJJJJFJJJJJJJJJJFJJJFJJJJJJJJJJJFJJJJJJJJJJJJAJJJJAJJJJJJJJFJJJJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJAFF<FFJJJJJJFFFJJFJJAFJJFJF<FFAJ-<	MD:Z:15^C10C106^ACAAT19	PG:Z:MarkDuplicates	NM:i:7	AS:i:128	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1112:9891:24181	1187	000000F	523	60	15M1D117M5D19M	=	741	348	CTATCATGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTAGATAT	AAA<FJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJFJJF<<FJJJJJJJJJJAFFJJFFFAAJJJAA<<FAFJJ<JJFJFJFJJA<FFJJJ7FJJJJF	MD:Z:15^C10C106^ACAAT19	PG:Z:MarkDuplicates	NM:i:7	AS:i:128	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2117:26047:35397	147	000000F	526	60	13M1D119M4I15M	=	411	-263	TCATGTCAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTAAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACACAAATTACATCT	77<FF<AAJ<77JAA-7JF<-FAJJJJJFA<AJJJJJJJJJJJJF<JJJJJJJJJJJJJJJJJJJJJJJFFJJJJFJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJJJFJJ7JJJJJJJJJFJJJJJJJJFJJJJJJJJJFFFFFAA	MD:Z:13^T62T8C48T13	PG:Z:MarkDuplicates	NM:i:8	AS:i:116	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2220:31842:5493	1171	000000F	526	60	13M1D119M4I15M	=	411	-263	TCATGTCAGGTACAGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTAATATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACACAAATTACATCT	-A--)-7A--<77-)FFA)<A)7)<<<7A-<77<A7A-FAF-AJAAA-FAAJFF<7JFF7FF<7AFA--7AAAJF<F-JAFFJF-7-A<AAF-FA<A7AF-<7JJFJFJFFF--AAJJJJJJJJJJJFAJFJJJFAFJJJJJJFFFAFAAA	MD:Z:13^T0G61T1G6C48T13	PG:Z:MarkDuplicates	NM:i:10	AS:i:106	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1122:21613:28101	147	000000F	528	60	11M1D119M4I17M	=	223	-453	ATGTGAGGTACGGTCTGGACCGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAATTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACACAAATTACATCTAG	7<-7--)--A-)77))-AAJF<JFFJ7A--77<7A--7---J<FAFFJAA7A7F<<F7JFA77JJJJJAF<<<<--FJA<A-JF<JFJJ7<FJJF-7AFJJFJA<FFFJAAFFJ<FFAJJFJJ<JF7<FJFJFF<JFJFF-<AF<<AFFAA	MD:Z:4C6^T71C48T15	PG:Z:MarkDuplicates	NM:i:8	AS:i:116	XS:i:21	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1205:7476:36381	99	000000F	529	60	23S9M1D119M	=	862	484	CATTCGCAGAGCACCAGTAAGTGTGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACAC	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ	MD:Z:9^C10C108	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1104:2676:68992	99	000000F	529	60	19S9M1D121M2S	=	643	258	TTCCGTGCATGCTGGCGCCTGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAAT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJAJJJJJJJJJJJJJJJJJFJJJFJJJFJAJJJJJJJJJAJFA	MD:Z:9^C10C110	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1117:22739:12929	1123	000000F	529	60	19S9M1D121M2S	=	643	258	TTCCGTGCATGCTGGCGCCTGTCAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAAT	AAFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ	MD:Z:9^C10C110	PG:Z:MarkDuplicates	NM:i:2	AS:i:118	XS:i:0	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:1217:16001:6565	147	000000F	532	60	6M1D117M5D28M	=	195	-494	CAGGTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTAGATATTTGTTATTT	7AFAAF<)7<<7<7FA<FFFAF<JFFJFJJJJJAJFFFJAFJFJJJJJJJJJJJFJFFAFJJJJJJJJJJJJJJJJJJJJJJJJJFFJJJFJJJJJJFJJFJJFJJJJJJJJJJJJJJJJJJJJFFJJJJJJJJJJJJJJJJJJJJFFFAA	MD:Z:6^C10C106^ACAAT28	PG:Z:MarkDuplicates	NM:i:7	AS:i:129	XS:i:20	RG:Z:rg
+ST-E00128:308:HHVVLALXX:8:2107:22242:17377	83	000000F	535	60	3M1D121M27S	=	134	-526	GTATGGTCTGGACAGGAGAGAAACTGTGGATGTCTGTCAACACAACAGAAAAAGTGACTGATTAGTTAGATGTAACTAATTTCAACTATCTAGTCTTCCTCTAAAGACCCCTACTTTAACACAAATTACATCTAGCATGTGAACACCCGTG	AA-<A<AJ<)F7<A<JJFJJJFFFJFAFFJJJJFF7<JAF<JJJJJJJJJJJJJJJF7<7<<AJFFFJJAJFJJFJFJJJ7<<F7FJAF7AJJFJJJAJFJJJJFJJJJF7JAJJJJJJJJJJJJJJJJFJJJJJJAA7JJJJJ7FF<FAA	MD:Z:3^C10C110	PG:Z:MarkDuplicates	NM:i:2	AS:i:116	XS:i:0	RG:Z:rg
diff --git a/test/norm.out b/test/norm.out
index 002acdb..3695f30 100644
--- a/test/norm.out
+++ b/test/norm.out
@@ -42,7 +42,7 @@
 20	3	.	G	CT	999	PASS	INDEL;AN=4;AC=2	GT	0/1	0/1
 20	5	.	TG	CT	999	PASS	INDEL;AN=4;AC=2	GT	1/0	1/0
 20	5	.	TGGG	TAC,TG,TGGGG,AC	.	PASS	INDEL;AN=4;AC=2,2,0,0	GT:PL:DP	1/2:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15:1	1/2:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15:1
-20	59	.	AG	.	999	PASS	AN=4	GT:PL:DP	0/0:0:4	0/0:0:4
+20	59	.	A	.	999	PASS	AN=4	GT:PL:DP	0/0:0:4	0/0:0:4
 20	81	.	A	C	999	PASS	AN=4;AC=2	GT:PL:DP	0/1:255,0,255:13	0/1:255,0,255:13
 20	84	.	G	T	999	PASS	AN=4;AC=2	GT:PL:DP	0/1:255,0,255:13	0/1:255,0,255:13
 20	95	.	T	A	999	PASS	AN=4;AC=2	GT:PL:DP	0/1:255,0,255:13	0/1:255,0,255:13
diff --git a/test/norm.split.and.norm.out b/test/norm.split.and.norm.out
index 64838ed..35fb9c5 100644
--- a/test/norm.split.and.norm.out
+++ b/test/norm.split.and.norm.out
@@ -45,7 +45,7 @@
 20	5	.	T	TG	.	PASS	INDEL;AN=4;AC=0	GT:PL:DP	0/0:1,7,10:1	0/0:1,7,10:1
 20	5	.	TGGG	AC	.	PASS	INDEL;AN=4;AC=0	GT:PL:DP	0/0:1,11,15:1	0/0:1,11,15:1
 20	6	.	GGG	AC	.	PASS	INDEL;AN=4;AC=2	GT:PL:DP	1/0:1,2,3:1	1/0:1,2,3:1
-20	59	.	AG	.	999	PASS	AN=4	GT:PL:DP	0/0:0:4	0/0:0:4
+20	59	.	A	.	999	PASS	AN=4	GT:PL:DP	0/0:0:4	0/0:0:4
 20	81	.	A	C	999	PASS	AN=4;AC=2	GT:PL:DP	0/1:255,0,255:13	0/1:255,0,255:13
 20	84	.	G	T	999	PASS	AN=4;AC=2	GT:PL:DP	0/1:255,0,255:13	0/1:255,0,255:13
 20	95	.	T	A	999	PASS	AN=4;AC=2	GT:PL:DP	0/1:255,0,255:13	0/1:255,0,255:13
diff --git a/test/test.pl b/test/test.pl
index 75f2d04..e65aa0e 100755
--- a/test/test.pl
+++ b/test/test.pl
@@ -62,6 +62,7 @@ test_vcf_merge($opts,in=>['merge.3.a','merge.3.b'],out=>'merge.3.out',args=>'--f
 test_vcf_merge($opts,in=>['merge.4.a','merge.4.b'],out=>'merge.4.out',args=>'--force-samples -m id');
 test_vcf_merge($opts,in=>['gvcf.merge.1','gvcf.merge.2','gvcf.merge.3'],out=>'gvcf.merge.1.out',args=>'--gvcf -');
 test_vcf_merge($opts,in=>['merge.gvcf.2.a','merge.gvcf.2.b','merge.gvcf.2.c'],out=>'merge.gvcf.2.out',args=>'--gvcf -');
+test_vcf_merge($opts,in=>['merge.gvcf.3.a','merge.gvcf.3.b'],out=>'merge.gvcf.3.out',args=>'--gvcf - -i SRC:join');
 test_vcf_merge($opts,in=>['merge.5.a','merge.5.b'],out=>'merge.5.out');
 test_vcf_query($opts,in=>'query',out=>'query.out',args=>q[-f '%CHROM\\t%POS\\t%REF\\t%ALT\\t%DP4\\t%AN[\\t%GT\\t%TGT]\\n']);
 test_vcf_query($opts,in=>'view.filter',out=>'query.2.out',args=>q[-f'%XRI\\n' -i'XRI[*]>1111']);
@@ -226,7 +227,7 @@ test_vcf_plugin($opts,in=>'view',out=>'view.GTisec.v.out',cmd=>'+GTisec',args=>'
 test_vcf_plugin($opts,in=>'trio',out=>'trio.out',cmd=>'+trio-switch-rate',args=>'-- -p {PATH}/trio.ped | grep -v bcftools');
 test_vcf_plugin($opts,in=>'ad-bias',out=>'ad-bias.out',cmd=>'+ad-bias',args=>'-- -s {PATH}/ad-bias.samples | grep -v bcftools');
 test_vcf_plugin($opts,in=>'af-dist',out=>'af-dist.out',cmd=>'+af-dist',args=>' | grep -v bcftools');
-test_vcf_plugin($opts,in=>'fixref',out=>'fixref.1.out',cmd=>'+fixref',args=>'-- -f {PATH}/norm.fa -m top');
+test_vcf_plugin($opts,in=>'fixref.2a',out=>'fixref.2.out',index=>['fixref.2b'],cmd=>'+fixref',args=>'-- -f {PATH}/norm.fa -i {TMP}/fixref.2b.vcf.gz');
 test_vcf_plugin($opts,in=>'aa',out=>'aa.out',cmd=>'+fill-from-fasta',args=>'-- -f {PATH}/aa.fa -c AA -h {PATH}/aa.hdr -i \'TYPE="snp"\'');
 test_vcf_plugin($opts,in=>'ref',out=>'ref.out',cmd=>'+fill-from-fasta',args=>'-- -f {PATH}/norm.fa -c REF');
 test_vcf_plugin($opts,in=>'view',out=>'view.GTsubset.NA1.out',cmd=>'+GTsubset --no-version',args=>'-- -s NA00001');
@@ -281,23 +282,25 @@ test_vcf_consensus_chain($opts,in=>'consensus',out=>'consensus.4.chain',chain=>'
 test_vcf_consensus($opts,in=>'consensus2',out=>'consensus2.1.out',fa=>'consensus2.fa',args=>'-H 1');
 test_vcf_consensus($opts,in=>'consensus2',out=>'consensus2.2.out',fa=>'consensus2.fa',args=>'-H 2');
 test_vcf_consensus($opts,in=>'empty',out=>'consensus.5.out',fa=>'consensus.fa',args=>'');
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.1.out',args=>q[-r17:100-150],test_list=>1);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.2.out',args=>q[-a DP,DV -r17:100-600]); # test files from samtools mpileup test suite
-test_mpileup($opts,in=>[qw(1)],out=>'mpileup/mpileup.3.out',args=>q[-B --ff 0x14 -r17:1050-1060]); # test file converted to vcf from samtools mpileup test suite
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.4.out',args=>q[-a DP,DPR,DV,DP4,INFO/DPR,SP -r17:100-600]); #test files from samtools mpileup test suite
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.5.out',args=>q[-a DP,AD,ADF,ADR,SP,INFO/AD,INFO/ADF,INFO/ADR -r17:100-600]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.6.out',args=>q[-a DP,DV -r17:100-600 --gvcf 0,2,5]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.6.out',args=>q[-a DP,DV -r17:100-200,17:201-300,17:301-400,17:401-500,17:501-600 --gvcf 0,2,5]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.7.out',args=>q[-r17:100-150 -s HG00101,HG00102]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.7.out',args=>q[-r17:100-150 -S {PATH}/mplp.samples]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.8.out',args=>q[-r17:100-150 -s ^HG00101,HG00102]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.8.out',args=>q[-r17:100-150 -S ^{PATH}/mplp.samples]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.9.out',args=>q[-t17:100-150 -S {PATH}/mplp.9.samples]);
-test_mpileup($opts,in=>[qw(1 2 3)],out=>'mpileup/mpileup.10.out',args=>q[-t17:100-150 -G {PATH}/mplp.10.samples]);
-test_mpileup($opts,in=>[qw(3)],out=>'mpileup/mpileup.11.out',args=>q[]);
-test_mpileup($opts,in=>[qw(3 4)],out=>'mpileup/mpileup.11.out',args=>q[-s HG00102]);
-test_mpileup($opts,in=>[qw(3 4)],out=>'mpileup/mpileup.11.out',args=>q[-s ^HG99999]);
-test_mpileup($opts,in=>[qw(3 4)],out=>'mpileup/mpileup.11.out',args=>q[-G {PATH}/mplp.11.rgs]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.1.out',args=>q[-r17:100-150],test_list=>1);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.2.out',args=>q[-a DP,DV -r17:100-600]); # test files from samtools mpileup test suite
+test_mpileup($opts,in=>[qw(mpileup.1)],out=>'mpileup/mpileup.3.out',args=>q[-B --ff 0x14 -r17:1050-1060]); # test file converted to vcf from samtools mpileup test suite
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.4.out',args=>q[-a DP,DPR,DV,DP4,INFO/DPR,SP -r17:100-600]); #test files from samtools mpileup test suite
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.5.out',args=>q[-a DP,AD,ADF,ADR,SP,INFO/AD,INFO/ADF,INFO/ADR -r17:100-600]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.6.out',args=>q[-a DP,DV -r17:100-600 --gvcf 0,2,5]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.6.out',args=>q[-a DP,DV -r17:100-200,17:201-300,17:301-400,17:401-500,17:501-600 --gvcf 0,2,5]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.7.out',args=>q[-r17:100-150 -s HG00101,HG00102]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.7.out',args=>q[-r17:100-150 -S {PATH}/mplp.samples]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.8.out',args=>q[-r17:100-150 -s ^HG00101,HG00102]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.8.out',args=>q[-r17:100-150 -S ^{PATH}/mplp.samples]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.9.out',args=>q[-t17:100-150 -S {PATH}/mplp.9.samples]);
+test_mpileup($opts,in=>[qw(mpileup.1 mpileup.2 mpileup.3)],out=>'mpileup/mpileup.10.out',args=>q[-t17:100-150 -G {PATH}/mplp.10.samples]);
+test_mpileup($opts,in=>[qw(mpileup.3)],out=>'mpileup/mpileup.11.out',args=>q[]);
+test_mpileup($opts,in=>[qw(mpileup.3 mpileup.4)],out=>'mpileup/mpileup.11.out',args=>q[-s HG00102]);
+test_mpileup($opts,in=>[qw(mpileup.3 mpileup.4)],out=>'mpileup/mpileup.11.out',args=>q[-s ^HG99999]);
+test_mpileup($opts,in=>[qw(mpileup.3 mpileup.4)],out=>'mpileup/mpileup.11.out',args=>q[-G {PATH}/mplp.11.rgs]);
+test_mpileup($opts,in=>[qw(mpileup.3 mpileup.4)],out=>'mpileup/mpileup.11.out',args=>q[-G {PATH}/mplp.11.rgs]);
+test_mpileup($opts,in=>[qw(indel-AD.1)],out=>'mpileup/indel-AD.1.out',ref=>'indel-AD.1.fa',args=>q[-a AD]);
 test_csq($opts,in=>'csq',out=>'csq.1.out',cmd=>'-f {PATH}/csq.fa -g {PATH}/csq.gff3');
 test_csq_real($opts,in=>'csq');
 
@@ -863,7 +866,13 @@ sub test_vcf_plugin
     if ( !exists($args{args}) ) { $args{args} = ''; }
     $args{args} =~ s/{PATH}/$$opts{path}/g;
     $args{cmd}  =~ s/{PATH}/$$opts{path}/g;
+    $args{args} =~ s/{TMP}/$$opts{tmp}/g;
+    $args{cmd}  =~ s/{TMP}/$$opts{tmp}/g;
     bgzip_tabix_vcf($opts,"$args{in}");
+    if ( exists($args{index}) )
+    {
+        for my $file (@{$args{index}}) { bgzip_tabix_vcf($opts,$file); }
+    }
     test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools $args{cmd} $$opts{tmp}/$args{in}.vcf.gz $args{args} 2>/dev/null | grep -v ^##bcftools_");
 
     cmd("$$opts{bin}/bcftools view -Ob $$opts{tmp}/$args{in}.vcf.gz > $$opts{tmp}/$args{in}.bcf");
@@ -1005,10 +1014,10 @@ sub test_mpileup
         open(my $fh4,'>',"$$opts{tmp}/mpileup.cram.urllist") or error("$$opts{tmp}/mpileup.cram.urllist: $!");
         for my $file (@{$args{in}})
         {
-            print $fh1 "$$opts{path}/mpileup/mpileup.$file.bam\n";
-            print $fh2 "$$opts{path}/mpileup/mpileup.$file.cram\n";
-            print $fh3 "file://", abs_path("$$opts{path}/mpileup/mpileup.$file.bam"), "\n";
-            print $fh4 "file://", abs_path("$$opts{path}/mpileup/mpileup.$file.cram"), "\n";
+            print $fh1 "$$opts{path}/mpileup/$file.bam\n";
+            print $fh2 "$$opts{path}/mpileup/$file.cram\n";
+            print $fh3 "file://", abs_path("$$opts{path}/mpileup/$file.bam"), "\n";
+            print $fh4 "file://", abs_path("$$opts{path}/mpileup/$file.cram"), "\n";
         }
         close($fh1);
         close($fh2);
@@ -1016,19 +1025,21 @@ sub test_mpileup
         close($fh4);
 	}
 
+    my $ref = exists($args{ref}) ? $args{ref} : "mpileup.ref.fa";
+
     $args{args} =~ s/{PATH}/$$opts{path}/g;
     for my $fmt ('bam','cram')
     {
         my @files = ();
-        for my $file (@{$args{in}}) { push @files, "$$opts{path}/mpileup/mpileup.$file.$fmt"; }
+        for my $file (@{$args{in}}) { push @files, "$$opts{path}/mpileup/$file.$fmt"; }
         my $files = join(' ', at files);
         my $grep_hdr = "grep -v ^##bcftools | grep -v ^##reference";
-        test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/mpileup.ref.fa $files 2>/dev/null | $grep_hdr");
-        test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/mpileup.ref.fa -Ob $files 2>/dev/null | $$opts{bin}/bcftools view  | $grep_hdr");
+        test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/$ref $files 2>/dev/null | $grep_hdr");
+        test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/$ref -Ob $files 2>/dev/null | $$opts{bin}/bcftools view  | $grep_hdr");
         if ($args{test_list})
         {
-            test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/mpileup.ref.fa -b $$opts{tmp}/mpileup.$fmt.list --no-version 2>/dev/null | grep -v ^##reference");
-            test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/mpileup.ref.fa -Ob -b $$opts{tmp}/mpileup.$fmt.urllist 2>/dev/null | $$opts{bin}/bcftools view  | $grep_hdr");
+            test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/$ref -b $$opts{tmp}/mpileup.$fmt.list --no-version 2>/dev/null | grep -v ^##reference");
+            test_cmd($opts,%args,cmd=>"$$opts{bin}/bcftools mpileup $args{args} -f $$opts{path}/mpileup/$ref -Ob -b $$opts{tmp}/mpileup.$fmt.urllist 2>/dev/null | $$opts{bin}/bcftools view  | $grep_hdr");
         }
     }
 }
diff --git a/vcfbuf.c b/vcfbuf.c
new file mode 100644
index 0000000..d896d3a
--- /dev/null
+++ b/vcfbuf.c
@@ -0,0 +1,442 @@
+/* The MIT License
+
+   Copyright (c) 2016 Genome Research Ltd.
+
+   Author: Petr Danecek <pd3 at sanger.ac.uk>
+   
+   Permission is hereby granted, free of charge, to any person obtaining a copy
+   of this software and associated documentation files (the "Software"), to deal
+   in the Software without restriction, including without limitation the rights
+   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+   copies of the Software, and to permit persons to whom the Software is
+   furnished to do so, subject to the following conditions:
+   
+   The above copyright notice and this permission notice shall be included in
+   all copies or substantial portions of the Software.
+   
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+   THE SOFTWARE.
+
+ */
+
+#include <htslib/vcf.h>
+#include <htslib/vcfutils.h>
+#include "bcftools.h"
+#include "vcfbuf.h"
+#include "rbuf.h"
+
+typedef struct
+{
+    double max;
+    int rand_missing, skip_filter;
+}
+ld_t;
+
+typedef struct
+{
+    bcf1_t *rec;
+    double af;
+    int af_set:1, idx:31;
+}
+vcfrec_t;
+
+typedef struct
+{
+    int max_sites, mvrec, mac, mfarr;
+    int *ac, *idx;
+    float *farr;
+    char *af_tag;
+    vcfrec_t **vrec;
+}
+prune_t;
+
+typedef struct
+{
+    int active, rid, end;
+}
+overlap_t;
+
+struct _vcfbuf_t
+{
+    int win;
+    bcf_hdr_t *hdr;
+    vcfrec_t *vcf;
+    rbuf_t rbuf;
+    ld_t ld;
+    prune_t prune;
+    overlap_t overlap;
+};
+
+vcfbuf_t *vcfbuf_init(bcf_hdr_t *hdr, int win)
+{
+    vcfbuf_t *buf = (vcfbuf_t*) calloc(1,sizeof(vcfbuf_t));
+    buf->hdr = hdr;
+    buf->win = win;
+    buf->overlap.rid = -1;
+    rbuf_init(&buf->rbuf, 0);
+    return buf;
+}
+
+void vcfbuf_destroy(vcfbuf_t *buf)
+{
+    int i;
+    for (i=0; i<buf->rbuf.m; i++)
+        if ( buf->vcf[i].rec ) bcf_destroy(buf->vcf[i].rec);
+    free(buf->vcf);
+    free(buf->prune.farr);
+    free(buf->prune.vrec);
+    free(buf->prune.ac);
+    free(buf->prune.idx);
+    free(buf);
+}
+
+void vcfbuf_set(vcfbuf_t *buf, vcfbuf_opt_t key, void *value)
+{
+    if ( key==VCFBUF_LD_MAX ) { buf->ld.max = *((double*)value); return; }
+    if ( key==VCFBUF_RAND_MISSING ) { buf->ld.rand_missing = *((int*)value); return; }
+    if ( key==VCFBUF_SKIP_FILTER ) { buf->ld.skip_filter = *((int*)value); return; }
+    if ( key==VCFBUF_NSITES ) { buf->prune.max_sites = *((int*)value); return; }
+    if ( key==VCFBUF_AF_TAG ) { buf->prune.af_tag = *((char**)value); return; }
+    if ( key==VCFBUF_OVERLAP_WIN ) { buf->overlap.active = *((int*)value); return; }
+}
+
+int vcfbuf_nsites(vcfbuf_t *buf)
+{
+    return buf->rbuf.n;
+}
+
+bcf1_t *vcfbuf_push(vcfbuf_t *buf, bcf1_t *rec, int swap)
+{
+    if ( !swap ) error("todo: swap=%d\n", swap);
+
+    rbuf_expand0(&buf->rbuf, vcfrec_t, buf->rbuf.n+1, buf->vcf);
+
+    int i = rbuf_append(&buf->rbuf);
+    if ( !buf->vcf[i].rec ) buf->vcf[i].rec = bcf_init1();
+    
+    bcf1_t *ret = buf->vcf[i].rec;
+    buf->vcf[i].rec = rec;
+    buf->vcf[i].af_set = 0;
+
+    return ret;
+}
+
+static int cmpvrec(const void *_a, const void *_b)
+{
+    vcfrec_t *a = *((vcfrec_t**) _a);
+    vcfrec_t *b = *((vcfrec_t**) _b);
+    if ( a->af < b->af ) return -1;
+    if ( a->af == b->af ) return 0;
+    return 1;
+}
+static int cmpint_desc(const void *_a, const void *_b)
+{
+    int a = *((int*)_a);
+    int b = *((int*)_b);
+    if ( a < b ) return 1;
+    if ( a == b ) return 0;
+    return -1;
+}
+
+static void _prune_sites(vcfbuf_t *buf, int flush_all)
+{
+    int nbuf = flush_all ? buf->rbuf.n : buf->rbuf.n - 1;
+
+    if ( nbuf > buf->prune.mvrec )
+    {
+        buf->prune.idx   = (int*) realloc(buf->prune.idx, nbuf*sizeof(int));
+        buf->prune.vrec  = (vcfrec_t**) realloc(buf->prune.vrec, nbuf*sizeof(vcfrec_t*));
+        buf->prune.mvrec = nbuf;
+    }
+
+    // set allele frequency and prepare buffer for sorting
+    int i,k,irec = 0;
+    for (i=-1; rbuf_next(&buf->rbuf,&i) && irec<nbuf; )
+    {
+        bcf1_t *line = buf->vcf[i].rec;
+        if ( line->n_allele > buf->prune.mac ) 
+        {
+            buf->prune.ac = (int*) realloc(buf->prune.ac, line->n_allele*sizeof(*buf->prune.ac));
+            buf->prune.mac = line->n_allele;
+        }
+        if ( !buf->vcf[i].af_set )
+        {
+            buf->vcf[i].af = 0;
+            if ( buf->prune.af_tag )
+            {
+                if ( bcf_get_info_float(buf->hdr,line,buf->prune.af_tag,&buf->prune.farr, &buf->prune.mfarr) > 0 ) buf->vcf[i].af = buf->prune.farr[0];
+            }
+            else if ( bcf_calc_ac(buf->hdr, line, buf->prune.ac, BCF_UN_INFO|BCF_UN_FMT) )
+            {
+                int ntot = buf->prune.ac[0], nalt = 0; 
+                for (k=1; k<line->n_allele; k++) nalt += buf->prune.ac[k];
+                buf->vcf[i].af = ntot ? (float)nalt/ntot : 0;
+            }
+            buf->vcf[i].af_set = 1;
+        }
+        buf->vcf[i].idx = irec;
+        buf->prune.vrec[irec++] = &buf->vcf[i];
+    }
+
+    // sort by allele frequency, low AF will be removed preferentially
+    qsort(buf->prune.vrec, nbuf, sizeof(*buf->prune.vrec), cmpvrec);
+
+    // sort the rbuf indexes to be pruned descendently so that j-th rbuf index
+    // is removed before i-th index if i<j
+    int nprune = nbuf - buf->prune.max_sites;
+    for (i=0; i<nprune; i++)
+        buf->prune.idx[i] = buf->prune.vrec[i]->idx;
+
+    qsort(buf->prune.idx, nprune, sizeof(int), cmpint_desc);
+
+    for (i=0; i<nprune; i++)
+        rbuf_remove_kth(&buf->rbuf, vcfrec_t, buf->prune.idx[i], buf->vcf);
+}
+
+static int _overlap_can_flush(vcfbuf_t *buf, int flush_all)
+{
+    if ( flush_all ) { buf->overlap.rid = -1; return 1; }
+
+    int i = rbuf_last(&buf->rbuf);
+    vcfrec_t *last = &buf->vcf[i];
+    if ( buf->overlap.rid != last->rec->rid ) buf->overlap.end = 0;
+
+    int beg_pos = last->rec->pos;
+    int end_pos = last->rec->pos + last->rec->rlen - 1;
+
+    // Assuming left-aligned indels. In case it is a deletion, the real variant
+    // starts one base after. If an insertion, the overlap with previous zero length.
+    int imin = last->rec->rlen;
+    for (i=0; i<last->rec->n_allele; i++)
+    {
+        char *ref = last->rec->d.allele[0];
+        char *alt = last->rec->d.allele[i];
+        if ( *alt == '<' ) continue;    // ignore symbolic alleles
+        while ( *ref && *alt && nt_to_upper(*ref)==nt_to_upper(*alt) ) { ref++; alt++; }
+        if ( imin > ref - last->rec->d.allele[0] ) imin = ref - last->rec->d.allele[0];
+    }
+
+    if ( beg_pos <= buf->overlap.end )
+    {
+        beg_pos += imin;
+        if ( beg_pos > end_pos ) end_pos = beg_pos;
+    }
+
+    if ( buf->rbuf.n==1 )
+    {
+        buf->overlap.rid = last->rec->rid;
+        buf->overlap.end = end_pos;
+        return 0; 
+    }
+    if ( beg_pos <= buf->overlap.end )
+    {
+        if ( buf->overlap.end < end_pos ) buf->overlap.end = end_pos;
+        return 0;
+    }
+    return 1;
+}
+
+bcf1_t *vcfbuf_flush(vcfbuf_t *buf, int flush_all)
+{
+    int i,j;
+
+    if ( buf->rbuf.n==0 ) return NULL;
+    if ( flush_all ) goto ret;
+
+    i = rbuf_kth(&buf->rbuf, 0);    // first
+    j = rbuf_last(&buf->rbuf);      // last
+
+    if ( buf->vcf[i].rec->rid != buf->vcf[j].rec->rid ) goto ret;
+    if ( buf->overlap.active )
+    {
+        int ret = _overlap_can_flush(buf, flush_all);
+        //printf("can_flush: %d  %d - %d\n", ret, buf->vcf[i].rec->pos+1, buf->vcf[j].rec->pos+1);
+        if ( ret ) goto ret;
+    }
+    //if ( buf->overlap.active && _overlap_can_flush(buf, flush_all) ) goto ret;
+
+    if ( buf->win > 0 )
+    {
+        if ( buf->rbuf.n <= buf->win ) return NULL;
+        goto ret;
+    }
+    else if ( buf->win < 0 )
+    {
+        if ( buf->vcf[i].rec->pos - buf->vcf[j].rec->pos > buf->win ) return NULL;
+    }
+    else return NULL;
+    
+ret:
+    if ( buf->prune.max_sites && buf->prune.max_sites < buf->rbuf.n ) _prune_sites(buf, flush_all);
+
+    i = rbuf_shift(&buf->rbuf);
+    return buf->vcf[i].rec;
+}
+
+static double _estimate_af(int8_t *ptr, int size, int nvals, int nsamples)
+{
+    int i,j, nref = 0, nalt = 0;
+    for (i=0; i<nsamples; i++)
+    {
+        for (j=0; j<nvals; j++)
+        {
+            if ( ptr[j]==bcf_gt_missing ) break;
+            if ( ptr[j]==bcf_int8_vector_end ) break;
+            if ( bcf_gt_allele(ptr[j]) ) nalt++;
+            else nref++;
+        }
+        ptr += size;
+    }
+    if ( nref+nalt == 0 ) return 0;
+    return (double)nalt/(nref+nalt);
+}
+
+/*
+    For unphased genotypes D is approximated as suggested in https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2710162/
+        D =~ (GT correlation) * sqrt(Pa*(1-Pa)*Pb*(1-Pb))
+*/
+static double _calc_ld(vcfbuf_t *buf, bcf1_t *arec, bcf1_t *brec)
+{
+    if ( arec->n_sample!=brec->n_sample ) error("Different number of samples: %d vs %d\n",arec->n_sample,brec->n_sample);
+    assert( arec->n_sample );
+
+    int i,j,igt = bcf_hdr_id2int(buf->hdr, BCF_DT_ID, "GT");
+    bcf_unpack(arec, BCF_UN_FMT);
+    bcf_unpack(brec, BCF_UN_FMT);
+    bcf_fmt_t *afmt = NULL, *bfmt = NULL;
+    for (i=0; i<arec->n_fmt; i++)
+        if ( arec->d.fmt[i].id==igt ) { afmt = &arec->d.fmt[i]; break; }
+    if ( !afmt ) return -1;  // no GT tag
+    for (i=0; i<brec->n_fmt; i++)
+        if ( brec->d.fmt[i].id==igt ) { bfmt = &brec->d.fmt[i]; break; }
+    if ( !bfmt ) return -1;  // no GT tag
+
+    if ( afmt->n==0 ) return -1;   // empty?!
+    if ( bfmt->n==0 ) return -1;   // empty?!
+    if ( afmt->type!=BCF_BT_INT8 ) error("TODO: the GT fmt_type is not int8!\n");
+    if ( bfmt->type!=BCF_BT_INT8 ) error("TODO: the GT fmt_type is not int8!\n");
+
+    // Determine allele frequencies, this is to sample randomly missing genotypes
+    double aaf = 0, baf = 0;
+    if ( buf->ld.rand_missing )
+    {
+        aaf = _estimate_af((int8_t*)afmt->p, afmt->size, afmt->n, arec->n_sample);
+        baf = _estimate_af((int8_t*)bfmt->p, bfmt->size, bfmt->n, brec->n_sample);
+    }
+
+    // Calculate correlation 
+    double ab = 0, aa = 0, bb = 0, a = 0, b = 0;
+    int nab = 0, na = 0, nb = 0, ndiff = 0;
+    for (i=0; i<arec->n_sample; i++)
+    {
+        int8_t *aptr = (int8_t*) (afmt->p + i*afmt->size);
+        int8_t *bptr = (int8_t*) (bfmt->p + i*bfmt->size);
+        int adsg = 0, bdsg = 0, an = 0, bn = 0;
+        for (j=0; j<afmt->n; j++)
+        {
+            if ( aptr[j]==bcf_int8_vector_end ) break;
+            if ( aptr[j]==bcf_gt_missing )
+            {
+                if ( !buf->ld.rand_missing ) break;
+                if ( rand()/RAND_MAX >= aaf ) adsg += 1;
+            }
+            else if ( bcf_gt_allele(aptr[j]) ) adsg += 1;
+            an++;
+        }
+        for (j=0; j<bfmt->n; j++)
+        {
+            if ( bptr[j]==bcf_int8_vector_end ) break;
+            if ( bptr[j]==bcf_gt_missing )
+            {
+                if ( !buf->ld.rand_missing ) break;
+                if ( rand()/RAND_MAX >= baf ) bdsg += 1;
+            }
+            else if ( bcf_gt_allele(bptr[j]) ) bdsg += 1;
+            bn++;
+        }
+        if ( an )
+        {
+            aa += adsg*adsg;
+            a  += adsg;
+            na++;
+        }
+        if ( bn )
+        {
+            bb += bdsg*bdsg;
+            b  += bdsg;
+            nb++;
+        }
+        if ( an && bn )
+        {
+            if ( adsg!=bdsg ) ndiff++;
+            ab += adsg*bdsg;
+            nab++;
+        }
+    }
+    if ( !nab ) return -1;
+
+    double cor;
+    if ( !ndiff ) cor = 1;
+    else
+    {
+        // Don't know how to deal with zero variance. Since this the purpose is filtering,
+        // it is not enough to say the value is undefined. Therefore an artificial noise is
+        // added to make the denominator non-zero.
+        if ( aa == a*a/na || bb == b*b/nb )
+        {
+            aa += 3*3;
+            bb += 3*3;
+            ab += 3*3;
+            a  += 3;
+            b  += 3;
+            na++;
+            nb++;
+            nab++;
+        }
+        cor = (ab/nab - a/na*b/nb) / sqrt(aa/na - a/na*a/na) / sqrt(bb/nb - b/nb*b/nb);
+    }
+    return cor*cor;
+}
+
+bcf1_t *vcfbuf_max_ld(vcfbuf_t *buf, bcf1_t *rec, double *ld)
+{
+    *ld = -1;
+    if ( !buf->rbuf.n ) return NULL;
+
+    int i = buf->rbuf.f;
+
+    // Relying on vcfbuf being properly flushed - all sites in the buffer
+    // must come from the same chromosome
+    if ( buf->vcf[i].rec->rid != rec->rid ) return NULL;
+
+    int imax = 0;
+    double max = 0;
+    for (i=-1; rbuf_next(&buf->rbuf,&i); )
+    {   
+        if ( buf->ld.skip_filter )
+        {
+            if ( buf->vcf[i].rec->d.n_flt > 1 ) continue;   // multiple filters are set
+            if ( buf->vcf[i].rec->d.n_flt==1 && buf->vcf[i].rec->d.flt[0]!=0 ) continue;    // not PASS
+        }
+        double val = _calc_ld(buf, buf->vcf[i].rec, rec);
+        if ( buf->ld.max && buf->ld.max < val ) 
+        {
+            *ld = val;
+            return buf->vcf[i].rec;
+        }
+        if ( val > max )
+        {
+            max  = val;
+            imax = i;
+        }
+    }
+    *ld = max;
+    return buf->vcf[imax].rec;
+}
+
+
diff --git a/vcfbuf.h b/vcfbuf.h
new file mode 100644
index 0000000..5494323
--- /dev/null
+++ b/vcfbuf.h
@@ -0,0 +1,81 @@
+/* The MIT License
+
+   Copyright (c) 2017 Genome Research Ltd.
+
+   Author: Petr Danecek <pd3 at sanger.ac.uk>
+   
+   Permission is hereby granted, free of charge, to any person obtaining a copy
+   of this software and associated documentation files (the "Software"), to deal
+   in the Software without restriction, including without limitation the rights
+   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+   copies of the Software, and to permit persons to whom the Software is
+   furnished to do so, subject to the following conditions:
+   
+   The above copyright notice and this permission notice shall be included in
+   all copies or substantial portions of the Software.
+   
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+   THE SOFTWARE.
+
+ */
+
+/*
+    Buffer VCF records and perform operations on the buffer
+*/
+
+#ifndef __VCFBUF_H__
+#define __VCFBUF_H__
+
+#include <htslib/vcf.h>
+
+typedef struct _vcfbuf_t vcfbuf_t;
+
+// Modes of operation
+typedef enum
+{
+    VCFBUF_LD_MAX,          // vcfbuf_max_ld() stops at the first record that exceeds the threshold
+    VCFBUF_RAND_MISSING,    // randomize rather than ignore missing genotypes
+    VCFBUF_SKIP_FILTER,     // skip sites with FILTER diferent from "PASS" or "."
+    VCFBUF_NSITES,          // leave at max this many sites in the window
+    VCFBUF_AF_TAG,          // use this INFO tag with LD_NSITES
+    VCFBUF_OVERLAP_WIN,     // keep only overlapping variants in the window
+}
+vcfbuf_opt_t;
+
+#define vcfbuf_set_opt(buf,type,key,value) { type tmp = value; vcfbuf_set(buf, key, (void*)&tmp); }
+void vcfbuf_set(vcfbuf_t *buf, vcfbuf_opt_t key, void *value);
+
+
+/*
+ *  vcfbuf_init() - init buffer
+ *  @win:   number of sites (>0) or bp (<0)
+ */
+vcfbuf_t *vcfbuf_init(bcf_hdr_t *hdr, int win);
+void vcfbuf_destroy(vcfbuf_t *buf);
+
+/*
+ *  vcfbuf_push() - push a new site for analysis
+ *  @swap:  if set, do not create a copy, but return a substitute
+ */
+bcf1_t *vcfbuf_push(vcfbuf_t *buf, bcf1_t *rec, int swap);
+
+bcf1_t *vcfbuf_flush(vcfbuf_t *buf, int flush_all);
+
+/*
+ *  vcfbuf_nsites() - return the number of sites in the buffer
+ */
+int vcfbuf_nsites(vcfbuf_t *buf);
+
+/*
+ *  vcfbuf_max_ld() - return a record that has maximum D or first record exceeding the threshold
+ *  @ld:        will be filled with the maximum D found
+ */
+bcf1_t *vcfbuf_max_ld(vcfbuf_t *buf, bcf1_t *rec, double *ld);
+
+#endif
+
diff --git a/vcfconvert.c b/vcfconvert.c
index f650bea..8f596d4 100644
--- a/vcfconvert.c
+++ b/vcfconvert.c
@@ -862,7 +862,7 @@ static void vcf_to_haplegendsample(args_t *args)
     if ( legend_fname && (strlen(legend_fname)<3 || strcasecmp(".gz",legend_fname+strlen(legend_fname)-3)) ) legend_compressed = 0;
     if ( sample_fname && strlen(sample_fname)>3 && strcasecmp(".gz",sample_fname+strlen(sample_fname)-3)==0 ) sample_compressed = 0;
 
-    if (hap_fname) fprintf(stderr, "Haps file: %s\n", hap_fname);
+    if (hap_fname) fprintf(stderr, "Hap file: %s\n", hap_fname);
     if (legend_fname) fprintf(stderr, "Legend file: %s\n", legend_fname);
     if (sample_fname) fprintf(stderr, "Sample file: %s\n", sample_fname);
 
@@ -1010,7 +1010,7 @@ static void vcf_to_hapsample(args_t *args)
     if ( hap_fname && (strlen(hap_fname)<3 || strcasecmp(".gz",hap_fname+strlen(hap_fname)-3)) ) hap_compressed = 0;
     if ( sample_fname && strlen(sample_fname)>3 && strcasecmp(".gz",sample_fname+strlen(sample_fname)-3)==0 ) sample_compressed = 0;
 
-    if (hap_fname) fprintf(stderr, "Haps file: %s\n", hap_fname);
+    if (hap_fname) fprintf(stderr, "Hap file: %s\n", hap_fname);
     if (sample_fname) fprintf(stderr, "Sample file: %s\n", sample_fname);
 
     // write samples file
@@ -1397,8 +1397,8 @@ static void usage(void)
     fprintf(stderr, "   -f, --fasta-ref <file>      reference sequence in fasta format\n");
     fprintf(stderr, "\n");
     fprintf(stderr, "HAP/SAMPLE conversion (output from SHAPEIT):\n");
-    fprintf(stderr, "       --hapsample2vcf <...>   <prefix>|<haps-file>,<sample-file>\n");
-    fprintf(stderr, "       --hapsample <...>       <prefix>|<haps-file>,<sample-file>\n");
+    fprintf(stderr, "       --hapsample2vcf <...>   <prefix>|<hap-file>,<sample-file>\n");
+    fprintf(stderr, "       --hapsample <...>       <prefix>|<hap-file>,<sample-file>\n");
     fprintf(stderr, "       --haploid2diploid       convert haploid genotypes to diploid homozygotes\n");
     fprintf(stderr, "       --sex <file>            output sex column in the sample-file, input format is: Sample\\t[MF]\n");
     fprintf(stderr, "       --vcf-ids               output VCF IDs instead of CHROM:POS_REF_ALT\n");
diff --git a/vcfmerge.c b/vcfmerge.c
index 1aeb739..e9ed5ad 100644
--- a/vcfmerge.c
+++ b/vcfmerge.c
@@ -104,7 +104,6 @@ typedef struct
     int rid;        // current rid
     int beg,end;    // valid ranges in reader's buffer [beg,end). Maintained by maux_reset and gvcf_flush.
     int cur;        // current line or -1 if none
-    int npos;       // number of unprocessed lines at this position
     int mrec;       // allocated size of buf
     maux1_t *rec;   // buffer to keep reader's lines
     bcf1_t **lines; // source buffer: either gvcf or readers' buffer
@@ -758,10 +757,12 @@ void maux_reset(maux_t *ma)
         ma->pos = line->pos;
         break;
     }
-    if ( chr )
+    int new_chr = 0;
+    if ( chr && (!ma->chr || strcmp(ma->chr,chr)) )
     {
         free(ma->chr);
         ma->chr = strdup(chr);
+        new_chr = 1;
     }
     for (i=0; i<ma->n; i++)
     {
@@ -781,6 +782,7 @@ void maux_reset(maux_t *ma)
             ma->buf[i].lines = ma->files->readers[i].buffer;
             if ( ma->gvcf ) ma->gvcf[i].active = 0;     // gvcf block cannot overlap with the next record
         }
+        if ( new_chr && ma->gvcf ) ma->gvcf[i].active = 0;  // make sure to close active gvcf block on new chr
     }
 }
 void maux_debug(maux_t *ma, int ir, int ib)
@@ -1985,6 +1987,31 @@ void debug_maux(args_t *args)
     fprintf(stderr,"\n\n");
 }
 
+void debug_state(args_t *args)
+{
+    maux_t *maux = args->maux;
+    int i,j;
+    for (i=0; i<args->files->nreaders; i++)
+    {
+        fprintf(stderr,"reader %d:\tcur,beg,end=% d,%d,%d", i,maux->buf[i].cur,maux->buf[i].beg,maux->buf[i].end);
+        if ( maux->buf[i].cur >=0 )
+        {
+            bcf_hdr_t *hdr = bcf_sr_get_header(args->files,i);
+            const char *chr = bcf_hdr_id2name(hdr, maux->buf[i].rid);
+            fprintf(stderr,"\t");
+            for (j=maux->buf[i].beg; j<maux->buf[i].end; j++) fprintf(stderr," %s:%d",chr,maux->buf[i].lines[j]->pos+1);
+        }
+        fprintf(stderr,"\n");
+    }
+    for (i=0; i<args->files->nreaders; i++)
+    {
+        fprintf(stderr,"reader %d:\tgvcf_active=%d", i,maux->gvcf[i].active);
+        if ( maux->gvcf[i].active ) fprintf(stderr,"\tpos,end=%d,%d", maux->gvcf[i].line->pos+1,maux->gvcf[i].end+1);
+        fprintf(stderr,"\n");
+    }
+    fprintf(stderr,"\n");
+}
+
 
 /*
    Determine which line should be merged from which reader: go through all
@@ -2294,6 +2321,7 @@ void merge_vcf(args_t *args)
             merge_line(args);
         }
         clean_buffer(args);
+        // debug_state(args);
     }
     if ( args->do_gvcf )
         gvcf_flush(args,1);
diff --git a/vcfnorm.c b/vcfnorm.c
index 3a1706b..86c20ab 100644
--- a/vcfnorm.c
+++ b/vcfnorm.c
@@ -104,6 +104,15 @@ static inline int has_non_acgtn(char *seq, int nseq)
     return 0;
 }
 
+static void seq_to_upper(char *seq, int len)
+{
+    int i;
+    if ( len )
+        for (i=0; i<len; i++) seq[i] = nt_to_upper(seq[i]);
+    else
+        for (i=0; seq[i]; i++) seq[i] = nt_to_upper(seq[i]);
+}
+
 static void fix_ref(args_t *args, bcf1_t *line)
 {
     int reflen = strlen(line->d.allele[0]);
@@ -274,6 +283,7 @@ static int realign(args_t *args, bcf1_t *line)
     int i, nref, reflen = strlen(line->d.allele[0]);
     char *ref = faidx_fetch_seq(args->fai, (char*)args->hdr->id[BCF_DT_CTG][line->rid].key, line->pos, line->pos+reflen-1, &nref);
     if ( !ref ) error("faidx_fetch_seq failed at %s:%d\n", args->hdr->id[BCF_DT_CTG][line->rid].key, line->pos+1);
+    seq_to_upper(ref,0);
     replace_iupac_codes(ref,nref);  // any non-ACGT character in fasta ref is replaced with N
 
     // does VCF REF contain non-standard bases?
@@ -298,7 +308,16 @@ static int realign(args_t *args, bcf1_t *line)
     free(ref);
     ref = NULL;
 
-    if ( line->n_allele == 1 ) return ERR_OK;    // a REF
+    if ( line->n_allele == 1 ) // a REF
+    {
+        if ( line->rlen > 1 )
+        {
+            line->d.allele[0][1] = 0;
+            bcf_update_alleles(args->hdr,line,(const char**)line->d.allele,line->n_allele);
+        }
+        return ERR_OK;
+    }
+    if ( bcf_get_variant_types(line)==VCF_BND ) return ERR_SYMBOLIC;   // breakend, not an error
 
     // make a copy of each allele for trimming
     hts_expand0(kstring_t,line->n_allele,args->ntmp_als,args->tmp_als);
@@ -307,7 +326,6 @@ static int realign(args_t *args, bcf1_t *line)
     {
         if ( line->d.allele[i][0]=='<' ) return ERR_SYMBOLIC;  // symbolic allele
         if ( line->d.allele[i][0]=='*' ) return ERR_SPANNING_DELETION;  // spanning deletion
-        if ( bcf_get_variant_type(line,i)==VCF_BND ) return ERR_SYMBOLIC;   // breakend, not an error
         if ( has_non_acgtn(line->d.allele[i],0) )
         {
             if ( args->check_ref==CHECK_REF_EXIT )
@@ -319,8 +337,9 @@ static int realign(args_t *args, bcf1_t *line)
 
         als[i].l = 0;
         kputs(line->d.allele[i], &als[i]);
+        seq_to_upper(als[i].s,0);
 
-        if ( i>0 && als[i].l==als[0].l && !strcasecmp(als[0].s,als[i].s) ) return ERR_DUP_ALLELE;
+        if ( i>0 && als[i].l==als[0].l && !strcmp(als[0].s,als[i].s) ) return ERR_DUP_ALLELE;
     }
 
     // trim from right
@@ -388,7 +407,7 @@ static int realign(args_t *args, bcf1_t *line)
 
     // Have the alleles changed?
     als[0].s[ als[0].l ] = 0;  // in order for strcmp to work
-    if ( ori_pos==line->pos && !strcasecmp(line->d.allele[0],als[0].s) ) return ERR_OK;
+    if ( ori_pos==line->pos && !strcmp(line->d.allele[0],als[0].s) ) return ERR_OK;
 
     // Create new block of alleles and update
     args->tmp_als_str.l = 0;
diff --git a/vcfplugin.c b/vcfplugin.c
index bfd6ad2..a53ac3c 100644
--- a/vcfplugin.c
+++ b/vcfplugin.c
@@ -22,6 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.  */
 
+#include "config.h"
 #include <stdio.h>
 #include <strings.h>
 #include <unistd.h>
@@ -42,6 +43,8 @@ THE SOFTWARE.  */
 #include "vcmp.h"
 #include "filter.h"
 
+#ifdef ENABLE_BCF_PLUGINS
+
 typedef struct _plugin_t plugin_t;
 
 /**
@@ -209,7 +212,7 @@ static void *dlopen_plugin(args_t *args, const char *fname)
         int i;
         for (i=0; i<args->nplugin_paths; i++)
         {
-            tmp = msprintf("%s/%s.so", args->plugin_paths[i],fname);
+	    tmp = msprintf("%s/%s%s", args->plugin_paths[i], fname, PLUGIN_EXT);
             handle = dlopen(tmp, RTLD_NOW); // valgrind complains about unfreed memory, not our problem though
             if ( args->verbose > 1 )
             {
@@ -362,6 +365,7 @@ static int list_plugins(args_t *args)
     init_plugin_paths(args);
 
     kstring_t str = {0,0,0};
+    int plugin_ext_len = strlen(PLUGIN_EXT);
     int i;
     for (i=0; i<args->nplugin_paths; i++)
     {
@@ -372,7 +376,7 @@ static int list_plugins(args_t *args)
         while ( (ep=readdir(dp)) )
         {
             int len = strlen(ep->d_name);
-            if ( strcasecmp(".so",ep->d_name+len-3) ) continue;
+            if ( strcasecmp(PLUGIN_EXT,ep->d_name+len-plugin_ext_len) ) continue;
             str.l = 0;
             ksprintf(&str,"%s/%s", args->plugin_paths[i],ep->d_name);
             hts_expand(plugin_t, nplugins+1, mplugins, plugins);
@@ -641,3 +645,13 @@ int main_plugin(int argc, char *argv[])
     return 0;
 }
 
+#else /* ENABLE_BCF_PLUGINS */
+
+int main_plugin(int argc, char *argv[])
+{
+    fprintf(stderr, "bcftools plugins are disabled.  To use them, you will need to rebuild\n"
+	    "bcftools from the source distribution with plugins enabled.\n");
+    return 1;
+}
+
+#endif /* ENABLE_BCF_PLUGINS */
diff --git a/vcfroh.c b/vcfroh.c
index 9437d7e..8c1d055 100644
--- a/vcfroh.c
+++ b/vcfroh.c
@@ -342,7 +342,7 @@ static void destroy_data(args_t *args)
     free(args->samples);
 }
 
-static int load_genmap(args_t *args, bcf1_t *line)
+static int load_genmap(args_t *args, const char *chr)
 {
     if ( !args->genmap_fname ) { args->ngenmap = 0; return 0; }
 
@@ -351,7 +351,7 @@ static int load_genmap(args_t *args, bcf1_t *line)
     if ( fname )
     {
         kputsn(args->genmap_fname, fname - args->genmap_fname, &str);
-        kputs(bcf_seqname(args->hdr,line), &str);
+        kputs(chr, &str);
         kputs(fname+7,&str);
         fname = str.s;
     }
@@ -488,7 +488,7 @@ static void flush_viterbi(args_t *args, int ismpl)
         hmm_restore(args->hmm, smpl->snapshot); 
         int end = (args->nbuf_max && smpl->nsites >= args->nbuf_max && smpl->nsites > args->nbuf_olap) ? smpl->nsites - args->nbuf_olap : smpl->nsites;
         if ( end < smpl->nsites )
-            smpl->snapshot = hmm_snapshot(args->hmm, smpl->snapshot, smpl->nsites - args->nbuf_olap - 1);
+            smpl->snapshot = hmm_snapshot(args->hmm, smpl->snapshot, smpl->sites[smpl->nsites - args->nbuf_olap - 1]);
 
         args->igenmap = smpl->igenmap;
         hmm_run_viterbi(args->hmm, smpl->nsites, smpl->eprob, smpl->sites);
@@ -631,7 +631,6 @@ static void flush_viterbi(args_t *args, int ismpl)
     }
 }
 
-
 int read_AF(bcf_sr_regions_t *tgt, bcf1_t *line, double *alt_freq)
 {
     if ( tgt->nals != line->n_allele ) return -1;    // number of alleles does not match
@@ -998,20 +997,25 @@ static void vcfroh(args_t *args, bcf1_t *line)
     {
         args->prev_rid = line->rid;
         args->prev_pos = line->pos;
-        skip_rid = load_genmap(args, line);
+        skip_rid = load_genmap(args, bcf_seqname(args->hdr,line));
     }
 
     // New chromosome?
     if ( args->prev_rid!=line->rid )
     {
-        skip_rid = load_genmap(args, line);
         if ( !args->vi_training )
         {
-            for (i=0; i<args->roh_smpl->n; i++) flush_viterbi(args, i);
+            for (i=0; i<args->roh_smpl->n; i++)
+            {
+                flush_viterbi(args, i);
+                hmm_reset(args->hmm, args->smpl[i].snapshot);
+            }
         }
         args->prev_rid = line->rid;
         args->prev_pos = line->pos;
+        skip_rid = load_genmap(args, bcf_seqname(args->hdr,line));
     }
+    else if ( args->prev_pos == line->pos ) return;     // skip duplicate positions
 
     if ( skip_rid )
     {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/bcftools.git



More information about the debian-med-commit mailing list