[med-svn] [python-pyvcf] 01/03: Imported Upstream version 0.6.7

Andreas Tille tille at debian.org
Wed Oct 14 09:46:29 UTC 2015


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

tille pushed a commit to branch master
in repository python-pyvcf.

commit ab7d8858037496398c13225fbe6e69bbbae44771
Author: Andreas Tille <tille at debian.org>
Date:   Wed Oct 14 11:33:25 2015 +0200

    Imported Upstream version 0.6.7
---
 MANIFEST.in                                   |    1 +
 PKG-INFO                                      |  190 +++++
 README.rst                                    |  172 ++++
 scripts/vcf_filter.py                         |  168 ++++
 scripts/vcf_melt                              |   48 ++
 setup.cfg                                     |    5 +
 setup.py                                      |   86 ++
 vcf/__init__.py                               |  180 +++++
 vcf/cparse.pyx                                |   81 ++
 vcf/filters.py                                |  209 +++++
 vcf/model.py                                  |  588 ++++++++++++++
 vcf/parser.py                                 |  750 ++++++++++++++++++
 vcf/test/1kg.sites.vcf                        |  200 +++++
 vcf/test/1kg.vcf.gz                           |  Bin 0 -> 825355 bytes
 vcf/test/README.md                            |    3 +
 vcf/test/__init__.py                          |    0
 vcf/test/bcftools.vcf                         |  779 ++++++++++++++++++
 vcf/test/contig_idonly.vcf                    |    5 +
 vcf/test/example-4.0.vcf                      |   23 +
 vcf/test/example-4.1-bnd.vcf                  |   34 +
 vcf/test/example-4.1-info-multiple-values.vcf |    7 +
 vcf/test/example-4.1-ploidy.vcf               |   21 +
 vcf/test/example-4.1-sv.vcf                   |   35 +
 vcf/test/example-4.1.vcf                      |   24 +
 vcf/test/example-4.2.vcf                      |   56 ++
 vcf/test/freebayes.vcf                        |  159 ++++
 vcf/test/gatk.vcf                             |  156 ++++
 vcf/test/gatk_26_meta.vcf                     |    4 +
 vcf/test/gonl.chr20.release4.gtc.vcf          |  120 +++
 vcf/test/info-type-character.vcf              |    8 +
 vcf/test/issue-140-file1.vcf                  |   35 +
 vcf/test/issue-140-file2.vcf                  |   34 +
 vcf/test/issue-140-file3.vcf                  |   25 +
 vcf/test/issue-16.vcf                         |   21 +
 vcf/test/issue-201.vcf.gz                     |  Bin 0 -> 2639 bytes
 vcf/test/issue-201.vcf.gz.tbi                 |  Bin 0 -> 129 bytes
 vcf/test/issue_49.vcf                         |   34 +
 vcf/test/metadata-whitespace.vcf              |   56 ++
 vcf/test/mixed-filtering.vcf                  |   24 +
 vcf/test/null_genotype_mono.vcf               |  119 +++
 vcf/test/parse-meta-line.vcf                  |    6 +
 vcf/test/prof.py                              |   33 +
 vcf/test/samples-space.vcf                    |   10 +
 vcf/test/samtools.vcf                         |   34 +
 vcf/test/string_as_flag.vcf                   |    8 +
 vcf/test/tb.vcf.gz                            |  Bin 0 -> 783 bytes
 vcf/test/tb.vcf.gz.tbi                        |  Bin 0 -> 131 bytes
 vcf/test/test_vcf.py                          | 1039 +++++++++++++++++++++++++
 vcf/test/uncalled_genotypes.vcf               |    7 +
 vcf/test/walk_left.vcf                        |   24 +
 vcf/test/walk_refcall.vcf                     |   22 +
 vcf/utils.py                                  |   86 ++
 52 files changed, 5729 insertions(+)

diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..44f678a
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1 @@
+recursive-include vcf *.pyx
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..5ce6750
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,190 @@
+Metadata-Version: 1.1
+Name: PyVCF
+Version: 0.6.7
+Summary: Variant Call Format (VCF) parser for Python
+Home-page: https://github.com/jamescasbon/PyVCF
+Author: James Casbon and @jdoughertyii
+Author-email: casbon at gmail.com
+License: UNKNOWN
+Description: A VCFv4.0 and 4.1 parser for Python.
+        
+        Online version of PyVCF documentation is available at http://pyvcf.rtfd.org/
+        
+        The intent of this module is to mimic the ``csv`` module in the Python stdlib,
+        as opposed to more flexible serialization formats like JSON or YAML.  ``vcf``
+        will attempt to parse the content of each record based on the data types
+        specified in the meta-information lines --  specifically the ##INFO and
+        ##FORMAT lines.  If these lines are missing or incomplete, it will check
+        against the reserved types mentioned in the spec.  Failing that, it will just
+        return strings.
+        
+        There main interface is the class: ``Reader``.  It takes a file-like
+        object and acts as a reader::
+        
+            >>> import vcf
+            >>> vcf_reader = vcf.Reader(open('vcf/test/example-4.0.vcf', 'r'))
+            >>> for record in vcf_reader:
+            ...     print record
+            Record(CHROM=20, POS=14370, REF=G, ALT=[A])
+            Record(CHROM=20, POS=17330, REF=T, ALT=[A])
+            Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+            Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
+            Record(CHROM=20, POS=1234567, REF=GTCT, ALT=[G, GTACT])
+        
+        
+        This produces a great deal of information, but it is conveniently accessed.
+        The attributes of a Record are the 8 fixed fields from the VCF spec::
+        
+            * ``Record.CHROM``
+            * ``Record.POS``
+            * ``Record.ID``
+            * ``Record.REF``
+            * ``Record.ALT``
+            * ``Record.QUAL``
+            * ``Record.FILTER``
+            * ``Record.INFO``
+        
+        plus attributes to handle genotype information:
+        
+            * ``Record.FORMAT``
+            * ``Record.samples``
+            * ``Record.genotype``
+        
+        ``samples`` and ``genotype``, not being the title of any column, are left lowercase.  The format
+        of the fixed fields is from the spec.  Comma-separated lists in the VCF are
+        converted to lists.  In particular, one-entry VCF lists are converted to
+        one-entry Python lists (see, e.g., ``Record.ALT``).  Semicolon-delimited lists
+        of key=value pairs are converted to Python dictionaries, with flags being given
+        a ``True`` value. Integers and floats are handled exactly as you'd expect::
+        
+            >>> vcf_reader = vcf.Reader(open('vcf/test/example-4.0.vcf', 'r'))
+            >>> record = vcf_reader.next()
+            >>> print record.POS
+            14370
+            >>> print record.ALT
+            [A]
+            >>> print record.INFO['AF']
+            [0.5]
+        
+        There are a number of convienience methods and properties for each ``Record`` allowing you to
+        examine properties of interest::
+        
+            >>> print record.num_called, record.call_rate, record.num_unknown
+            3 1.0 0
+            >>> print record.num_hom_ref, record.num_het, record.num_hom_alt
+            1 1 1
+            >>> print record.nucl_diversity, record.aaf, record.heterozygosity
+            0.6 [0.5] 0.5
+            >>> print record.get_hets()
+            [Call(sample=NA00002, CallData(GT=1|0, GQ=48, DP=8, HQ=[51, 51]))]
+            >>> print record.is_snp, record.is_indel, record.is_transition, record.is_deletion
+            True False True False
+            >>> print record.var_type, record.var_subtype
+            snp ts
+            >>> print record.is_monomorphic
+            False
+        
+        ``record.FORMAT`` will be a string specifying the format of the genotype
+        fields.  In case the FORMAT column does not exist, ``record.FORMAT`` is
+        ``None``.  Finally, ``record.samples`` is a list of dictionaries containing the
+        parsed sample column and ``record.genotype`` is a way of looking up genotypes
+        by sample name::
+        
+            >>> record = vcf_reader.next()
+            >>> for sample in record.samples:
+            ...     print sample['GT']
+            0|0
+            0|1
+            0/0
+            >>> print record.genotype('NA00001')['GT']
+            0|0
+        
+        The genotypes are represented by ``Call`` objects, which have three attributes: the
+        corresponding Record ``site``, the sample name in ``sample`` and a dictionary of
+        call data in ``data``::
+        
+             >>> call = record.genotype('NA00001')
+             >>> print call.site
+             Record(CHROM=20, POS=17330, REF=T, ALT=[A])
+             >>> print call.sample
+             NA00001
+             >>> print call.data
+             CallData(GT=0|0, GQ=49, DP=3, HQ=[58, 50])
+        
+        Please note that as of release 0.4.0, attributes known to have single values (such as
+        ``DP`` and ``GQ`` above) are returned as values.  Other attributes are returned
+        as lists (such as ``HQ`` above).
+        
+        There are also a number of methods::
+        
+            >>> print call.called, call.gt_type, call.gt_bases, call.phased
+            True 0 T|T True
+        
+        Metadata regarding the VCF file itself can be investigated through the
+        following attributes:
+        
+            * ``Reader.metadata``
+            * ``Reader.infos``
+            * ``Reader.filters``
+            * ``Reader.formats``
+            * ``Reader.samples``
+        
+        For example::
+        
+            >>> vcf_reader.metadata['fileDate']
+            '20090805'
+            >>> vcf_reader.samples
+            ['NA00001', 'NA00002', 'NA00003']
+            >>> vcf_reader.filters
+            OrderedDict([('q10', Filter(id='q10', desc='Quality below 10')), ('s50', Filter(id='s50', desc='Less than 50% of samples have data'))])
+            >>> vcf_reader.infos['AA'].desc
+            'Ancestral Allele'
+        
+        ALT records are actually classes, so that you can interrogate them::
+        
+            >>> reader = vcf.Reader(open('vcf/test/example-4.1-bnd.vcf'))
+            >>> _ = reader.next(); row = reader.next()
+            >>> print row
+            Record(CHROM=1, POS=2, REF=T, ALT=[T[2:3[])
+            >>> bnd = row.ALT[0]
+            >>> print bnd.withinMainAssembly, bnd.orientation, bnd.remoteOrientation, bnd.connectingSequence
+            True False True T
+        
+        Random access is supported for files with tabix indexes.  Simply call fetch for the
+        region you are interested in::
+        
+            >>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
+            >>> for record in vcf_reader.fetch('20', 1110696, 1230237):  # doctest: +SKIP
+            ...     print record
+            Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+            Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
+        
+        Or extract a single row::
+        
+            >>> print vcf_reader.fetch('20', 1110696)  # doctest: +SKIP
+            Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+        
+        
+        The ``Writer`` class provides a way of writing a VCF file.  Currently, you must specify a
+        template ``Reader`` which provides the metadata::
+        
+            >>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
+            >>> vcf_writer = vcf.Writer(open('/dev/null', 'w'), vcf_reader)
+            >>> for record in vcf_reader:
+            ...     vcf_writer.write_record(record)
+        
+        
+        An extensible script is available to filter vcf files in vcf_filter.py.  VCF filters
+        declared by other packages will be available for use in this script.  Please
+        see :doc:`FILTERS` for full description.
+        
+        
+Keywords: bioinformatics
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Science/Research
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Topic :: Scientific/Engineering
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..a60c0c8
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,172 @@
+A VCFv4.0 and 4.1 parser for Python.
+
+Online version of PyVCF documentation is available at http://pyvcf.rtfd.org/
+
+The intent of this module is to mimic the ``csv`` module in the Python stdlib,
+as opposed to more flexible serialization formats like JSON or YAML.  ``vcf``
+will attempt to parse the content of each record based on the data types
+specified in the meta-information lines --  specifically the ##INFO and
+##FORMAT lines.  If these lines are missing or incomplete, it will check
+against the reserved types mentioned in the spec.  Failing that, it will just
+return strings.
+
+There main interface is the class: ``Reader``.  It takes a file-like
+object and acts as a reader::
+
+    >>> import vcf
+    >>> vcf_reader = vcf.Reader(open('vcf/test/example-4.0.vcf', 'r'))
+    >>> for record in vcf_reader:
+    ...     print record
+    Record(CHROM=20, POS=14370, REF=G, ALT=[A])
+    Record(CHROM=20, POS=17330, REF=T, ALT=[A])
+    Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+    Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
+    Record(CHROM=20, POS=1234567, REF=GTCT, ALT=[G, GTACT])
+
+
+This produces a great deal of information, but it is conveniently accessed.
+The attributes of a Record are the 8 fixed fields from the VCF spec::
+
+    * ``Record.CHROM``
+    * ``Record.POS``
+    * ``Record.ID``
+    * ``Record.REF``
+    * ``Record.ALT``
+    * ``Record.QUAL``
+    * ``Record.FILTER``
+    * ``Record.INFO``
+
+plus attributes to handle genotype information:
+
+    * ``Record.FORMAT``
+    * ``Record.samples``
+    * ``Record.genotype``
+
+``samples`` and ``genotype``, not being the title of any column, are left lowercase.  The format
+of the fixed fields is from the spec.  Comma-separated lists in the VCF are
+converted to lists.  In particular, one-entry VCF lists are converted to
+one-entry Python lists (see, e.g., ``Record.ALT``).  Semicolon-delimited lists
+of key=value pairs are converted to Python dictionaries, with flags being given
+a ``True`` value. Integers and floats are handled exactly as you'd expect::
+
+    >>> vcf_reader = vcf.Reader(open('vcf/test/example-4.0.vcf', 'r'))
+    >>> record = vcf_reader.next()
+    >>> print record.POS
+    14370
+    >>> print record.ALT
+    [A]
+    >>> print record.INFO['AF']
+    [0.5]
+
+There are a number of convienience methods and properties for each ``Record`` allowing you to
+examine properties of interest::
+
+    >>> print record.num_called, record.call_rate, record.num_unknown
+    3 1.0 0
+    >>> print record.num_hom_ref, record.num_het, record.num_hom_alt
+    1 1 1
+    >>> print record.nucl_diversity, record.aaf, record.heterozygosity
+    0.6 [0.5] 0.5
+    >>> print record.get_hets()
+    [Call(sample=NA00002, CallData(GT=1|0, GQ=48, DP=8, HQ=[51, 51]))]
+    >>> print record.is_snp, record.is_indel, record.is_transition, record.is_deletion
+    True False True False
+    >>> print record.var_type, record.var_subtype
+    snp ts
+    >>> print record.is_monomorphic
+    False
+
+``record.FORMAT`` will be a string specifying the format of the genotype
+fields.  In case the FORMAT column does not exist, ``record.FORMAT`` is
+``None``.  Finally, ``record.samples`` is a list of dictionaries containing the
+parsed sample column and ``record.genotype`` is a way of looking up genotypes
+by sample name::
+
+    >>> record = vcf_reader.next()
+    >>> for sample in record.samples:
+    ...     print sample['GT']
+    0|0
+    0|1
+    0/0
+    >>> print record.genotype('NA00001')['GT']
+    0|0
+
+The genotypes are represented by ``Call`` objects, which have three attributes: the
+corresponding Record ``site``, the sample name in ``sample`` and a dictionary of
+call data in ``data``::
+
+     >>> call = record.genotype('NA00001')
+     >>> print call.site
+     Record(CHROM=20, POS=17330, REF=T, ALT=[A])
+     >>> print call.sample
+     NA00001
+     >>> print call.data
+     CallData(GT=0|0, GQ=49, DP=3, HQ=[58, 50])
+
+Please note that as of release 0.4.0, attributes known to have single values (such as
+``DP`` and ``GQ`` above) are returned as values.  Other attributes are returned
+as lists (such as ``HQ`` above).
+
+There are also a number of methods::
+
+    >>> print call.called, call.gt_type, call.gt_bases, call.phased
+    True 0 T|T True
+
+Metadata regarding the VCF file itself can be investigated through the
+following attributes:
+
+    * ``Reader.metadata``
+    * ``Reader.infos``
+    * ``Reader.filters``
+    * ``Reader.formats``
+    * ``Reader.samples``
+
+For example::
+
+    >>> vcf_reader.metadata['fileDate']
+    '20090805'
+    >>> vcf_reader.samples
+    ['NA00001', 'NA00002', 'NA00003']
+    >>> vcf_reader.filters
+    OrderedDict([('q10', Filter(id='q10', desc='Quality below 10')), ('s50', Filter(id='s50', desc='Less than 50% of samples have data'))])
+    >>> vcf_reader.infos['AA'].desc
+    'Ancestral Allele'
+
+ALT records are actually classes, so that you can interrogate them::
+
+    >>> reader = vcf.Reader(open('vcf/test/example-4.1-bnd.vcf'))
+    >>> _ = reader.next(); row = reader.next()
+    >>> print row
+    Record(CHROM=1, POS=2, REF=T, ALT=[T[2:3[])
+    >>> bnd = row.ALT[0]
+    >>> print bnd.withinMainAssembly, bnd.orientation, bnd.remoteOrientation, bnd.connectingSequence
+    True False True T
+
+Random access is supported for files with tabix indexes.  Simply call fetch for the
+region you are interested in::
+
+    >>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
+    >>> for record in vcf_reader.fetch('20', 1110696, 1230237):  # doctest: +SKIP
+    ...     print record
+    Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+    Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
+
+Or extract a single row::
+
+    >>> print vcf_reader.fetch('20', 1110696)  # doctest: +SKIP
+    Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+
+
+The ``Writer`` class provides a way of writing a VCF file.  Currently, you must specify a
+template ``Reader`` which provides the metadata::
+
+    >>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
+    >>> vcf_writer = vcf.Writer(open('/dev/null', 'w'), vcf_reader)
+    >>> for record in vcf_reader:
+    ...     vcf_writer.write_record(record)
+
+
+An extensible script is available to filter vcf files in vcf_filter.py.  VCF filters
+declared by other packages will be available for use in this script.  Please
+see :doc:`FILTERS` for full description.
+
diff --git a/scripts/vcf_filter.py b/scripts/vcf_filter.py
new file mode 100644
index 0000000..fd32b39
--- /dev/null
+++ b/scripts/vcf_filter.py
@@ -0,0 +1,168 @@
+#!/usr/bin/env python
+import sys
+import argparse
+import pkg_resources
+
+import vcf
+from vcf.parser import _Filter
+
+def create_filt_parser(name):
+    parser = argparse.ArgumentParser(description='Parser for %s' % name,
+            add_help=False
+            )
+    parser.add_argument('rest', nargs=argparse.REMAINDER, help=argparse.SUPPRESS)
+
+    return parser
+
+def create_core_parser():
+    # we have to use custom formatted usage, because of the
+    # multi-stage argument parsing (otherwise the filter arguments
+    # are grouped together with the other optionals)
+    parser = argparse.ArgumentParser(description='Filter a VCF file',
+            add_help=False,
+            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+            usage="""%(prog)s [-h] [--no-short-circuit] [--no-filtered]
+              [--output OUTPUT] [--local-script LOCAL_SCRIPT]
+              input filter [filter_args] [filter [filter_args]] ...
+            """
+            )
+    parser.add_argument('-h', '--help', action='store_true',
+            help='Show this help message and exit.')
+    parser.add_argument('input', metavar='input', type=argparse.FileType('rb'), nargs='?', default=None,
+            help='File to process (use - for STDIN)')
+#    parser.add_argument('filters', metavar='filter', type=str, nargs='*', default=None,
+#            help='Filters to use')
+    parser.add_argument('--no-short-circuit', action='store_true',
+            help='Do not stop filter processing on a site if any filter is triggered')
+    parser.add_argument('--output', action='store', default=sys.stdout,
+            help='Filename to output [STDOUT]')
+    parser.add_argument('--no-filtered', action='store_true',
+            help='Output only sites passing the filters')
+    parser.add_argument('--local-script', action='store', default=None,
+            help='Python file in current working directory with the filter classes')
+    parser.add_argument('rest', nargs=argparse.REMAINDER, help=argparse.SUPPRESS)
+
+    return parser
+
+# argument parsing strategy
+# loading a script given at the command line poses a difficulty
+# for using the argparse in a simple way -- the command line arguments
+# are not completely known the first time command line is parsed
+# requirements:
+#  - display all filters with options grouped by the filters in help screen
+#  - check if only arguments for currently used filters are given
+#  - to increase legibility when using more filters, arguments should
+#    follow the filter name
+#  - it is good to specify the filters explicitly by name,
+#    because the order of filtering can matter
+# solution
+# - change the command syntax to
+#   vcf_filter.py --core-options input filter1 --filter1-args filter2 filter3
+# - parse the core program options with parse_known_args
+# - use add_argument_group for filters (subparsers won't work, they require
+#   the second command in argv[1])
+# - create all-filters parser when displaying the help
+# - parse the arguments incrementally on argparse.REMAINDER of the previous
+
+    # TODO: allow filter specification by short name
+    # TODO: flag that writes filter output into INFO column
+    # TODO: argument use implies filter use
+    # TODO: parallelize
+    # TODO: prevent plugins raising an exception from crashing the script
+
+def main():
+    # dynamically build the list of available filters
+    filters = {}
+
+    # parse command line args
+    # (mainly because of local_script)
+    parser = create_core_parser()
+    (args, unknown_args) = parser.parse_known_args()
+
+    # add filter to dictionary, extend help message
+    # with help/arguments of each filter
+    def addfilt(filt):
+        filters[filt.name] = filt
+        arg_group = parser.add_argument_group(filt.name, filt.__doc__)
+        filt.customize_parser(arg_group)
+
+    # look for global extensions
+    for p in pkg_resources.iter_entry_points('vcf.filters'):
+        filt = p.load()
+        addfilt(filt)
+
+    # add all classes from local script, if present
+    if args.local_script != None:
+        import inspect
+        import os
+        sys.path.insert(0, os.getcwd())
+        module_name = args.local_script.replace('.py', '')
+        mod = __import__(module_name)
+        classes = inspect.getmembers(mod, inspect.isclass)
+        for name, cls in classes:
+            addfilt(cls)
+
+    # go through the filters on the command line
+    # one by one, trying to consume only the declared arguments
+    used_filters = []
+    while len(args.rest):
+        filter_name = args.rest.pop(0)
+        if filter_name not in filters:
+            sys.exit("%s is not a known filter (%s)" % (filter_name, str(filters.keys())))
+
+        # create a parser only for arguments of current filter
+        filt_parser = create_filt_parser(filter_name)
+        filters[filter_name].customize_parser(filt_parser)
+        (known_filt_args, unknown_filt_args) = filt_parser.parse_known_args(args.rest)
+        if len(unknown_filt_args):
+            sys.exit("%s has no arguments like %s" % (filter_name, unknown_filt_args))
+
+        used_filters.append((filter_name, known_filt_args))
+        args.rest = known_filt_args.rest
+
+    # print help using the 'help' parser, so it includes
+    # all possible filters and arguments
+    if args.help or len(used_filters) == 0 or args.input == None:
+        parser.print_help()
+        parser.exit()
+
+    inp = vcf.Reader(args.input)
+
+    # build filter chain
+    chain = []
+    for (name, filter_args) in used_filters:
+        f = filters[name](filter_args)
+        chain.append(f)
+        # add a filter record to the output
+        short_doc = f.__doc__ or ''
+        short_doc = short_doc.split('\n')[0].lstrip()
+        inp.filters[f.filter_name()] = _Filter(f.filter_name(), short_doc)
+
+    # output must be created after all the filter records have been added
+    output = vcf.Writer(args.output, inp)
+
+    # apply filters
+    short_circuit = not args.no_short_circuit
+    drop_filtered = args.no_filtered
+
+    for record in inp:
+        output_record = True
+        for filt in chain:
+            result = filt(record)
+            if result == None: continue
+
+            # save some work by skipping the rest of the code
+            if drop_filtered:
+                output_record = False
+                break
+
+            record.add_filter(filt.filter_name())
+            if short_circuit: break
+
+        if output_record:
+            # use PASS only if other filter names appear in the FILTER column
+            #FIXME: is this good idea?
+            if record.FILTER is None and not drop_filtered: record.FILTER = 'PASS'
+            output.write_record(record)
+
+if __name__ == '__main__': main()
diff --git a/scripts/vcf_melt b/scripts/vcf_melt
new file mode 100644
index 0000000..0eddba6
--- /dev/null
+++ b/scripts/vcf_melt
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+""" Melt a VCF file into a tab delimited set of calls, one per line
+
+VCF files have all the calls from different samples on one line.  This
+script reads vcf on stdin and writes all calls to stdout in tab delimited
+format with one call in one sample per line.  This makes it easy to find
+a given sample's genotype with, say, grep.
+"""
+
+import sys
+import csv
+import vcf
+
+out = csv.writer(sys.stdout, delimiter='\t')
+if len(sys.argv) > 1:
+    inp = file(sys.argv[1])
+else:
+    inp = sys.stdin
+reader = vcf.VCFReader(inp)
+
+formats = reader.formats.keys()
+infos = reader.infos.keys()
+
+header = ["SAMPLE"] + formats + ['FILTER', 'CHROM', 'POS', 'REF', 'ALT', 'ID'] \
+        + ['info.' + x for x in infos]
+
+
+out.writerow(header)
+
+
+def flatten(x):
+    if type(x) == type([]):
+        x = ','.join(map(str, x))
+    return x
+
+for record in reader:
+    info_row = [flatten(record.INFO.get(x, None)) for x in infos]
+    fixed = [record.CHROM, record.POS, record.REF, record.ALT, record.ID]
+
+    for sample in record.samples:
+        row = [sample.sample]
+        # Format fields not present will simply end up "blank"
+        # in the output
+        row += [flatten(getattr(sample.data, x, None)) for x in formats]
+        row += [record.FILTER or '.']
+        row += fixed
+        row += info_row
+        out.writerow(row)
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..861a9f5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build = 
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..1ea709c
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,86 @@
+from setuptools import setup
+from distutils.core import setup
+from distutils.extension import Extension
+
+try:
+    from Cython.Distutils import build_ext
+    CYTHON = True
+except:
+    CYTHON = False
+
+requires = []
+
+# python 2.6 does not have argparse
+try:
+    import argparse
+except ImportError:
+    requires.append('argparse')
+
+import collections
+try:
+    collections.Counter
+except AttributeError:
+    requires.append('counter')
+try:
+    collections.OrderedDict
+except AttributeError:
+    requires.append('ordereddict')
+
+# get the version without an import
+VERSION = "Undefined"
+DOC = ""
+inside_doc = False
+for line in open('vcf/__init__.py'):
+    if "'''" in line:
+        inside_doc = not inside_doc
+    if inside_doc:
+        DOC += line.replace("'''", "")
+
+    if (line.startswith('VERSION')):
+        exec(line.strip())
+
+extras = {}
+if CYTHON:
+    extras['cmdclass'] = {'build_ext': build_ext}
+    extras['ext_modules'] = [Extension("vcf.cparse", ["vcf/cparse.pyx"])]
+
+setup(
+    name='PyVCF',
+    packages=['vcf', 'vcf.test'],
+    scripts=['scripts/vcf_melt', 'scripts/vcf_filter.py'],
+    author='James Casbon and @jdoughertyii',
+    author_email='casbon at gmail.com',
+    description='Variant Call Format (VCF) parser for Python',
+    long_description=DOC,
+    test_suite='vcf.test.test_vcf.suite',
+    install_requires=['distribute'],
+    requires=requires,
+    entry_points = {
+        'vcf.filters': [
+            'site_quality = vcf.filters:SiteQuality',
+            'vgq = vcf.filters:VariantGenotypeQuality',
+            'eb = vcf.filters:ErrorBiasFilter',
+            'dps = vcf.filters:DepthPerSample',
+            'avg-dps = vcf.filters:AvgDepthPerSample',
+            'snp-only = vcf.filters:SnpOnly',
+        ]
+    },
+    url='https://github.com/jamescasbon/PyVCF',
+    version=VERSION,
+    classifiers = [
+        'Development Status :: 4 - Beta',
+        'Intended Audience :: Developers',
+        'Intended Audience :: Science/Research',
+        'Operating System :: OS Independent',
+        'Programming Language :: Python',
+        'Programming Language :: Python :: 3',
+        'Topic :: Scientific/Engineering',
+      ],
+    keywords='bioinformatics',
+    use_2to3=True,
+    include_package_data=True,
+    package_data = {
+        '': ['*.vcf', '*.gz', '*.tbi'],
+        },
+    **extras
+)
diff --git a/vcf/__init__.py b/vcf/__init__.py
new file mode 100644
index 0000000..875e2d4
--- /dev/null
+++ b/vcf/__init__.py
@@ -0,0 +1,180 @@
+#!/usr/bin/env python
+'''A VCFv4.0 and 4.1 parser for Python.
+
+Online version of PyVCF documentation is available at http://pyvcf.rtfd.org/
+
+The intent of this module is to mimic the ``csv`` module in the Python stdlib,
+as opposed to more flexible serialization formats like JSON or YAML.  ``vcf``
+will attempt to parse the content of each record based on the data types
+specified in the meta-information lines --  specifically the ##INFO and
+##FORMAT lines.  If these lines are missing or incomplete, it will check
+against the reserved types mentioned in the spec.  Failing that, it will just
+return strings.
+
+There main interface is the class: ``Reader``.  It takes a file-like
+object and acts as a reader::
+
+    >>> import vcf
+    >>> vcf_reader = vcf.Reader(open('vcf/test/example-4.0.vcf', 'r'))
+    >>> for record in vcf_reader:
+    ...     print record
+    Record(CHROM=20, POS=14370, REF=G, ALT=[A])
+    Record(CHROM=20, POS=17330, REF=T, ALT=[A])
+    Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+    Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
+    Record(CHROM=20, POS=1234567, REF=GTCT, ALT=[G, GTACT])
+
+
+This produces a great deal of information, but it is conveniently accessed.
+The attributes of a Record are the 8 fixed fields from the VCF spec::
+
+    * ``Record.CHROM``
+    * ``Record.POS``
+    * ``Record.ID``
+    * ``Record.REF``
+    * ``Record.ALT``
+    * ``Record.QUAL``
+    * ``Record.FILTER``
+    * ``Record.INFO``
+
+plus attributes to handle genotype information:
+
+    * ``Record.FORMAT``
+    * ``Record.samples``
+    * ``Record.genotype``
+
+``samples`` and ``genotype``, not being the title of any column, are left lowercase.  The format
+of the fixed fields is from the spec.  Comma-separated lists in the VCF are
+converted to lists.  In particular, one-entry VCF lists are converted to
+one-entry Python lists (see, e.g., ``Record.ALT``).  Semicolon-delimited lists
+of key=value pairs are converted to Python dictionaries, with flags being given
+a ``True`` value. Integers and floats are handled exactly as you'd expect::
+
+    >>> vcf_reader = vcf.Reader(open('vcf/test/example-4.0.vcf', 'r'))
+    >>> record = vcf_reader.next()
+    >>> print record.POS
+    14370
+    >>> print record.ALT
+    [A]
+    >>> print record.INFO['AF']
+    [0.5]
+
+There are a number of convienience methods and properties for each ``Record`` allowing you to
+examine properties of interest::
+
+    >>> print record.num_called, record.call_rate, record.num_unknown
+    3 1.0 0
+    >>> print record.num_hom_ref, record.num_het, record.num_hom_alt
+    1 1 1
+    >>> print record.nucl_diversity, record.aaf, record.heterozygosity
+    0.6 [0.5] 0.5
+    >>> print record.get_hets()
+    [Call(sample=NA00002, CallData(GT=1|0, GQ=48, DP=8, HQ=[51, 51]))]
+    >>> print record.is_snp, record.is_indel, record.is_transition, record.is_deletion
+    True False True False
+    >>> print record.var_type, record.var_subtype
+    snp ts
+    >>> print record.is_monomorphic
+    False
+
+``record.FORMAT`` will be a string specifying the format of the genotype
+fields.  In case the FORMAT column does not exist, ``record.FORMAT`` is
+``None``.  Finally, ``record.samples`` is a list of dictionaries containing the
+parsed sample column and ``record.genotype`` is a way of looking up genotypes
+by sample name::
+
+    >>> record = vcf_reader.next()
+    >>> for sample in record.samples:
+    ...     print sample['GT']
+    0|0
+    0|1
+    0/0
+    >>> print record.genotype('NA00001')['GT']
+    0|0
+
+The genotypes are represented by ``Call`` objects, which have three attributes: the
+corresponding Record ``site``, the sample name in ``sample`` and a dictionary of
+call data in ``data``::
+
+     >>> call = record.genotype('NA00001')
+     >>> print call.site
+     Record(CHROM=20, POS=17330, REF=T, ALT=[A])
+     >>> print call.sample
+     NA00001
+     >>> print call.data
+     CallData(GT=0|0, GQ=49, DP=3, HQ=[58, 50])
+
+Please note that as of release 0.4.0, attributes known to have single values (such as
+``DP`` and ``GQ`` above) are returned as values.  Other attributes are returned
+as lists (such as ``HQ`` above).
+
+There are also a number of methods::
+
+    >>> print call.called, call.gt_type, call.gt_bases, call.phased
+    True 0 T|T True
+
+Metadata regarding the VCF file itself can be investigated through the
+following attributes:
+
+    * ``Reader.metadata``
+    * ``Reader.infos``
+    * ``Reader.filters``
+    * ``Reader.formats``
+    * ``Reader.samples``
+
+For example::
+
+    >>> vcf_reader.metadata['fileDate']
+    '20090805'
+    >>> vcf_reader.samples
+    ['NA00001', 'NA00002', 'NA00003']
+    >>> vcf_reader.filters
+    OrderedDict([('q10', Filter(id='q10', desc='Quality below 10')), ('s50', Filter(id='s50', desc='Less than 50% of samples have data'))])
+    >>> vcf_reader.infos['AA'].desc
+    'Ancestral Allele'
+
+ALT records are actually classes, so that you can interrogate them::
+
+    >>> reader = vcf.Reader(open('vcf/test/example-4.1-bnd.vcf'))
+    >>> _ = reader.next(); row = reader.next()
+    >>> print row
+    Record(CHROM=1, POS=2, REF=T, ALT=[T[2:3[])
+    >>> bnd = row.ALT[0]
+    >>> print bnd.withinMainAssembly, bnd.orientation, bnd.remoteOrientation, bnd.connectingSequence
+    True False True T
+
+Random access is supported for files with tabix indexes.  Simply call fetch for the
+region you are interested in::
+
+    >>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
+    >>> for record in vcf_reader.fetch('20', 1110696, 1230237):  # doctest: +SKIP
+    ...     print record
+    Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+    Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
+
+Or extract a single row::
+
+    >>> print vcf_reader.fetch('20', 1110696)  # doctest: +SKIP
+    Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
+
+
+The ``Writer`` class provides a way of writing a VCF file.  Currently, you must specify a
+template ``Reader`` which provides the metadata::
+
+    >>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
+    >>> vcf_writer = vcf.Writer(open('/dev/null', 'w'), vcf_reader)
+    >>> for record in vcf_reader:
+    ...     vcf_writer.write_record(record)
+
+
+An extensible script is available to filter vcf files in vcf_filter.py.  VCF filters
+declared by other packages will be available for use in this script.  Please
+see :doc:`FILTERS` for full description.
+
+'''
+from vcf.parser import Reader, Writer
+from vcf.parser import VCFReader, VCFWriter
+from vcf.filters import Base as Filter
+from vcf.parser import RESERVED_INFO, RESERVED_FORMAT
+
+VERSION = '0.6.7'
diff --git a/vcf/cparse.pyx b/vcf/cparse.pyx
new file mode 100644
index 0000000..682e6a7
--- /dev/null
+++ b/vcf/cparse.pyx
@@ -0,0 +1,81 @@
+from model import _Call
+
+cdef _map(func, iterable, bad='.'):
+    '''``map``, but make bad values None.'''
+    return [func(x) if x != bad else None
+            for x in iterable]
+
+INTEGER = 'Integer'
+FLOAT = 'Float'
+NUMERIC = 'Numeric'
+
+def parse_samples(
+        list names, list samples, samp_fmt,
+        list samp_fmt_types, list samp_fmt_nums, site):
+
+    cdef char *name, *fmt, *entry_type, *sample
+    cdef int i, j
+    cdef list samp_data = []
+    cdef dict sampdict
+    cdef list sampvals
+    n_samples = len(samples)
+    n_formats = len(samp_fmt._fields)
+
+    for i in range(n_samples):
+        name = names[i]
+        sample = samples[i]
+
+        # parse the data for this sample
+        sampdat = [None] * n_formats
+
+        sampvals = sample.split(':')
+
+        for j in range(n_formats):
+            if j >= len(sampvals):
+                break
+            vals = sampvals[j]
+
+            # short circuit the most common
+            if vals == '.' or vals == './.':
+                sampdat[j] = None
+                continue
+
+            entry_type = samp_fmt_types[j]
+            # TODO: entry_num is None for unbounded lists
+            entry_num = samp_fmt_nums[j]
+
+            # we don't need to split single entries
+            if entry_num == 1 or ',' not in vals:
+
+                if entry_type == INTEGER:
+                    try:
+                        sampdat[j] = int(vals)
+                    except ValueError:
+                        sampdat[j] = float(vals)
+                elif entry_type == FLOAT or entry_type == NUMERIC:
+                    sampdat[j] = float(vals)
+                else:
+                    sampdat[j] = vals
+
+                if entry_num != 1:
+                    sampdat[j] = (sampdat[j])
+
+                continue
+
+            vals = vals.split(',')
+
+            if entry_type == INTEGER:
+                try:
+                    sampdat[j] = _map(int, vals)
+                except ValueError:
+                    sampdat[j] = map(float, vals)
+            elif entry_type == FLOAT or entry_type == NUMERIC:
+                sampdat[j] = _map(float, vals)
+            else:
+                sampdat[j] = vals
+
+        # create a call object
+        call = _Call(site, name, samp_fmt(*sampdat))
+        samp_data.append(call)
+
+    return samp_data
diff --git a/vcf/filters.py b/vcf/filters.py
new file mode 100644
index 0000000..ab4e4aa
--- /dev/null
+++ b/vcf/filters.py
@@ -0,0 +1,209 @@
+try:
+    from rpy2 import robjects
+except:
+    robjects = None
+
+
+class Base(object):
+    """ Base class for vcf_filter.py filters.
+
+        Use the class docstring to provide the filter description
+        as it appears in vcf_filter.py
+    """
+
+    name = 'f'
+    """ name used to activate filter and in VCF headers """
+
+    @classmethod
+    def customize_parser(self, parser):
+        """ hook to extend argparse parser with custom arguments """
+        pass
+
+    def __init__(self, args):
+        """ create the filter using argparse ``args`` """
+        self.threshold = 0
+
+    def __call__(self):
+        """ filter a site, return not None if the site should be filtered """
+        raise NotImplementedError('Filters must implement this method')
+
+    def filter_name(self):
+        """ return the name to put in the VCF header, default is ``name`` + ``threshold`` """
+        return '%s%s' % (self.name, self.threshold)
+
+
+class SiteQuality(Base):
+    """ Filter low quailty sites """
+
+    name = 'sq'
+
+    @classmethod
+    def customize_parser(self, parser):
+        parser.add_argument('--site-quality', type=int, default=30,
+                help='Filter sites below this quality')
+
+    def __init__(self, args):
+        self.threshold = args.site_quality
+
+    def __call__(self, record):
+        if record.QUAL < self.threshold:
+            return record.QUAL
+
+
+class VariantGenotypeQuality(Base):
+    """ Filters sites with only low quality variants.
+
+        It is possible to have a high site quality with many low quality calls.  This
+        filter demands at least one call be above a threshold quality.
+    """
+
+    name = 'mgq'
+
+    @classmethod
+    def customize_parser(self, parser):
+        parser.add_argument('--genotype-quality', type=int, default=50,
+                help='Filter sites with no genotypes above this quality')
+
+        def __init__(self, args):
+            self.threshold = args.genotype_quality
+
+    def __call__(self, record):
+        if not record.is_monomorphic:
+            vgq = max([x['GQ'] for x in record if x.is_variant])
+            if vgq < self.threshold:
+                return vgq
+
+
+class ErrorBiasFilter(Base):
+    """ Filter sites that look like correlated sequencing errors.
+
+        Some sequencing technologies, notably pyrosequencing, produce mutation
+        hotspots where there is a constant level of noise, producing some reference
+        and some heterozygote calls.
+
+        This filter computes a Bayes Factor for each site by comparing
+        the binomial likelihood of the observed allelic depths under:
+
+        * A model with constant error equal to the MAF.
+        * A model where each sample is the ploidy reported by the caller.
+
+        The test value is the log of the bayes factor.  Higher values
+        are more likely to be errors.
+
+        Note: this filter requires rpy2
+    """
+
+    name = 'eb'
+
+    @classmethod
+    def customize_parser(self, parser):
+        parser.add_argument('--eblr', type=int, default=-10,
+                help='Filter sites above this error log odds ratio')
+
+    def __init__(self, args):
+        self.threshold = args.eblr
+        if robjects is None:
+            raise Exception('Please install rpy2')
+        self.ll_test = robjects.r('''
+            function(ra, aa, gt, diag=F) {
+                ra_sum = sum(ra)
+                aa_sum = sum(aa)
+                ab = aa_sum / (ra_sum + aa_sum)
+                gtp = 0.5 + (0.48*(gt-1))
+
+                error_likelihood = log(dbinom(aa, ra+aa, ab))
+                gt_likelihood = log(dbinom(aa, ra+aa, gtp))
+
+                if (diag) {
+                    print(ra)
+                    print(aa)
+                    print(gtp)
+                    print(ab)
+                    print(error_likelihood)
+                    print(gt_likelihood)
+                }
+                error_likelihood = sum(error_likelihood)
+                gt_likelihood = sum(gt_likelihood)
+                c(error_likelihood - gt_likelihood, ab)
+            }
+            ''')
+
+    def __call__(self, record):
+        if record.is_monomorphic:
+            return None
+        passed, tv, ab = self.bias_test(record.samples)
+        if tv > self.threshold:
+            return tv
+
+    def bias_test(self, calls):
+        calls = [x for x in calls if x.called]
+        #TODO: single genotype assumption
+  
+        try:
+            # freebayes
+            ra = robjects.IntVector([x['RO'][0] for x in calls])
+            aa = robjects.IntVector([x['AO'][0] for x in calls])
+        except AttributeError:
+            # GATK
+            ra = robjects.IntVector([x['AD'][0] for x in calls])
+            aa = robjects.IntVector([x['AD'][1] for x in calls])
+
+        gt = robjects.IntVector([x.gt_type for x in calls])
+        test_val, ab = self.ll_test(ra, aa, gt)
+
+        return test_val < 0, test_val, ab
+
+
+class DepthPerSample(Base):
+    'Threshold read depth per sample'
+
+    name = 'dps'
+
+    @classmethod
+    def customize_parser(self, parser):
+        parser.add_argument('--depth-per-sample', type=int, default=5,
+                help='Minimum required coverage in each sample')
+
+    def __init__(self, args):
+        self.threshold = args.depth_per_sample
+
+    def __call__(self, record):
+        # do not test depth for indels
+        if record.is_indel:
+            return
+
+        mindepth = min([sam['DP'] for sam in record.samples])
+        if mindepth < self.threshold:
+            return mindepth
+
+
+class AvgDepthPerSample(Base):
+    'Threshold average read depth per sample (read_depth / sample_count)'
+
+    name = 'avg-dps'
+
+    @classmethod
+    def customize_parser(self, parser):
+        parser.add_argument('--avg-depth-per-sample', type=int, default=3,
+              help='Minimum required average coverage per sample')
+
+    def __init__(self, args):
+        self.threshold = args.avg_depth_per_sample
+
+    def __call__(self, record):
+        avgcov = float(record.INFO['DP']) / len(record.samples)
+        if avgcov < self.threshold:
+            return avgcov
+
+
+class SnpOnly(Base):
+    'Choose only SNP variants'
+
+    name = 'snp-only'
+
+    def __call__(self, record):
+        if not record.is_snp:
+            return True
+
+    def filter_name(self):
+        return self.name
diff --git a/vcf/model.py b/vcf/model.py
new file mode 100644
index 0000000..c6e8f42
--- /dev/null
+++ b/vcf/model.py
@@ -0,0 +1,588 @@
+from abc import ABCMeta, abstractmethod
+import collections
+import sys
+
+try:
+    from collections import Counter
+except ImportError:
+    from counter import Counter
+
+
+class _Call(object):
+    """ A genotype call, a cell entry in a VCF file"""
+
+    __slots__ = ['site', 'sample', 'data', 'gt_nums', 'called']
+
+    def __init__(self, site, sample, data):
+        #: The ``_Record`` for this ``_Call``
+        self.site = site
+        #: The sample name
+        self.sample = sample
+        #: Dictionary of data from the VCF file
+        self.data = data
+        try:
+            self.gt_nums = self.data.GT
+            #: True if the GT is not ./.
+            self.called = self.gt_nums is not None
+        except AttributeError:
+            self.gt_nums = None
+            #62 a call without a genotype is not defined as called or not
+            self.called = None
+
+    def __repr__(self):
+        return "Call(sample=%s, %s)" % (self.sample, str(self.data))
+
+    def __eq__(self, other):
+        """ Two _Calls are equal if their _Records are equal
+            and the samples and ``gt_type``s are the same
+        """
+        return (self.site == getattr(other, "site", None)
+                and self.sample == getattr(other, "sample", None)
+                and self.gt_type == getattr(other, "gt_type", None))
+
+    def __getstate__(self):
+        return dict((attr, getattr(self, attr)) for attr in self.__slots__)
+
+    def __setstate__(self, state):
+        for attr in self.__slots__:
+            setattr(self, attr, state.get(attr))
+
+    def gt_phase_char(self):
+        return "/" if not self.phased else "|"
+
+    @property
+    def gt_alleles(self):
+        '''The numbers of the alleles called at a given sample'''
+        # grab the numeric alleles of the gt string; tokenize by phasing
+        return self.gt_nums.split(self.gt_phase_char())
+
+    @property
+    def gt_bases(self):
+        '''The actual genotype alleles.
+           E.g. if VCF genotype is 0/1, return A/G
+        '''
+        # nothing to do if no genotype call
+        if self.called:
+            # lookup and return the actual DNA alleles
+            try:
+                return self.gt_phase_char().join(str(self.site.alleles[int(X)]) for X in self.gt_alleles)
+            except:
+                sys.stderr.write("Allele number not found in list of alleles\n")
+        else:
+            return None
+
+    @property
+    def gt_type(self):
+        '''The type of genotype.
+           hom_ref  = 0
+           het      = 1
+           hom_alt  = 2  (we don;t track _which+ ALT)
+           uncalled = None
+        '''
+        # extract the numeric alleles of the gt string
+        if self.called:
+            alleles = self.gt_alleles
+            if all(X == alleles[0] for X in alleles[1:]):
+                if alleles[0] == "0":
+                    return 0
+                else:
+                    return 2
+            else:
+                return 1
+        else:
+            return None
+
+    @property
+    def phased(self):
+        '''A boolean indicating whether or not
+           the genotype is phased for this sample
+        '''
+        return self.gt_nums is not None and self.gt_nums.find("|") >= 0
+
+    def __getitem__(self, key):
+        """ Lookup value, backwards compatibility """
+        return getattr(self.data, key)
+
+    @property
+    def is_variant(self):
+        """ Return True if not a reference call """
+        if not self.called:
+            return None
+        return self.gt_type != 0
+
+    @property
+    def is_het(self):
+        """ Return True for heterozygous calls """
+        if not self.called:
+            return None
+        return self.gt_type == 1
+
+
+class _Record(object):
+    """ A set of calls at a site.  Equivalent to a row in a VCF file.
+
+        The standard VCF fields CHROM, POS, ID, REF, ALT, QUAL, FILTER,
+        INFO and FORMAT are available as properties.
+
+        The list of genotype calls is in the ``samples`` property.
+    """
+    def __init__(self, CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT,
+            sample_indexes, samples=None):
+        self.CHROM = CHROM
+        self.POS = POS
+        self.ID = ID
+        self.REF = REF
+        self.ALT = ALT
+        self.QUAL = QUAL
+        self.FILTER = FILTER
+        self.INFO = INFO
+        self.FORMAT = FORMAT
+        #: 0-based start coordinate
+        self.start = self.POS - 1
+        #: 1-based end coordinate
+        self.end = self.start + len(self.REF)
+        #: list of alleles. [0] = REF, [1:] = ALTS
+        self.alleles = [self.REF]
+        self.alleles.extend(self.ALT)
+        #: list of ``_Calls`` for each sample ordered as in source VCF
+        self.samples = samples or []
+        self._sample_indexes = sample_indexes
+
+    # For Python 2
+    def __cmp__(self, other):
+        return cmp((self.CHROM, self.POS), (getattr(other, "CHROM", None), getattr(other, "POS", None)))
+
+    # For Python 3
+    def __eq__(self, other):
+        """ _Records are equal if they describe the same variant (same position, alleles) """
+        return (self.CHROM == getattr(other, "CHROM", None) and
+                self.POS == getattr(other, "POS", None) and
+                self.REF == getattr(other, "REF", None) and
+                self.ALT == getattr(other, "ALT", None))
+
+    # For Python 3
+    def __lt__(self, other):
+        return (self.CHROM, self.POS) < (getattr(other, "CHROM", None), getattr(other, "POS", None))
+
+    def __iter__(self):
+        return iter(self.samples)
+
+    def __str__(self):
+        return "Record(CHROM=%(CHROM)s, POS=%(POS)s, REF=%(REF)s, ALT=%(ALT)s)" % self.__dict__
+
+    def add_format(self, fmt):
+        self.FORMAT = self.FORMAT + ':' + fmt
+
+    def add_filter(self, flt):
+        if self.FILTER is None:
+            self.FILTER = [flt]
+        else:
+            self.FILTER.append(flt)
+
+    def add_info(self, info, value=True):
+        self.INFO[info] = value
+
+    def genotype(self, name):
+        """ Lookup a ``_Call`` for the sample given in ``name`` """
+        return self.samples[self._sample_indexes[name]]
+
+    @property
+    def num_called(self):
+        """ The number of called samples"""
+        return sum(s.called for s in self.samples)
+
+    @property
+    def call_rate(self):
+        """ The fraction of genotypes that were actually called. """
+        return float(self.num_called) / float(len(self.samples))
+
+    @property
+    def num_hom_ref(self):
+        """ The number of homozygous for ref allele genotypes"""
+        return len([s for s in self.samples if s.gt_type == 0])
+
+    @property
+    def num_hom_alt(self):
+        """ The number of homozygous for alt allele genotypes"""
+        return len([s for s in self.samples if s.gt_type == 2])
+
+    @property
+    def num_het(self):
+        """ The number of heterozygous genotypes"""
+        return len([s for s in self.samples if s.gt_type == 1])
+
+    @property
+    def num_unknown(self):
+        """ The number of unknown genotypes"""
+        return len([s for s in self.samples if s.gt_type is None])
+
+    @property
+    def aaf(self):
+        """ A list of allele frequencies of alternate alleles.
+           NOTE: Denominator calc'ed from _called_ genotypes.
+        """
+        num_chroms = 2.0 * self.num_called
+        allele_counts = Counter()
+        for s in self.samples:
+            if s.gt_type is not None:
+                allele_counts.update([s.gt_alleles[0]])
+                allele_counts.update([s.gt_alleles[1]])
+        return [allele_counts[str(i)]/num_chroms for i in range(1, len(self.ALT)+1)]
+
+    @property
+    def nucl_diversity(self):
+        """
+        pi_hat (estimation of nucleotide diversity) for the site.
+        This metric can be summed across multiple sites to compute regional
+        nucleotide diversity estimates.  For example, pi_hat for all variants
+        in a given gene.
+
+        Derived from:
+        \"Population Genetics: A Concise Guide, 2nd ed., p.45\"
+          John Gillespie.
+        """
+        # skip if more than one alternate allele. assumes bi-allelic
+        if len(self.ALT) > 1:
+            return None
+        p = self.aaf[0]
+        q = 1.0 - p
+        num_chroms = float(2.0 * self.num_called)
+        return float(num_chroms / (num_chroms - 1.0)) * (2.0 * p * q)
+
+    @property
+    def heterozygosity(self):
+        """
+        Heterozygosity of a site. Heterozygosity gives the probability that
+        two randomly chosen chromosomes from the population have different
+        alleles, giving a measure of the degree of polymorphism in a population.
+
+        If there are i alleles with frequency p_i, H=1-sum_i(p_i^2)
+        """
+        allele_freqs = [1-sum(self.aaf)] + self.aaf
+        return 1 - sum(map(lambda x: x**2, allele_freqs))
+
+    def get_hom_refs(self):
+        """ The list of hom ref genotypes"""
+        return [s for s in self.samples if s.gt_type == 0]
+
+    def get_hom_alts(self):
+        """ The list of hom alt genotypes"""
+        return [s for s in self.samples if s.gt_type == 2]
+
+    def get_hets(self):
+        """ The list of het genotypes"""
+        return [s for s in self.samples if s.gt_type == 1]
+
+    def get_unknowns(self):
+        """ The list of unknown genotypes"""
+        return [s for s in self.samples if s.gt_type is None]
+
+    @property
+    def is_snp(self):
+        """ Return whether or not the variant is a SNP """
+        if len(self.REF) > 1:
+            return False
+        for alt in self.ALT:
+            if alt is None or alt.type != "SNV":
+                return False
+            if alt not in ['A', 'C', 'G', 'T']:
+                return False
+        return True
+
+    @property
+    def is_indel(self):
+        """ Return whether or not the variant is an INDEL """
+        is_sv = self.is_sv
+
+        if len(self.REF) > 1 and not is_sv:
+            return True
+        for alt in self.ALT:
+            if alt is None:
+                return True
+            if alt.type != "SNV" and alt.type != "MNV":
+                return False
+            elif len(alt) != len(self.REF):
+                # the diff. b/w INDELs and SVs can be murky.
+                if not is_sv:
+                    # 1	2827693	.	CCCCTCGCA	C	.	PASS	AC=10;
+                    return True
+                else:
+                    # 1	2827693	.	CCCCTCGCA	C	.	PASS	SVTYPE=DEL;
+                    return False
+        return False
+
+    @property
+    def is_sv(self):
+        """ Return whether or not the variant is a structural variant """
+        if self.INFO.get('SVTYPE') is None:
+            return False
+        return True
+
+    @property
+    def is_transition(self):
+        """ Return whether or not the SNP is a transition """
+        # if multiple alts, it is unclear if we have a transition
+        if len(self.ALT) > 1:
+            return False
+
+        if self.is_snp:
+            # just one alt allele
+            alt_allele = self.ALT[0]
+            if ((self.REF == "A" and alt_allele == "G") or
+                (self.REF == "G" and alt_allele == "A") or
+                (self.REF == "C" and alt_allele == "T") or
+                (self.REF == "T" and alt_allele == "C")):
+                return True
+            else:
+                return False
+        else:
+            return False
+
+    @property
+    def is_deletion(self):
+        """ Return whether or not the INDEL is a deletion """
+        # if multiple alts, it is unclear if we have a transition
+        if len(self.ALT) > 1:
+            return False
+
+        if self.is_indel:
+            # just one alt allele
+            alt_allele = self.ALT[0]
+            if alt_allele is None:
+                return True
+            if len(self.REF) > len(alt_allele):
+                return True
+            else:
+                return False
+        else:
+            return False
+
+    @property
+    def var_type(self):
+        """
+        Return the type of variant [snp, indel, unknown]
+        TO DO: support SVs
+        """
+        if self.is_snp:
+            return "snp"
+        elif self.is_indel:
+            return "indel"
+        elif self.is_sv:
+            return "sv"
+        else:
+            return "unknown"
+
+    @property
+    def var_subtype(self):
+        """
+        Return the subtype of variant.
+        - For SNPs and INDELs, yeild one of: [ts, tv, ins, del]
+        - For SVs yield either "complex" or the SV type defined
+          in the ALT fields (removing the brackets).
+          E.g.:
+               <DEL>       -> DEL
+               <INS:ME:L1> -> INS:ME:L1
+               <DUP>       -> DUP
+
+        The logic is meant to follow the rules outlined in the following
+        paragraph at:
+
+        http://www.1000genomes.org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-41
+
+        "For precisely known variants, the REF and ALT fields should contain
+        the full sequences for the alleles, following the usual VCF conventions.
+        For imprecise variants, the REF field may contain a single base and the
+        ALT fields should contain symbolic alleles (e.g. <ID>), described in more
+        detail below. Imprecise variants should also be marked by the presence
+        of an IMPRECISE flag in the INFO field."
+        """
+        if self.is_snp:
+            if self.is_transition:
+                return "ts"
+            elif len(self.ALT) == 1:
+                return "tv"
+            else:  # multiple ALT alleles.  unclear
+                return "unknown"
+        elif self.is_indel:
+            if self.is_deletion:
+                return "del"
+            elif len(self.ALT) == 1:
+                return "ins"
+            else:  # multiple ALT alleles.  unclear
+                return "unknown"
+        elif self.is_sv:
+            if self.INFO['SVTYPE'] == "BND":
+                return "complex"
+            elif self.is_sv_precise:
+                return self.INFO['SVTYPE']
+            else:
+                return self.ALT[0].type
+        else:
+            return "unknown"
+
+    @property
+    def sv_end(self):
+        """ Return the end position for the SV """
+        if self.is_sv:
+            return self.INFO['END']
+        return None
+
+    @property
+    def is_sv_precise(self):
+        """ Return whether the SV cordinates are mapped
+            to 1 b.p. resolution.
+        """
+        if self.INFO.get('IMPRECISE') is None and not self.is_sv:
+            return False
+        elif self.INFO.get('IMPRECISE') is not None and self.is_sv:
+            return False
+        elif self.INFO.get('IMPRECISE') is None and self.is_sv:
+            return True
+
+    @property
+    def is_monomorphic(self):
+        """ Return True for reference calls """
+        return len(self.ALT) == 1 and self.ALT[0] is None
+
+
+class _AltRecord(object):
+    '''An alternative allele record: either replacement string, SV placeholder, or breakend'''
+    __metaclass__ = ABCMeta
+
+    def __init__(self, type, **kwargs):
+        super(_AltRecord, self).__init__(**kwargs)
+        #: String to describe the type of variant, by default "SNV" or "MNV", but can be extended to any of the types described in the ALT lines of the header (e.g. "DUP", "DEL", "INS"...)
+        self.type = type
+
+    @abstractmethod
+    def __str__(self):
+        raise NotImplementedError
+
+    def __eq__(self, other):
+        return self.type == getattr(other, 'type', None)
+
+
+class _Substitution(_AltRecord):
+    '''A basic ALT record, where a REF sequence is replaced by an ALT sequence'''
+
+    def __init__(self, nucleotides, **kwargs):
+        if len(nucleotides) == 1:
+            super(_Substitution, self).__init__(type="SNV", **kwargs)
+        else:
+            super(_Substitution, self).__init__(type="MNV", **kwargs)
+        #: Alternate sequence
+        self.sequence = str(nucleotides)
+
+    def __str__(self):
+        return self.sequence
+
+    def __repr__(self):
+        return str(self)
+
+    def __len__(self):
+        return len(self.sequence)
+
+    def __eq__(self, other):
+        if isinstance(other, basestring):
+            return self.sequence == other
+        elif not isinstance(other, self.__class__):
+            return False
+        return super(_Substitution, self).__eq__(other) and self.sequence == other.sequence
+
+
+class _Breakend(_AltRecord):
+    '''A breakend which is paired to a remote location on or off the genome'''
+
+    def __init__(self, chr, pos, orientation, remoteOrientation, connectingSequence, withinMainAssembly, **kwargs):
+        super(_Breakend, self).__init__(type="BND", **kwargs)
+        #: The chromosome of breakend's mate.
+        if chr is not None:
+            self.chr = str(chr)
+        else:
+            self.chr = None  # Single breakend
+        #: The coordinate of breakend's mate.
+        if pos is not None:
+            self.pos = int(pos)
+        else:
+            self.pos = None
+        #: The orientation of breakend's mate. If the sequence 3' of the breakend's mate is connected, True, else if the sequence 5' of the breakend's mate is connected, False.
+        self.remoteOrientation = remoteOrientation
+        #: If the breakend mate is within the assembly, True, else False if the breakend mate is on a contig in an ancillary assembly file.
+        self.withinMainAssembly = withinMainAssembly
+        #: The orientation of breakend. If the sequence 3' of the breakend is connected, True, else if the sequence 5' of the breakend is connected, False.
+        self.orientation = orientation
+        #: The breakpoint's connecting sequence.
+        self.connectingSequence = connectingSequence
+
+    def __repr__(self):
+        return str(self)
+
+    def __str__(self):
+        if self.chr is None:
+            remoteTag = '.'
+        else:
+            if self.withinMainAssembly:
+                remoteChr = self.chr
+            else:
+                remoteChr = "<" + self.chr + ">"
+            if self.remoteOrientation:
+                remoteTag = "[" + remoteChr + ":" + str(self.pos) + "["
+            else:
+                remoteTag = "]" + remoteChr + ":" + str(self.pos) + "]"
+
+        if self.orientation:
+            return remoteTag + self.connectingSequence
+        else:
+            return self.connectingSequence + remoteTag
+
+    def __eq__(self, other):
+        if not isinstance(other, self.__class__):
+            return False
+        return super(_Breakend, self).__eq__(other) \
+                and self.chr == getattr(other, "chr", None) \
+                and self.pos == getattr(other, "pos", None) \
+                and self.remoteOrientation == getattr(other, "remoteOrientation", None) \
+                and self.withinMainAssembly == getattr(other, "withinMainAssembly", None) \
+                and self.orientation == getattr(other, "orientation", None) \
+                and self.connectingSequence == getattr(other, "connectingSequence", None)
+
+
+class _SingleBreakend(_Breakend):
+    '''A single breakend'''
+
+    def __init__(self, orientation, connectingSequence, **kwargs):
+        super(_SingleBreakend, self).__init__(None, None, orientation, None, connectingSequence, None, **kwargs)
+
+
+class _SV(_AltRecord):
+    '''An SV placeholder'''
+
+    def __init__(self, type, **kwargs):
+        super(_SV, self).__init__(type, **kwargs)
+
+    def __str__(self):
+        return "<" + self.type + ">"
+
+    def __repr__(self):
+        return str(self)
+
+
+def make_calldata_tuple(fields):
+    """ Return a namedtuple for a given call format """
+
+    class CallData(collections.namedtuple('calldata', fields)):
+        __slots__ = ()
+
+        _types = []
+        _nums = []
+
+        def __str__(self):
+            dat = ", ".join(["%s=%s" % (x, y)
+                for (x, y) in zip(self._fields, self)])
+            return "CallData(" + dat + ')'
+
+        def __reduce__(self):
+            args = super(CallData, self).__reduce__()
+            return make_calldata_tuple, (fields, )
+
+    return CallData
diff --git a/vcf/parser.py b/vcf/parser.py
new file mode 100644
index 0000000..aac92f8
--- /dev/null
+++ b/vcf/parser.py
@@ -0,0 +1,750 @@
+import collections
+import re
+import csv
+import gzip
+import sys
+import itertools
+import codecs
+
+try:
+    from collections import OrderedDict
+except ImportError:
+    from ordereddict import OrderedDict
+
+try:
+    import pysam
+except ImportError:
+    pysam = None
+
+try:
+    import cparse
+except ImportError:
+    cparse = None
+
+from model import _Call, _Record, make_calldata_tuple
+from model import _Substitution, _Breakend, _SingleBreakend, _SV
+
+
+# Metadata parsers/constants
+RESERVED_INFO = {
+    'AA': 'String', 'AC': 'Integer', 'AF': 'Float', 'AN': 'Integer',
+    'BQ': 'Float', 'CIGAR': 'String', 'DB': 'Flag', 'DP': 'Integer',
+    'END': 'Integer', 'H2': 'Flag', 'H3': 'Flag', 'MQ': 'Float',
+    'MQ0': 'Integer', 'NS': 'Integer', 'SB': 'String', 'SOMATIC': 'Flag',
+    'VALIDATED': 'Flag', '1000G': 'Flag',
+
+    # Keys used for structural variants
+    'IMPRECISE': 'Flag', 'NOVEL': 'Flag', 'SVTYPE': 'String',
+    'SVLEN': 'Integer', 'CIPOS': 'Integer', 'CIEND': 'Integer',
+    'HOMLEN': 'Integer', 'HOMSEQ': 'String', 'BKPTID': 'String',
+    'MEINFO': 'String', 'METRANS': 'String', 'DGVID': 'String',
+    'DBVARID': 'String', 'DBRIPID': 'String', 'MATEID': 'String',
+    'PARID': 'String', 'EVENT': 'String', 'CILEN': 'Integer',
+    'DPADJ': 'Integer', 'CN': 'Integer', 'CNADJ': 'Integer',
+    'CICN': 'Integer', 'CICNADJ': 'Integer'
+}
+
+RESERVED_FORMAT = {
+    'GT': 'String', 'DP': 'Integer', 'FT': 'String', 'GL': 'Float',
+    'GLE': 'String', 'PL': 'Integer', 'GP': 'Float', 'GQ': 'Integer',
+    'HQ': 'Integer', 'PS': 'Integer', 'PQ': 'Integer', 'EC': 'Integer',
+    'MQ': 'Integer',
+
+    # Keys used for structural variants
+    'CN': 'Integer', 'CNQ': 'Float', 'CNL': 'Float', 'NQ': 'Integer',
+    'HAP': 'Integer', 'AHAP': 'Integer'
+}
+
+# Spec is a bit weak on which metadata lines are singular, like fileformat
+# and which can have repeats, like contig
+SINGULAR_METADATA = ['fileformat', 'fileDate', 'reference']
+
+# Conversion between value in file and Python value
+field_counts = {
+    '.': None,  # Unknown number of values
+    'A': -1,  # Equal to the number of alleles in a given record
+    'G': -2,  # Equal to the number of genotypes in a given record
+}
+
+
+_Info = collections.namedtuple('Info', ['id', 'num', 'type', 'desc'])
+_Filter = collections.namedtuple('Filter', ['id', 'desc'])
+_Alt = collections.namedtuple('Alt', ['id', 'desc'])
+_Format = collections.namedtuple('Format', ['id', 'num', 'type', 'desc'])
+_SampleInfo = collections.namedtuple('SampleInfo', ['samples', 'gt_bases', 'gt_types', 'gt_phases'])
+_Contig = collections.namedtuple('Contig', ['id', 'length'])
+
+
+class _vcf_metadata_parser(object):
+    '''Parse the metadat in the header of a VCF file.'''
+    def __init__(self):
+        super(_vcf_metadata_parser, self).__init__()
+        self.info_pattern = re.compile(r'''\#\#INFO=<
+            ID=(?P<id>[^,]+),
+            Number=(?P<number>-?\d+|\.|[AG]),
+            Type=(?P<type>Integer|Float|Flag|Character|String),
+            Description="(?P<desc>[^"]*)"
+            >''', re.VERBOSE)
+        self.filter_pattern = re.compile(r'''\#\#FILTER=<
+            ID=(?P<id>[^,]+),
+            Description="(?P<desc>[^"]*)"
+            >''', re.VERBOSE)
+        self.alt_pattern = re.compile(r'''\#\#ALT=<
+            ID=(?P<id>[^,]+),
+            Description="(?P<desc>[^"]*)"
+            >''', re.VERBOSE)
+        self.format_pattern = re.compile(r'''\#\#FORMAT=<
+            ID=(?P<id>.+),
+            Number=(?P<number>-?\d+|\.|[AG]),
+            Type=(?P<type>.+),
+            Description="(?P<desc>.*)"
+            >''', re.VERBOSE)
+        self.contig_pattern = re.compile(r'''\#\#contig=<
+            ID=(?P<id>[^,]+),
+            .*
+            length=(?P<length>-?\d+)
+            .*
+            >''', re.VERBOSE)
+        self.meta_pattern = re.compile(r'''##(?P<key>.+?)=(?P<val>.+)''')
+
+    def vcf_field_count(self, num_str):
+        """Cast vcf header numbers to integer or None"""
+        if num_str not in field_counts:
+            # Fixed, specified number
+            return int(num_str)
+        else:
+            return field_counts[num_str]
+
+    def read_info(self, info_string):
+        '''Read a meta-information INFO line.'''
+        match = self.info_pattern.match(info_string)
+        if not match:
+            raise SyntaxError(
+                "One of the INFO lines is malformed: %s" % info_string)
+
+        num = self.vcf_field_count(match.group('number'))
+
+        info = _Info(match.group('id'), num,
+                     match.group('type'), match.group('desc'))
+
+        return (match.group('id'), info)
+
+    def read_filter(self, filter_string):
+        '''Read a meta-information FILTER line.'''
+        match = self.filter_pattern.match(filter_string)
+        if not match:
+            raise SyntaxError(
+                "One of the FILTER lines is malformed: %s" % filter_string)
+
+        filt = _Filter(match.group('id'), match.group('desc'))
+
+        return (match.group('id'), filt)
+
+    def read_alt(self, alt_string):
+        '''Read a meta-information ALTline.'''
+        match = self.alt_pattern.match(alt_string)
+        if not match:
+            raise SyntaxError(
+                "One of the FILTER lines is malformed: %s" % alt_string)
+
+        alt = _Alt(match.group('id'), match.group('desc'))
+
+        return (match.group('id'), alt)
+
+    def read_format(self, format_string):
+        '''Read a meta-information FORMAT line.'''
+        match = self.format_pattern.match(format_string)
+        if not match:
+            raise SyntaxError(
+                "One of the FORMAT lines is malformed: %s" % format_string)
+
+        num = self.vcf_field_count(match.group('number'))
+
+        form = _Format(match.group('id'), num,
+                       match.group('type'), match.group('desc'))
+
+        return (match.group('id'), form)
+    
+    def read_contig(self, contig_string):
+        '''Read a meta-contigrmation INFO line.'''
+        match = self.contig_pattern.match(contig_string)
+        if not match:
+            raise SyntaxError(
+                "One of the contig lines is malformed: %s" % contig_string)
+
+        length = self.vcf_field_count(match.group('length'))
+
+        contig = _Contig(match.group('id'), length)
+
+        return (match.group('id'), contig)
+
+
+    def read_meta_hash(self, meta_string):
+        items = re.split("[<>]", meta_string)
+        # Removing initial hash marks and final equal sign
+        key = items[0][2:-1]
+        # N.B., items can have quoted values, so cannot just split on comma
+        val = OrderedDict()
+        state = 0
+        k = ''
+        v = ''
+        for c in items[1]:
+
+            if state == 0:  # reading item key
+                if c == '=':
+                    state = 1  # end of key, start reading value
+                else:
+                    k += c  # extend key
+            elif state == 1:  # reading item value
+                if v == '' and c == '"':
+                    v += c  # include quote mark in value
+                    state = 2  # start reading quoted value
+                elif c == ',':
+                    val[k] = v  # store parsed item
+                    state = 0  # read next key
+                    k = ''
+                    v = ''
+                else:
+                    v += c
+            elif state == 2:  # reading quoted item value
+                if c == '"':
+                    v += c  # include quote mark in value
+                    state = 1  # end quoting
+                else:
+                    v += c
+        if k != '':
+            val[k] = v
+        return key, val
+
+    def read_meta(self, meta_string):
+        if re.match("##.+=<", meta_string):
+            return self.read_meta_hash(meta_string)
+        else:
+            match = self.meta_pattern.match(meta_string)
+            return match.group('key'), match.group('val')
+
+
+class Reader(object):
+    """ Reader for a VCF v 4.0 file, an iterator returning ``_Record objects`` """
+
+    def __init__(self, fsock=None, filename=None, compressed=False, prepend_chr=False,
+                 strict_whitespace=False):
+        """ Create a new Reader for a VCF file.
+
+            You must specify either fsock (stream) or filename.  Gzipped streams
+            or files are attempted to be recogized by the file extension, or gzipped
+            can be forced with ``compressed=True``
+
+            'prepend_chr=True' will put 'chr' before all the CHROM values, useful
+            for different sources.
+
+            'strict_whitespace=True' will split records on tabs only (as with VCF
+            spec) which allows you to parse files with spaces in the sample names.
+        """
+        super(Reader, self).__init__()
+
+        if not (fsock or filename):
+            raise Exception('You must provide at least fsock or filename')
+
+        if fsock:
+            self._reader = fsock
+            if filename is None and hasattr(fsock, 'name'):
+                filename = fsock.name
+                compressed = compressed or filename.endswith('.gz')
+        elif filename:
+            compressed = compressed or filename.endswith('.gz')
+            self._reader = open(filename, 'rb' if compressed else 'rt')
+        self.filename = filename
+        if compressed:
+            self._reader = gzip.GzipFile(fileobj=self._reader)
+            if sys.version > '3':
+                self._reader = codecs.getreader('ascii')(self._reader)
+
+        if strict_whitespace:
+            self._separator = '\t'
+        else:
+            self._separator = '\t| +'
+
+        self.reader = (line.strip() for line in self._reader if line.strip())
+
+        #: metadata fields from header (string or hash, depending)
+        self.metadata = None
+        #: INFO fields from header
+        self.infos = None
+        #: FILTER fields from header
+        self.filters = None
+        #: ALT fields from header
+        self.alts = None
+        #: FORMAT fields from header
+        self.formats = None
+        #: contig fields from header
+        self.contigs = None
+        self.samples = None
+        self._sample_indexes = None
+        self._header_lines = []
+        self._column_headers = []
+        self._tabix = None
+        self._prepend_chr = prepend_chr
+        self._parse_metainfo()
+        self._format_cache = {}
+
+    def __iter__(self):
+        return self
+
+    def _parse_metainfo(self):
+        '''Parse the information stored in the metainfo of the VCF.
+
+        The end user shouldn't have to use this.  She can access the metainfo
+        directly with ``self.metadata``.'''
+        for attr in ('metadata', 'infos', 'filters', 'alts', 'contigs', 'formats'):
+            setattr(self, attr, OrderedDict())
+
+        parser = _vcf_metadata_parser()
+
+        line = self.reader.next()
+        while line.startswith('##'):
+            self._header_lines.append(line)
+
+            if line.startswith('##INFO'):
+                key, val = parser.read_info(line)
+                self.infos[key] = val
+
+            elif line.startswith('##FILTER'):
+                key, val = parser.read_filter(line)
+                self.filters[key] = val
+
+            elif line.startswith('##ALT'):
+                key, val = parser.read_alt(line)
+                self.alts[key] = val
+
+            elif line.startswith('##FORMAT'):
+                key, val = parser.read_format(line)
+                self.formats[key] = val
+            
+            elif line.startswith('##contig'):
+                key, val = parser.read_contig(line)
+                self.contigs[key] = val
+
+            else:
+                key, val = parser.read_meta(line)
+                if key in SINGULAR_METADATA:
+                    self.metadata[key] = val
+                else:
+                    if key not in self.metadata:
+                        self.metadata[key] = []
+                    self.metadata[key].append(val)
+
+            line = self.reader.next()
+
+        fields = re.split(self._separator, line[1:])
+        self._column_headers = fields[:9]
+        self.samples = fields[9:]
+        self._sample_indexes = dict([(x,i) for (i,x) in enumerate(self.samples)])
+
+    def _map(self, func, iterable, bad='.'):
+        '''``map``, but make bad values None.'''
+        return [func(x) if x != bad else None
+                for x in iterable]
+
+    def _parse_info(self, info_str):
+        '''Parse the INFO field of a VCF entry into a dictionary of Python
+        types.
+
+        '''
+        if info_str == '.':
+            return {}
+
+        entries = info_str.split(';')
+        retdict = {}
+
+        for entry in entries:
+            entry = entry.split('=')
+            ID = entry[0]
+            try:
+                entry_type = self.infos[ID].type
+            except KeyError:
+                try:
+                    entry_type = RESERVED_INFO[ID]
+                except KeyError:
+                    if entry[1:]:
+                        entry_type = 'String'
+                    else:
+                        entry_type = 'Flag'
+
+            if entry_type == 'Integer':
+                vals = entry[1].split(',')
+                try:
+                    val = self._map(int, vals)
+                # Allow specified integers to be flexibly parsed as floats.
+                # Handles cases with incorrectly specified header types.
+                except ValueError:
+                    val = self._map(float, vals)
+            elif entry_type == 'Float':
+                vals = entry[1].split(',')
+                val = self._map(float, vals)
+            elif entry_type == 'Flag':
+                val = True
+            elif entry_type in ('String', 'Character'):
+                try:
+                    vals = entry[1].split(',') # commas are reserved characters indicating multiple values
+                    val = self._map(str, vals)
+                except IndexError:
+                    val = True
+
+            try:
+                if self.infos[ID].num == 1 and entry_type not in ( 'Flag', ):
+                    val = val[0]
+            except KeyError:
+                pass
+
+            retdict[ID] = val
+
+        return retdict
+
+    def _parse_sample_format(self, samp_fmt):
+        """ Parse the format of the calls in this _Record """
+        samp_fmt = make_calldata_tuple(samp_fmt.split(':'))
+
+        for fmt in samp_fmt._fields:
+            try:
+                entry_type = self.formats[fmt].type
+                entry_num = self.formats[fmt].num
+            except KeyError:
+                entry_num = None
+                try:
+                    entry_type = RESERVED_FORMAT[fmt]
+                except KeyError:
+                    entry_type = 'String'
+            samp_fmt._types.append(entry_type)
+            samp_fmt._nums.append(entry_num)
+        return samp_fmt
+
+    def _parse_samples(self, samples, samp_fmt, site):
+        '''Parse a sample entry according to the format specified in the FORMAT
+        column.
+
+        NOTE: this method has a cython equivalent and care must be taken
+        to keep the two methods equivalent
+        '''
+
+        # check whether we already know how to parse this format
+        if samp_fmt not in self._format_cache:
+            self._format_cache[samp_fmt] = self._parse_sample_format(samp_fmt)
+
+        samp_fmt = self._format_cache[samp_fmt]
+
+        if cparse:
+            return cparse.parse_samples(
+                self.samples, samples, samp_fmt, samp_fmt._types, samp_fmt._nums, site)
+
+        samp_data = []
+        _map = self._map
+
+        nfields = len(samp_fmt._fields)
+
+        for name, sample in itertools.izip(self.samples, samples):
+
+            # parse the data for this sample
+            sampdat = [None] * nfields
+
+            for i, vals in enumerate(sample.split(':')):
+
+                # short circuit the most common
+                if vals == '.' or vals == './.':
+                    sampdat[i] = None
+                    continue
+
+                entry_num = samp_fmt._nums[i]
+                entry_type = samp_fmt._types[i]
+
+                # we don't need to split single entries
+                if entry_num == 1 or ',' not in vals:
+
+                    if entry_type == 'Integer':
+                        try:
+                            sampdat[i] = int(vals)
+                        except ValueError:
+                            sampdat[i] = float(vals)
+                    elif entry_type == 'Float':
+                        sampdat[i] = float(vals)
+                    else:
+                        sampdat[i] = vals
+
+                    if entry_num != 1:
+                        sampdat[i] = (sampdat[i])
+
+                    continue
+
+                vals = vals.split(',')
+
+                if entry_type == 'Integer':
+                    try:
+                        sampdat[i] = _map(int, vals)
+                    except ValueError:
+                        sampdat[i] = _map(float, vals)
+                elif entry_type == 'Float' or entry_type == 'Numeric':
+                    sampdat[i] = _map(float, vals)
+                else:
+                    sampdat[i] = vals
+
+            # create a call object
+            call = _Call(site, name, samp_fmt(*sampdat))
+            samp_data.append(call)
+
+        return samp_data
+
+    def _parse_alt(self, str):
+        if re.search('[\[\]]', str) is not None:
+            # Paired breakend
+            items = re.split('[\[\]]', str)
+            remoteCoords = items[1].split(':')
+            chr = remoteCoords[0]
+            if chr[0] == '<':
+                chr = chr[1:-1]
+                withinMainAssembly = False
+            else:
+                withinMainAssembly = True
+            pos = remoteCoords[1]
+            orientation = (str[0] == '[' or str[0] == ']')
+            remoteOrientation = (re.search('\[', str) is not None)
+            if orientation:
+                connectingSequence = items[2]
+            else:
+                connectingSequence = items[0]
+            return _Breakend(chr, pos, orientation, remoteOrientation, connectingSequence, withinMainAssembly)
+        elif str[0] == '.' and len(str) > 1:
+            return _SingleBreakend(True, str[1:])
+        elif str[-1] == '.' and len(str) > 1:
+            return _SingleBreakend(False, str[:-1])
+        elif str[0] == "<" and str[-1] == ">":
+            return _SV(str[1:-1])
+        else:
+            return _Substitution(str)
+
+    def next(self):
+        '''Return the next record in the file.'''
+        line = self.reader.next()
+        row = re.split(self._separator, line.rstrip())
+        chrom = row[0]
+        if self._prepend_chr:
+            chrom = 'chr' + chrom
+        pos = int(row[1])
+
+        if row[2] != '.':
+            ID = row[2]
+        else:
+            ID = None
+
+        ref = row[3]
+        alt = self._map(self._parse_alt, row[4].split(','))
+
+        try:
+            qual = int(row[5])
+        except ValueError:
+            try:
+                qual = float(row[5])
+            except ValueError:
+                qual = None
+
+        filt = row[6]
+        if filt == '.':
+            filt = None
+        elif filt == 'PASS':
+            filt = []
+        else:
+            filt = filt.split(';')
+        info = self._parse_info(row[7])
+
+        try:
+            fmt = row[8]
+        except IndexError:
+            fmt = None
+
+        record = _Record(chrom, pos, ID, ref, alt, qual, filt,
+                info, fmt, self._sample_indexes)
+
+        if fmt is not None:
+            samples = self._parse_samples(row[9:], fmt, record)
+            record.samples = samples
+
+        return record
+
+    def fetch(self, chrom, start, end=None):
+        """ fetch records from a Tabix indexed VCF, requires pysam
+            if start and end are specified, return iterator over positions
+            if end not specified, return individual ``_Call`` at start or None
+        """
+        if not pysam:
+            raise Exception('pysam not available, try "pip install pysam"?')
+
+        if not self.filename:
+            raise Exception('Please provide a filename (or a "normal" fsock)')
+
+        if not self._tabix:
+            self._tabix = pysam.Tabixfile(self.filename)
+
+        if self._prepend_chr and chrom[:3] == 'chr':
+            chrom = chrom[3:]
+
+        # not sure why tabix needs position -1
+        start = start - 1
+
+        if end is None:
+            self.reader = self._tabix.fetch(chrom, start, start + 1)
+            try:
+                return self.next()
+            except StopIteration:
+                return None
+
+        self.reader = self._tabix.fetch(chrom, start, end)
+        return self
+
+
+class Writer(object):
+    """ VCF Writer """
+
+    # Reverse keys and values in header field count dictionary
+    counts = dict((v,k) for k,v in field_counts.iteritems())
+
+    def __init__(self, stream, template, lineterminator="\n"):
+        self.writer = csv.writer(stream, delimiter="\t", lineterminator=lineterminator)
+        self.template = template
+        self.stream = stream
+
+        # Order keys for INFO fields defined in the header (undefined fields
+        # get a maximum key).
+        self.info_order = collections.defaultdict(
+            lambda: len(template.infos),
+            dict(zip(template.infos.iterkeys(), itertools.count())))
+
+        two = '##{key}=<ID={0},Description="{1}">\n'
+        four = '##{key}=<ID={0},Number={num},Type={2},Description="{3}">\n'
+        _num = self._fix_field_count
+        for (key, vals) in template.metadata.iteritems():
+            if key in SINGULAR_METADATA:
+                vals = [vals]
+            for val in vals:
+                if isinstance(val, dict):
+                    values = ','.join('{0}={1}'.format(key, value)
+                                      for key, value in val.items())
+                    stream.write('##{0}=<{1}>\n'.format(key, values))
+                else:
+                    stream.write('##{0}={1}\n'.format(key, val))
+        for line in template.infos.itervalues():
+            stream.write(four.format(key="INFO", *line, num=_num(line.num)))
+        for line in template.formats.itervalues():
+            stream.write(four.format(key="FORMAT", *line, num=_num(line.num)))
+        for line in template.filters.itervalues():
+            stream.write(two.format(key="FILTER", *line))
+        for line in template.alts.itervalues():
+            stream.write(two.format(key="ALT", *line))
+        for line in template.contigs.itervalues():
+            stream.write('##contig=<ID={0},length={1}>\n'.format(*line))
+
+        self._write_header()
+
+    def _write_header(self):
+        # TODO: write INFO, etc
+        self.stream.write('#' + '\t'.join(self.template._column_headers
+                                          + self.template.samples) + '\n')
+
+    def write_record(self, record):
+        """ write a record to the file """
+        ffs = self._map(str, [record.CHROM, record.POS, record.ID, record.REF]) \
+              + [self._format_alt(record.ALT), record.QUAL or '.', self._format_filter(record.FILTER),
+                 self._format_info(record.INFO)]
+        if record.FORMAT:
+            ffs.append(record.FORMAT)
+
+        samples = [self._format_sample(record.FORMAT, sample)
+            for sample in record.samples]
+        self.writer.writerow(ffs + samples)
+
+    def flush(self):
+        """Flush the writer"""
+        try:
+            self.stream.flush()
+        except AttributeError:
+            pass
+
+    def close(self):
+        """Close the writer"""
+        try:
+            self.stream.close()
+        except AttributeError:
+            pass
+
+    def _fix_field_count(self, num_str):
+        """Restore header number to original state"""
+        if num_str not in self.counts:
+            return num_str
+        else:
+            return self.counts[num_str]
+
+    def _format_alt(self, alt):
+        return ','.join(self._map(str, alt))
+
+    def _format_filter(self, flt):
+        if flt == []:
+            return 'PASS'
+        return self._stringify(flt, none='.', delim=';')
+
+    def _format_info(self, info):
+        if not info:
+            return '.'
+        def order_key(field):
+            # Order by header definition first, alphabetically second.
+            return self.info_order[field], field
+        return ';'.join(self._stringify_pair(f, info[f]) for f in
+                        sorted(info, key=order_key))
+
+    def _format_sample(self, fmt, sample):
+        try:
+            # Try to get the GT value first.
+            gt = getattr(sample.data, 'GT')
+            # PyVCF stores './.' GT values as None, so we need to revert it back
+            # to './.' when writing.
+            if gt is None:
+                gt = './.'
+        except AttributeError:
+            # Failing that, try to check whether 'GT' is specified in the FORMAT
+            # field. If yes, use the recommended empty value ('./.')
+            if 'GT' in fmt:
+                gt = './.'
+            # Otherwise use an empty string as the value
+            else:
+                gt = ''
+        # If gt is an empty string (i.e. not stored), write all other data
+        if not gt:
+            return ':'.join([self._stringify(x) for x in sample.data])
+        # Otherwise use the GT values from above and combine it with the rest of
+        # the data.
+        # Note that this follows the VCF spec, where GT is always the first
+        # item whenever it is present.
+        else:
+            return ':'.join([gt] + [self._stringify(x) for x in sample.data[1:]])
+
+    def _stringify(self, x, none='.', delim=','):
+        if type(x) == type([]):
+            return delim.join(self._map(str, x, none))
+        return str(x) if x is not None else none
+
+    def _stringify_pair(self, x, y, none='.', delim=','):
+        if isinstance(y, bool):
+            return str(x) if y else ""
+        return "%s=%s" % (str(x), self._stringify(y, none=none, delim=delim))
+
+    def _map(self, func, iterable, none='.'):
+        '''``map``, but make None values none.'''
+        return [func(x) if x is not None else none
+                for x in iterable]
+
+
+def __update_readme():
+    import sys, vcf
+    file('README.rst', 'w').write(vcf.__doc__)
+
+
+# backwards compatibility
+VCFReader = Reader
+VCFWriter = Writer
diff --git a/vcf/test/1kg.sites.vcf b/vcf/test/1kg.sites.vcf
new file mode 100644
index 0000000..857a944
--- /dev/null
+++ b/vcf/test/1kg.sites.vcf
@@ -0,0 +1,200 @@
+##fileformat=VCFv4.1
+##INFO=<ID=LDAF,Number=1,Type=Float,Description="MLE Allele Frequency Accounting for LD">
+##INFO=<ID=AVGPOST,Number=1,Type=Float,Description="Average posterior probability from MaCH/Thunder">
+##INFO=<ID=RSQ,Number=1,Type=Float,Description="Genotype imputation quality from MaCH/Thunder">
+##INFO=<ID=ERATE,Number=1,Type=Float,Description="Per-marker Mutation rate from MaCH/Thunder">
+##INFO=<ID=THETA,Number=1,Type=Float,Description="Per-marker Transition rate from MaCH/Thunder">
+##INFO=<ID=CIEND,Number=2,Type=Integer,Description="Confidence interval around END for imprecise variants">
+##INFO=<ID=CIPOS,Number=2,Type=Integer,Description="Confidence interval around POS for imprecise variants">
+##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
+##INFO=<ID=HOMLEN,Number=.,Type=Integer,Description="Length of base pair identical micro-homology at event breakpoints">
+##INFO=<ID=HOMSEQ,Number=.,Type=String,Description="Sequence of base pair identical micro-homology at event breakpoints">
+##INFO=<ID=SVLEN,Number=1,Type=Integer,Description="Difference in length between REF and ALT alleles">
+##INFO=<ID=SVTYPE,Number=1,Type=String,Description="Type of structural variant">
+##INFO=<ID=AC,Number=.,Type=Integer,Description="Alternate Allele Count">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total Allele Count">
+##ALT=<ID=DEL,Description="Deletion">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=DS,Number=1,Type=Float,Description="Genotype dosage from MaCH/Thunder">
+##FORMAT=<ID=GL,Number=.,Type=Float,Description="Genotype Likelihoods">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele, ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/pilot_data/technical/reference/ancestral_alignments/README">
+##INFO=<ID=AF,Number=1,Type=Float,Description="Global Allele Frequency based on AC/AN">
+##INFO=<ID=AMR_AF,Number=1,Type=Float,Description="Allele Frequency for samples from AMR based on AC/AN">
+##INFO=<ID=ASN_AF,Number=1,Type=Float,Description="Allele Frequency for samples from ASN based on AC/AN">
+##INFO=<ID=AFR_AF,Number=1,Type=Float,Description="Allele Frequency for samples from AFR based on AC/AN">
+##INFO=<ID=EUR_AF,Number=1,Type=Float,Description="Allele Frequency for samples from EUR based on AC/AN">
+##INFO=<ID=VT,Number=1,Type=String,Description="indicates what type of variant the line represents">
+##INFO=<ID=SNPSOURCE,Number=.,Type=String,Description="indicates if a snp was called when analysing the low coverage or exome alignment data">
+##reference=GRCh37
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
+1	10583	rs58108140	G	A	100	PASS	AVGPOST=0.7707;RSQ=0.4319;LDAF=0.2327;ERATE=0.0161;AN=2184;VT=SNP;AA=.;THETA=0.0046;AC=314;SNPSOURCE=LOWCOV;AF=0.14;ASN_AF=0.13;AMR_AF=0.17;AFR_AF=0.04;EUR_AF=0.21
+1	10611	rs189107123	C	G	100	PASS	AN=2184;THETA=0.0077;VT=SNP;AA=.;AC=41;ERATE=0.0048;SNPSOURCE=LOWCOV;AVGPOST=0.9330;LDAF=0.0479;RSQ=0.3475;AF=0.02;ASN_AF=0.01;AMR_AF=0.03;AFR_AF=0.01;EUR_AF=0.02
+1	13302	rs180734498	C	T	100	PASS	THETA=0.0048;AN=2184;AC=249;VT=SNP;AA=.;RSQ=0.6281;LDAF=0.1573;SNPSOURCE=LOWCOV;AVGPOST=0.8895;ERATE=0.0058;AF=0.11;ASN_AF=0.02;AMR_AF=0.08;AFR_AF=0.21;EUR_AF=0.14
+1	13327	rs144762171	G	C	100	PASS	AVGPOST=0.9698;AN=2184;VT=SNP;AA=.;RSQ=0.6482;AC=59;SNPSOURCE=LOWCOV;ERATE=0.0012;LDAF=0.0359;THETA=0.0204;AF=0.03;ASN_AF=0.02;AMR_AF=0.03;AFR_AF=0.02;EUR_AF=0.04
+1	13957	rs201747181	TC	T	28	PASS	AA=TC;AC=35;AF=0.02;AFR_AF=0.02;AMR_AF=0.02;AN=2184;ASN_AF=0.01;AVGPOST=0.8711;ERATE=0.0065;EUR_AF=0.02;LDAF=0.0788;RSQ=0.2501;THETA=0.0100;VT=INDEL
+1	13980	rs151276478	T	C	100	PASS	AN=2184;AC=45;ERATE=0.0034;THETA=0.0139;RSQ=0.3603;LDAF=0.0525;VT=SNP;AA=.;AVGPOST=0.9221;SNPSOURCE=LOWCOV;AF=0.02;ASN_AF=0.02;AMR_AF=0.02;AFR_AF=0.01;EUR_AF=0.02
+1	30923	rs140337953	G	T	100	PASS	AC=1584;AA=T;AN=2184;RSQ=0.5481;VT=SNP;THETA=0.0162;SNPSOURCE=LOWCOV;ERATE=0.0183;LDAF=0.6576;AVGPOST=0.7335;AF=0.73;ASN_AF=0.89;AMR_AF=0.80;AFR_AF=0.48;EUR_AF=0.73
+1	46402	rs199681827	C	CTGT	31	PASS	AA=.;AC=8;AF=0.0037;AFR_AF=0.01;AN=2184;ASN_AF=0.0017;AVGPOST=0.8325;ERATE=0.0072;LDAF=0.0903;RSQ=0.0960;THETA=0.0121;VT=INDEL
+1	47190	rs200430748	G	GA	192	PASS	AA=G;AC=29;AF=0.01;AFR_AF=0.06;AMR_AF=0.0028;AN=2184;AVGPOST=0.9041;ERATE=0.0041;LDAF=0.0628;RSQ=0.2883;THETA=0.0153;VT=INDEL
+1	51476	rs187298206	T	C	100	PASS	ERATE=0.0021;AA=C;AC=18;AN=2184;VT=SNP;THETA=0.0103;LDAF=0.0157;SNPSOURCE=LOWCOV;AVGPOST=0.9819;RSQ=0.5258;AF=0.01;ASN_AF=0.01;AMR_AF=0.01;AFR_AF=0.01;EUR_AF=0.01
+1	51479	rs116400033	T	A	100	PASS	RSQ=0.7414;AVGPOST=0.9085;AA=T;AN=2184;THETA=0.0131;AC=235;VT=SNP;LDAF=0.1404;SNPSOURCE=LOWCOV;ERATE=0.0012;AF=0.11;ASN_AF=0.0035;AMR_AF=0.16;AFR_AF=0.03;EUR_AF=0.22
+1	51914	rs190452223	T	G	100	PASS	ERATE=0.0004;AVGPOST=0.9985;THETA=0.0159;AA=T;AN=2184;VT=SNP;SNPSOURCE=LOWCOV;AC=1;RSQ=0.4089;LDAF=0.0012;AF=0.0005;ASN_AF=0.0017
+1	51935	rs181754315	C	T	100	PASS	THETA=0.0126;AA=C;AN=2184;RSQ=0.1888;AVGPOST=0.9972;LDAF=0.0015;VT=SNP;AC=0;SNPSOURCE=LOWCOV;ERATE=0.0006;AF=0
+1	51954	rs185832753	G	C	100	PASS	LDAF=0.0021;AA=G;AN=2184;RSQ=0.4692;AVGPOST=0.9975;VT=SNP;SNPSOURCE=LOWCOV;THETA=0.0029;ERATE=0.0006;AC=2;AF=0.0009;AMR_AF=0.01
+1	52058	rs62637813	G	C	100	PASS	AA=C;ERATE=0.0057;AN=2184;AVGPOST=0.9264;VT=SNP;RSQ=0.4882;AC=64;SNPSOURCE=LOWCOV;LDAF=0.0620;THETA=0.0069;AF=0.03;ASN_AF=0.0017;AMR_AF=0.04;AFR_AF=0.02;EUR_AF=0.05
+1	52144	rs190291950	T	A	100	PASS	THETA=0.0093;ERATE=0.0013;LDAF=0.0156;AA=T;AN=2184;VT=SNP;RSQ=0.5220;AVGPOST=0.9811;SNPSOURCE=LOWCOV;AC=21;AF=0.01;ASN_AF=0.0035;AMR_AF=0.01;AFR_AF=0.01;EUR_AF=0.01
+1	52185	rs201374420	TTAA	T	244	PASS	AA=.;AC=10;AF=0.0046;AFR_AF=0.0020;AMR_AF=0.02;AN=2184;ASN_AF=0.0035;AVGPOST=0.9840;ERATE=0.0037;LDAF=0.0124;RSQ=0.4271;THETA=0.0232;VT=INDEL
+1	52238	rs150021059	T	G	100	PASS	THETA=0.0132;AA=G;AN=2184;RSQ=0.6256;VT=SNP;ERATE=0.0026;AVGPOST=0.8617;SNPSOURCE=LOWCOV;AC=1941;LDAF=0.8423;AF=0.89;ASN_AF=0.99;AMR_AF=0.93;AFR_AF=0.64;EUR_AF=0.95
+1	53234	rs199502715	CAT	C	227	PASS	AA=CAT;AC=10;AF=0.0046;AFR_AF=0.02;AMR_AF=0.0028;AN=2184;AVGPOST=0.9936;ERATE=0.0007;LDAF=0.0074;RSQ=0.6237;THETA=0.0119;VT=INDEL
+1	54353	rs140052487	C	A	100	PASS	THETA=0.0026;AA=C;AN=2184;AC=16;VT=SNP;RSQ=0.5074;SNPSOURCE=LOWCOV;AVGPOST=0.9844;LDAF=0.0146;ERATE=0.0058;AF=0.01;ASN_AF=0.01;AMR_AF=0.0028;AFR_AF=0.02;EUR_AF=0.0013
+1	54421	rs146477069	A	G	100	PASS	ERATE=0.0013;AN=2184;AC=220;VT=SNP;RSQ=0.7869;AVGPOST=0.9461;AA=A;THETA=0.0025;SNPSOURCE=LOWCOV;LDAF=0.1190;AF=0.10;ASN_AF=0.25;AMR_AF=0.12;AFR_AF=0.03;EUR_AF=0.02
+1	54490	rs141149254	G	A	100	PASS	ERATE=0.0004;THETA=0.0074;AA=G;AN=2184;VT=SNP;RSQ=0.8366;AVGPOST=0.9646;AC=175;SNPSOURCE=LOWCOV;LDAF=0.0929;AF=0.08;ASN_AF=0.0035;AMR_AF=0.12;AFR_AF=0.03;EUR_AF=0.15
+1	54676	rs2462492	C	T	100	PASS	LDAF=0.1528;RSQ=0.6989;AA=T;AN=2184;AC=267;VT=SNP;AVGPOST=0.8998;SNPSOURCE=LOWCOV;THETA=0.0110;ERATE=0.0037;AF=0.12;ASN_AF=0.02;AMR_AF=0.20;AFR_AF=0.09;EUR_AF=0.18
+1	54753	rs143174675	T	G	100	PASS	AA=T;AN=2184;RSQ=0.6820;AC=65;VT=SNP;THETA=0.0080;ERATE=0.0016;SNPSOURCE=LOWCOV;AVGPOST=0.9697;LDAF=0.0399;AF=0.03;AMR_AF=0.04;AFR_AF=0.07;EUR_AF=0.03
+1	55164	rs3091274	C	A	100	PASS	AN=2184;VT=SNP;ERATE=0.0045;AA=A;THETA=0.0162;SNPSOURCE=LOWCOV;AC=1955;RSQ=0.6373;AVGPOST=0.8686;LDAF=0.8489;AF=0.90;ASN_AF=0.99;AMR_AF=0.94;AFR_AF=0.65;EUR_AF=0.96
+1	55249	rs200769871	C	CTATGG	443	PASS	AA=C;AC=151;AF=0.07;AFR_AF=0.03;AMR_AF=0.08;AN=2184;ASN_AF=0.16;AVGPOST=0.9073;ERATE=0.0063;EUR_AF=0.02;LDAF=0.0968;RSQ=0.5891;THETA=0.0038;VT=INDEL
+1	55299	rs10399749	C	T	100	PASS	RSQ=0.7602;LDAF=0.2954;AN=2184;VT=SNP;ERATE=0.0051;AA=c;AC=554;SNPSOURCE=LOWCOV;AVGPOST=0.8845;THETA=0.0070;AF=0.25;ASN_AF=0.33;AMR_AF=0.21;AFR_AF=0.39;EUR_AF=0.13
+1	55313	rs182462964	A	T	100	PASS	ERATE=0.0004;RSQ=0.6112;AVGPOST=0.9994;AN=2184;VT=SNP;THETA=0.0057;AA=A;SNPSOURCE=LOWCOV;AC=1;LDAF=0.0008;AF=0.0005;AFR_AF=0.0020
+1	55326	rs3107975	T	C	100	PASS	AA=C;ERATE=0.0074;AN=2184;THETA=0.0085;VT=SNP;SNPSOURCE=LOWCOV;AVGPOST=0.9622;AC=90;RSQ=0.6901;LDAF=0.0562;AF=0.04;ASN_AF=0.07;AMR_AF=0.02;AFR_AF=0.07;EUR_AF=0.01
+1	55330	rs185215913	G	A	100	PASS	ERATE=0.0005;AA=G;AN=2184;VT=SNP;THETA=0.0086;AVGPOST=0.9988;LDAF=0.0011;SNPSOURCE=LOWCOV;AC=1;RSQ=0.4701;AF=0.0005;AFR_AF=0.0020
+1	55367	rs190850374	G	A	100	PASS	ERATE=0.0004;THETA=0.0044;AA=G;AN=2184;VT=SNP;LDAF=0.0029;RSQ=0.3860;SNPSOURCE=LOWCOV;AVGPOST=0.9961;AC=2;AF=0.0009;AMR_AF=0.01
+1	55388	rs182711216	C	T	100	PASS	THETA=0.0102;ERATE=0.0005;AA=C;AVGPOST=0.9983;AN=2184;LDAF=0.0010;VT=SNP;RSQ=0.2348;SNPSOURCE=LOWCOV;AC=1;AF=0.0005;ASN_AF=0.0017
+1	55394	rs2949420	T	A	100	PASS	AC=18;AN=2184;VT=SNP;AA=A;RSQ=0.4995;AVGPOST=0.9784;LDAF=0.0171;SNPSOURCE=LOWCOV;ERATE=0.0012;THETA=0.0063;AF=0.01;AMR_AF=0.01;AFR_AF=0.0041;EUR_AF=0.02
+1	55416	rs193242050	G	A	100	PASS	AA=G;AN=2184;AVGPOST=0.9944;VT=SNP;LDAF=0.0064;AC=9;THETA=0.0019;RSQ=0.6553;SNPSOURCE=LOWCOV;ERATE=0.0006;AF=0.0041;AFR_AF=0.02
+1	55427	rs183189405	T	C	100	PASS	THETA=0.0054;AA=T;AN=2184;VT=SNP;AVGPOST=0.9969;LDAF=0.0020;SNPSOURCE=LOWCOV;AC=1;RSQ=0.2759;ERATE=0.0007;AF=0.0005;AFR_AF=0.0020
+1	55816	rs187434873	G	A	100	PASS	AN=2184;THETA=0.0119;VT=SNP;AC=10;RSQ=0.4578;AA=A;SNPSOURCE=LOWCOV;AVGPOST=0.9844;LDAF=0.0108;ERATE=0.0007;AF=0.0046;AMR_AF=0.01;EUR_AF=0.01
+1	55850	rs191890754	C	G	100	PASS	AVGPOST=0.9921;AA=G;AN=2184;VT=SNP;RSQ=0.4083;THETA=0.0045;LDAF=0.0056;AC=5;SNPSOURCE=LOWCOV;ERATE=0.0006;AF=0.0023;EUR_AF=0.01
+1	55852	rs184233019	G	C	100	PASS	THETA=0.0137;AA=G;AN=2184;RSQ=0.5433;ERATE=0.0009;LDAF=0.0046;VT=SNP;AVGPOST=0.9953;AC=5;SNPSOURCE=LOWCOV;AF=0.0023;AMR_AF=0.01;EUR_AF=0.0013
+1	56644	rs143342222	A	C	100	PASS	AN=2184;AVGPOST=0.9962;LDAF=0.0040;ERATE=0.0024;VT=SNP;AA=A;RSQ=0.5700;AC=5;SNPSOURCE=LOWCOV;THETA=0.0117;AF=0.0023;AFR_AF=0.01
+1	57952	rs189727433	A	C	100	PASS	AA=C;ERATE=0.0085;AN=2184;LDAF=0.7878;VT=SNP;THETA=0.0076;RSQ=0.4712;AC=1902;SNPSOURCE=LOWCOV;AVGPOST=0.7578;AF=0.87;ASN_AF=0.98;AMR_AF=0.91;AFR_AF=0.64;EUR_AF=0.91
+1	58814	rs114420996	G	A	100	PASS	AC=223;THETA=0.0032;AA=G;AN=2184;RSQ=0.9087;LDAF=0.1074;VT=SNP;SNPSOURCE=LOWCOV;ERATE=0.0006;AVGPOST=0.9777;AF=0.10;ASN_AF=0.03;AMR_AF=0.17;AFR_AF=0.20;EUR_AF=0.06
+1	59040	rs149755937	T	C	100	PASS	AVGPOST=0.9710;AC=115;AA=T;AN=2184;RSQ=0.8248;VT=SNP;ERATE=0.0017;THETA=0.0025;SNPSOURCE=LOWCOV;LDAF=0.0613;AF=0.05;ASN_AF=0.03;AMR_AF=0.15;AFR_AF=0.0041;EUR_AF=0.06
+1	60726	rs192328835	C	A	100	PASS	AVGPOST=0.9092;AN=2184;RSQ=0.5988;ERATE=0.0081;AC=144;VT=SNP;THETA=0.0045;AA=A;SNPSOURCE=LOWCOV;LDAF=0.0959;AF=0.07;ASN_AF=0.05;AMR_AF=0.10;AFR_AF=0.11;EUR_AF=0.03
+1	61442	rs74970982	A	G	100	PASS	LDAF=0.9152;AA=G;AN=2184;VT=SNP;ERATE=0.0026;RSQ=0.4867;AVGPOST=0.9004;SNPSOURCE=LOWCOV;THETA=0.0013;AC=2084;AF=0.95;ASN_AF=1.00;AMR_AF=0.97;AFR_AF=0.84;EUR_AF=0.99
+1	61462	rs56992750	T	A	100	PASS	THETA=0.0023;LDAF=0.0378;RSQ=0.7396;AA=T;AN=2184;AVGPOST=0.9773;VT=SNP;AC=68;SNPSOURCE=LOWCOV;ERATE=0.0012;AF=0.03;AMR_AF=0.02;AFR_AF=0.13
+1	61743	rs184286948	G	C	100	PASS	AVGPOST=0.9939;LDAF=0.0047;AA=G;AN=2184;VT=SNP;ERATE=0.0011;SNPSOURCE=LOWCOV;AC=4;THETA=0.0016;RSQ=0.4838;AF=0.0018;AMR_AF=0.01;EUR_AF=0.0026
+1	61987	rs76735897	A	G	100	PASS	THETA=0.0015;AN=2184;AC=569;VT=SNP;AA=A;RSQ=0.7192;AVGPOST=0.8533;LDAF=0.2944;SNPSOURCE=LOWCOV;ERATE=0.0012;AF=0.26;ASN_AF=0.07;AMR_AF=0.31;AFR_AF=0.25;EUR_AF=0.39
+1	61989	rs77573425	G	C	100	PASS	RSQ=0.7254;AVGPOST=0.8584;AA=G;AN=2184;LDAF=0.2849;VT=SNP;AC=555;THETA=0.0019;SNPSOURCE=LOWCOV;ERATE=0.0007;AF=0.25;ASN_AF=0.07;AMR_AF=0.31;AFR_AF=0.22;EUR_AF=0.39
+1	61993	rs190553843	C	T	100	PASS	AC=7;RSQ=0.6106;AA=C;THETA=0.0143;AN=2184;ERATE=0.0009;VT=SNP;AVGPOST=0.9953;SNPSOURCE=LOWCOV;LDAF=0.0050;AF=0.0032;AFR_AF=0.01
+1	62156	rs181864839	C	T	100	PASS	ERATE=0.0005;AA=C;AN=2184;AVGPOST=0.9979;LDAF=0.0015;VT=SNP;THETA=0.0094;SNPSOURCE=LOWCOV;AC=1;RSQ=0.4561;AF=0.0005;AFR_AF=0.0020
+1	62157	rs10399597	G	A	100	PASS	AVGPOST=0.9945;AA=G;AN=2184;ERATE=0.0025;VT=SNP;RSQ=0.5217;AC=5;THETA=0.0066;SNPSOURCE=LOWCOV;LDAF=0.0050;AF=0.0023;AFR_AF=0.01
+1	62162	rs140556834	G	A	100	PASS	AA=G;AN=2184;AC=8;LDAF=0.0057;VT=SNP;THETA=0.0018;ERATE=0.0017;RSQ=0.6089;AVGPOST=0.9948;SNPSOURCE=LOWCOV;AF=0.0037;AMR_AF=0.0028;AFR_AF=0.01;EUR_AF=0.0013
+1	63276	rs185977555	G	A	100	PASS	RSQ=0.2744;AA=G;AN=2184;AVGPOST=0.9947;VT=SNP;ERATE=0.0010;SNPSOURCE=LOWCOV;AC=1;THETA=0.0010;LDAF=0.0031;AF=0.0005;AFR_AF=0.0020
+1	63297	rs188886746	G	A	100	PASS	ERATE=0.0005;AVGPOST=0.9986;AA=G;AN=2184;VT=SNP;AC=0;SNPSOURCE=LOWCOV;RSQ=0.2459;THETA=0.0024;LDAF=0.0008;AF=0
+1	63671	rs116440577	G	A	100	PASS	AA=G;AN=2184;ERATE=0.0047;LDAF=0.1773;VT=SNP;THETA=0.0072;AC=369;SNPSOURCE=LOWCOV;RSQ=0.8980;AVGPOST=0.9652;AF=0.17;ASN_AF=0.05;AMR_AF=0.22;AFR_AF=0.35;EUR_AF=0.11
+1	63735	rs201888535	CCTA	C	455	PASS	AA=CCTA;AC=829;AF=0.38;AFR_AF=0.13;AMR_AF=0.33;AN=2184;ASN_AF=0.69;AVGPOST=0.7654;ERATE=0.0047;EUR_AF=0.34;LDAF=0.4128;RSQ=0.6424;THETA=0.0062;VT=INDEL
+1	64649	rs181431124	A	C	100	PASS	RSQ=0.6975;AN=2184;VT=SNP;AA=.;ERATE=0.0008;AVGPOST=0.9918;SNPSOURCE=LOWCOV;AC=21;THETA=0.0024;LDAF=0.0114;AF=0.01;AMR_AF=0.01;EUR_AF=0.03
+1	66162	rs62639105	A	T	100	PASS	THETA=0.0026;ERATE=0.0166;LDAF=0.3089;AN=2184;VT=SNP;AA=.;AC=544;SNPSOURCE=LOWCOV;RSQ=0.5681;AVGPOST=0.7777;AF=0.25;ASN_AF=0.07;AMR_AF=0.30;AFR_AF=0.23;EUR_AF=0.38
+1	66176	rs28552463	T	A	100	PASS	AN=2184;RSQ=0.4451;VT=SNP;AA=.;THETA=0.0095;LDAF=0.0631;AC=70;SNPSOURCE=LOWCOV;ERATE=0.0061;AVGPOST=0.9210;AF=0.03;ASN_AF=0.0017;AMR_AF=0.01;AFR_AF=0.13;EUR_AF=0.0013
+1	66219	rs181028663	A	T	100	PASS	LDAF=0.1137;ERATE=0.0074;AN=2184;VT=SNP;AA=.;AC=68;THETA=0.0059;RSQ=0.2946;AVGPOST=0.8268;SNPSOURCE=LOWCOV;AF=0.03;ASN_AF=0.08;AMR_AF=0.04;AFR_AF=0.01;EUR_AF=0.01
+1	66331	rs186063952	A	C	100	PASS	THETA=0.0126;AVGPOST=0.7656;RSQ=0.1616;AN=2184;LDAF=0.1387;ERATE=0.0093;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=42;AF=0.02;ASN_AF=0.0035;AMR_AF=0.01;AFR_AF=0.07
+1	66442	rs192044252	T	A	100	PASS	RSQ=0.1763;AVGPOST=0.7894;AN=2184;THETA=0.0031;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=36;ERATE=0.0107;LDAF=0.1241;AF=0.02;ASN_AF=0.0035;AMR_AF=0.03;AFR_AF=0.02;EUR_AF=0.01
+1	66457	rs13328655	T	A	100	PASS	ERATE=0.0085;AN=2184;VT=SNP;AA=.;AC=31;AVGPOST=0.8340;LDAF=0.0957;RSQ=0.1836;SNPSOURCE=LOWCOV;THETA=0.0024;AF=0.01;ASN_AF=0.01;AMR_AF=0.01;AFR_AF=0.03;EUR_AF=0.01
+1	66507	rs12401368	T	A	100	PASS	ERATE=0.0197;AN=2184;VT=SNP;AA=.;THETA=0.0122;SNPSOURCE=LOWCOV;AC=170;RSQ=0.2110;LDAF=0.2457;AVGPOST=0.6536;AF=0.08;ASN_AF=0.07;AMR_AF=0.09;AFR_AF=0.05;EUR_AF=0.09
+1	67179	rs149952626	C	G	100	PASS	AVGPOST=0.9946;AN=2184;VT=SNP;AA=.;THETA=0.0046;SNPSOURCE=LOWCOV;ERATE=0.0012;AC=11;RSQ=0.6333;LDAF=0.0069;AF=0.01;ASN_AF=0.02
+1	67181	rs77662731	A	G	100	PASS	AVGPOST=0.9817;THETA=0.0096;ERATE=0.0013;AN=2184;RSQ=0.8542;AC=104;LDAF=0.0529;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AF=0.05;AMR_AF=0.02;AFR_AF=0.20
+1	69511	rs75062661	A	G	100	PASS	LDAF=0.6051;AC=1424;ERATE=0.0237;AN=2184;RSQ=0.5669;VT=SNP;AA=.;AVGPOST=0.7173;SNPSOURCE=LOWCOV;THETA=0.0052;AF=0.65;ASN_AF=0.87;AMR_AF=0.65;AFR_AF=0.33;EUR_AF=0.70
+1	69534	rs190717287	T	C	100	PASS	AVGPOST=0.9986;LDAF=0.0013;AN=2184;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=1;RSQ=0.4002;THETA=0.0016;ERATE=0.0006;AF=0.0005;ASN_AF=0.0017
+1	69536	rs200013390	C	T	100	PASS	AA=.;AC=0;AF=0;AN=2184;AVGPOST=0.9986;ERATE=0.0006;LDAF=0.0008;RSQ=0.0677;SNPSOURCE=EXOME;THETA=0.0087;VT=SNP
+1	72119	rs199639004	G	GTA	158	PASS	AA=.;AC=8;AF=0.0037;AMR_AF=0.0028;AN=2184;ASN_AF=0.01;AVGPOST=0.9589;ERATE=0.0026;EUR_AF=0.0013;LDAF=0.0243;RSQ=0.2268;THETA=0.0016;VT=INDEL
+1	72148	rs182862337	C	T	100	PASS	AN=2184;RSQ=0.2794;THETA=0.0130;VT=SNP;AA=.;LDAF=0.0019;AVGPOST=0.9971;SNPSOURCE=LOWCOV;AC=1;ERATE=0.0007;AF=0.0005;AMR_AF=0.0028
+1	72297	rs200651397	G	GTAT	160	PASS	AA=G;AC=19;AF=0.01;AMR_AF=0.02;AN=2184;ASN_AF=0.01;AVGPOST=0.9383;ERATE=0.0055;EUR_AF=0.01;LDAF=0.0399;RSQ=0.3194;THETA=0.0064;VT=INDEL
+1	73841	rs143773730	C	T	100	PASS	ERATE=0.0303;THETA=0.0044;AN=2184;AVGPOST=0.8178;RSQ=0.5832;VT=SNP;AA=.;SNPSOURCE=LOWCOV;LDAF=0.2588;AC=425;AF=0.19;ASN_AF=0.15;AMR_AF=0.22;AFR_AF=0.17;EUR_AF=0.23
+1	77462	rs188023513	G	A	100	PASS	LDAF=0.1685;AN=2184;AVGPOST=0.8149;VT=SNP;AA=.;RSQ=0.4624;AC=198;THETA=0.0100;SNPSOURCE=LOWCOV;ERATE=0.0222;AF=0.09;ASN_AF=0.11;AMR_AF=0.12;AFR_AF=0.08;EUR_AF=0.07
+1	77470	rs192898053	T	C	100	PASS	LDAF=0.0047;AN=2184;VT=SNP;AA=.;ERATE=0.0011;AVGPOST=0.9918;THETA=0.0025;RSQ=0.1818;SNPSOURCE=LOWCOV;AC=1;AF=0.0005;AFR_AF=0.0020
+1	77874	rs184538873	G	A	100	PASS	THETA=0.0068;LDAF=0.0516;AN=2184;VT=SNP;AA=.;AVGPOST=0.9594;ERATE=0.0011;AC=87;SNPSOURCE=LOWCOV;RSQ=0.6970;AF=0.04;ASN_AF=0.01;AMR_AF=0.12;AFR_AF=0.0041;EUR_AF=0.04
+1	77961	rs78385339	G	A	100	PASS	AVGPOST=0.9114;AN=2184;VT=SNP;AA=.;THETA=0.0072;RSQ=0.6667;ERATE=0.0011;SNPSOURCE=LOWCOV;AC=192;LDAF=0.1180;AF=0.09;ASN_AF=0.20;AMR_AF=0.14;AFR_AF=0.01;EUR_AF=0.03
+1	79033	rs62641298	A	G	100	PASS	AVGPOST=0.7371;THETA=0.0022;LDAF=0.7962;AN=2184;ERATE=0.0054;VT=SNP;AA=.;AC=1961;SNPSOURCE=LOWCOV;RSQ=0.3963;AF=0.90;ASN_AF=0.98;AMR_AF=0.95;AFR_AF=0.65;EUR_AF=0.97
+1	79050	rs62641299	G	T	100	PASS	AC=1871;AN=2184;THETA=0.0031;RSQ=0.3928;VT=SNP;AA=.;AVGPOST=0.6803;SNPSOURCE=LOWCOV;LDAF=0.7318;ERATE=0.0107;AF=0.86;ASN_AF=0.98;AMR_AF=0.93;AFR_AF=0.54;EUR_AF=0.94
+1	79137	rs143777184	A	T	100	PASS	AN=2184;AC=55;ERATE=0.0009;AVGPOST=0.9773;LDAF=0.0324;VT=SNP;AA=.;THETA=0.0091;SNPSOURCE=LOWCOV;RSQ=0.7309;AF=0.03;AMR_AF=0.01;AFR_AF=0.10
+1	79417	rs184768190	C	T	100	PASS	ERATE=0.0005;THETA=0.0166;AN=2184;RSQ=0.5026;AVGPOST=0.9975;VT=SNP;AA=.;LDAF=0.0022;SNPSOURCE=LOWCOV;AC=2;AF=0.0009;ASN_AF=0.0035
+1	79772	rs147215883	C	G	100	PASS	LDAF=0.1066;AN=2184;THETA=0.0138;RSQ=0.7199;VT=SNP;AA=.;AVGPOST=0.9271;AC=176;ERATE=0.0011;SNPSOURCE=LOWCOV;AF=0.08;ASN_AF=0.07;AMR_AF=0.06;AFR_AF=0.10;EUR_AF=0.09
+1	79872	rs189224661	T	G	100	PASS	THETA=0.0054;AN=2184;LDAF=0.0057;VT=SNP;AA=.;ERATE=0.0017;AC=9;AVGPOST=0.9956;SNPSOURCE=LOWCOV;RSQ=0.6548;AF=0.0041;AFR_AF=0.02
+1	80454	rs144226842	G	C	100	PASS	RSQ=0.6549;LDAF=0.0035;AN=2184;AVGPOST=0.9975;VT=SNP;AA=.;AC=5;SNPSOURCE=LOWCOV;THETA=0.0110;ERATE=0.0015;AF=0.0023;ASN_AF=0.01
+1	81949	rs181567186	T	C	100	PASS	AN=2184;ERATE=0.0009;VT=SNP;AA=.;AVGPOST=0.9948;LDAF=0.0030;SNPSOURCE=LOWCOV;AC=1;THETA=0.0052;RSQ=0.2129;AF=0.0005;ASN_AF=0.0017
+1	82163	rs139113303	G	A	100	PASS	AN=2184;LDAF=0.0375;ERATE=0.0009;VT=SNP;AA=.;RSQ=0.7842;AC=66;THETA=0.0053;SNPSOURCE=LOWCOV;AVGPOST=0.9761;AF=0.03;ASN_AF=0.0017;AMR_AF=0.01;AFR_AF=0.0020;EUR_AF=0.08
+1	82249	rs1851945	A	G	100	PASS	THETA=0.0137;LDAF=0.0712;AVGPOST=0.9150;AN=2184;VT=SNP;AA=.;RSQ=0.4689;AC=75;ERATE=0.0116;SNPSOURCE=LOWCOV;AF=0.03;ASN_AF=0.03;AMR_AF=0.04;AFR_AF=0.02;EUR_AF=0.04
+1	82609	rs149189449	C	G	100	PASS	ERATE=0.0005;AN=2184;LDAF=0.0364;VT=SNP;AA=.;AC=68;AVGPOST=0.9822;RSQ=0.8408;SNPSOURCE=LOWCOV;THETA=0.0024;AF=0.03;AMR_AF=0.02;AFR_AF=0.0020;EUR_AF=0.08
+1	82676	rs185237834	T	G	100	PASS	LDAF=0.1144;AN=2184;AVGPOST=0.9264;VT=SNP;AA=.;RSQ=0.7176;AC=198;THETA=0.0025;SNPSOURCE=LOWCOV;ERATE=0.0056;AF=0.09;ASN_AF=0.07;AMR_AF=0.08;AFR_AF=0.12;EUR_AF=0.10
+1	82734	rs4030331	T	C	100	PASS	AN=2184;THETA=0.0008;VT=SNP;AA=.;ERATE=0.0158;RSQ=0.6316;AVGPOST=0.8280;LDAF=0.2433;SNPSOURCE=LOWCOV;AC=435;AF=0.20;ASN_AF=0.15;AMR_AF=0.28;AFR_AF=0.24;EUR_AF=0.17
+1	82957	rs189774606	C	T	100	PASS	RSQ=0.5163;AN=2184;VT=SNP;AA=.;LDAF=0.0072;THETA=0.0028;AC=9;AVGPOST=0.9918;SNPSOURCE=LOWCOV;ERATE=0.0012;AF=0.0041;AMR_AF=0.01;AFR_AF=0.01
+1	83084	rs181193408	T	A	100	PASS	AN=2184;AVGPOST=0.8261;VT=SNP;AA=.;RSQ=0.5750;AC=1914;LDAF=0.8278;SNPSOURCE=LOWCOV;ERATE=0.0061;THETA=0.0064;AF=0.88;ASN_AF=0.99;AMR_AF=0.92;AFR_AF=0.58;EUR_AF=0.96
+1	83088	rs186081601	G	C	100	PASS	ERATE=0.0013;AN=2184;LDAF=0.0043;VT=SNP;AA=.;AVGPOST=0.9922;RSQ=0.1618;THETA=0.0019;SNPSOURCE=LOWCOV;AC=1;AF=0.0005;AFR_AF=0.0020
+1	83771	rs189906733	T	G	100	PASS	RSQ=0.6473;AN=2184;AVGPOST=0.9871;VT=SNP;AA=.;AC=24;ERATE=0.0011;SNPSOURCE=LOWCOV;THETA=0.0043;LDAF=0.0158;AF=0.01;AMR_AF=0.01;AFR_AF=0.04;EUR_AF=0.0013
+1	83977	rs180759811	A	G	100	PASS	AN=2184;ERATE=0.0009;VT=SNP;AA=.;THETA=0.0059;LDAF=0.0038;RSQ=0.2074;SNPSOURCE=LOWCOV;AC=1;AVGPOST=0.9932;AF=0.0005;AFR_AF=0.0020
+1	84002	rs28850140	G	A	100	PASS	THETA=0.0050;ERATE=0.0211;AN=2184;AC=236;VT=SNP;AA=.;AVGPOST=0.8144;LDAF=0.1921;SNPSOURCE=LOWCOV;RSQ=0.4810;AF=0.11;ASN_AF=0.12;AMR_AF=0.15;AFR_AF=0.07;EUR_AF=0.11
+1	84005	rs202079949	AG	A	78	PASS	AA=.;AC=52;AF=0.02;AFR_AF=0.02;AMR_AF=0.03;AN=2184;ASN_AF=0.01;AVGPOST=0.9360;ERATE=0.0049;EUR_AF=0.04;LDAF=0.0514;RSQ=0.4690;THETA=0.0005;VT=INDEL
+1	84010	rs186443818	G	A	100	PASS	AVGPOST=0.9169;AN=2184;VT=SNP;AA=.;AC=97;THETA=0.0087;LDAF=0.0789;SNPSOURCE=LOWCOV;ERATE=0.0061;RSQ=0.5318;AF=0.04;ASN_AF=0.03;AMR_AF=0.05;AFR_AF=0.03;EUR_AF=0.06
+1	84079	rs190867312	T	C	100	PASS	ERATE=0.0021;AN=2184;AC=6;VT=SNP;AA=.;LDAF=0.0049;AVGPOST=0.9956;RSQ=0.5906;SNPSOURCE=LOWCOV;THETA=0.0016;AF=0.0027;AMR_AF=0.0028;AFR_AF=0.01
+1	84139	rs183605470	A	T	100	PASS	THETA=0.0023;AC=28;AN=2184;RSQ=0.6469;VT=SNP;AA=.;LDAF=0.0180;SNPSOURCE=LOWCOV;AVGPOST=0.9835;ERATE=0.0006;AF=0.01;ASN_AF=0.0017;AMR_AF=0.07;AFR_AF=0.0041
+1	84156	rs188652299	A	C	100	PASS	THETA=0.0009;AVGPOST=0.9936;ERATE=0.0014;RSQ=0.3359;AN=2184;VT=SNP;AA=.;LDAF=0.0044;SNPSOURCE=LOWCOV;AC=3;AF=0.0014;AMR_AF=0.0028;AFR_AF=0.0041
+1	84244	rs191297051	A	C	100	PASS	LDAF=0.1204;AN=2184;VT=SNP;AA=.;AVGPOST=0.9398;RSQ=0.7828;THETA=0.0025;ERATE=0.0018;SNPSOURCE=LOWCOV;AC=222;AF=0.10;ASN_AF=0.08;AMR_AF=0.08;AFR_AF=0.14;EUR_AF=0.11
+1	84295	rs183209871	G	A	100	PASS	LDAF=0.0067;AVGPOST=0.9946;AN=2184;THETA=0.0038;VT=SNP;AA=.;AC=9;SNPSOURCE=LOWCOV;ERATE=0.0007;RSQ=0.6599;AF=0.0041;AMR_AF=0.01;EUR_AF=0.01
+1	84346	rs187855973	T	C	100	PASS	THETA=0.0044;AN=2184;AVGPOST=0.9981;VT=SNP;AA=.;LDAF=0.0014;SNPSOURCE=LOWCOV;AC=1;ERATE=0.0007;RSQ=0.3659;AF=0.0005;EUR_AF=0.0013
+1	84453	rs191379015	C	G	100	PASS	LDAF=0.0021;RSQ=0.2866;AN=2184;VT=SNP;AA=.;THETA=0.0018;ERATE=0.0008;SNPSOURCE=LOWCOV;AC=1;AVGPOST=0.9968;AF=0.0005;AMR_AF=0.0028
+1	84705	rs183470350	T	G	100	PASS	LDAF=0.0033;AVGPOST=0.9943;AN=2184;VT=SNP;AA=.;THETA=0.0030;RSQ=0.2658;SNPSOURCE=LOWCOV;AC=2;ERATE=0.0007;AF=0.0009;AMR_AF=0.0028;EUR_AF=0.0013
+1	85063	rs187802690	T	C	100	PASS	THETA=0.0093;AN=2184;VT=SNP;AA=.;ERATE=0.0051;LDAF=0.0255;RSQ=0.6868;AVGPOST=0.9806;AC=38;SNPSOURCE=LOWCOV;AF=0.02;ASN_AF=0.01;AMR_AF=0.02;AFR_AF=0.01;EUR_AF=0.02
+1	85597	rs192472955	A	C	100	PASS	AC=145;AVGPOST=0.9322;AN=2184;LDAF=0.0880;VT=SNP;AA=.;RSQ=0.6993;SNPSOURCE=LOWCOV;THETA=0.0020;ERATE=0.0022;AF=0.07;AMR_AF=0.07;AFR_AF=0.11;EUR_AF=0.09
+1	85622	rs185273034	A	T	100	PASS	ERATE=0.0005;AVGPOST=0.9963;AN=2184;RSQ=0.5194;VT=SNP;AA=.;THETA=0.0174;LDAF=0.0034;SNPSOURCE=LOWCOV;AC=4;AF=0.0018;AFR_AF=0.01
+1	85892	rs147185795	A	G	100	PASS	AVGPOST=0.9936;RSQ=0.7759;AN=2184;VT=SNP;AA=.;LDAF=0.0122;SNPSOURCE=LOWCOV;AC=21;THETA=0.0116;ERATE=0.0007;AF=0.01;AMR_AF=0.0028;AFR_AF=0.04
+1	86000	rs140628094	A	C	100	PASS	AN=2184;LDAF=0.0062;VT=SNP;AA=.;AC=10;THETA=0.0018;ERATE=0.0008;RSQ=0.7700;SNPSOURCE=LOWCOV;AVGPOST=0.9968;AF=0.0046;AFR_AF=0.02
+1	86018	rs142878000	C	G	100	PASS	ERATE=0.0036;RSQ=0.7867;AVGPOST=0.9429;AN=2184;AC=213;LDAF=0.1166;VT=SNP;AA=.;THETA=0.0030;SNPSOURCE=LOWCOV;AF=0.10;ASN_AF=0.08;AMR_AF=0.08;AFR_AF=0.12;EUR_AF=0.11
+1	86028	rs114608975	T	C	100	PASS	ERATE=0.0005;AC=73;AN=2184;RSQ=0.8713;VT=SNP;AA=.;THETA=0.0108;SNPSOURCE=LOWCOV;AVGPOST=0.9841;LDAF=0.0388;AF=0.03;AMR_AF=0.02;AFR_AF=0.0041;EUR_AF=0.08
+1	86064	rs190167736	G	A	100	PASS	ERATE=0.0004;AN=2184;VT=SNP;AA=.;THETA=0.0081;SNPSOURCE=LOWCOV;AC=1;RSQ=0.5628;AVGPOST=0.9992;LDAF=0.0008;AF=0.0005;AFR_AF=0.0020
+1	86065	rs116504101	G	C	100	PASS	ERATE=0.0005;LDAF=0.0398;AN=2184;AVGPOST=0.9846;VT=SNP;AA=.;AC=76;THETA=0.0057;RSQ=0.8725;SNPSOURCE=LOWCOV;AF=0.03;AMR_AF=0.02;AFR_AF=0.01;EUR_AF=0.09
+1	86282	rs192830046	T	G	100	PASS	LDAF=0.0036;AN=2184;VT=SNP;AA=.;SNPSOURCE=LOWCOV;ERATE=0.0012;RSQ=0.2764;AVGPOST=0.9941;AC=2;THETA=0.0034;AF=0.0009;AMR_AF=0.0028;EUR_AF=0.0013
+1	86303	rs2949417	G	T	100	PASS	THETA=0.0021;RSQ=0.8008;LDAF=0.1194;AN=2184;AC=214;VT=SNP;AA=.;AVGPOST=0.9465;SNPSOURCE=LOWCOV;ERATE=0.0007;AF=0.10;ASN_AF=0.08;AMR_AF=0.08;AFR_AF=0.12;EUR_AF=0.11
+1	86331	rs115209712	A	G	100	PASS	THETA=0.0047;AN=2184;VT=SNP;AA=.;AC=216;LDAF=0.1195;RSQ=0.8119;ERATE=0.0008;AVGPOST=0.9495;SNPSOURCE=LOWCOV;AF=0.10;ASN_AF=0.08;AMR_AF=0.08;AFR_AF=0.12;EUR_AF=0.11
+1	86982	rs184970101	G	A	100	PASS	THETA=0.0050;AN=2184;AVGPOST=0.9979;LDAF=0.0015;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=1;ERATE=0.0006;RSQ=0.3541;AF=0.0005;AFR_AF=0.0020
+1	87021	rs188486692	T	C	100	PASS	AN=2184;RSQ=0.4348;VT=SNP;AA=.;THETA=0.0112;AVGPOST=0.9687;ERATE=0.0011;SNPSOURCE=LOWCOV;AC=19;LDAF=0.0221;AF=0.01;AMR_AF=0.01;AFR_AF=0.0041;EUR_AF=0.02
+1	87114	rs200095900	CT	C	192	PASS	AA=.;AC=8;AF=0.0037;AFR_AF=0.02;AN=2184;AVGPOST=0.9976;ERATE=0.0010;LDAF=0.0042;RSQ=0.7479;THETA=0.0149;VT=INDEL
+1	87190	rs1524602	G	A	100	PASS	AN=2184;LDAF=0.2822;VT=SNP;AA=.;RSQ=0.7549;THETA=0.0148;AC=540;SNPSOURCE=LOWCOV;ERATE=0.0096;AVGPOST=0.8739;AF=0.25;ASN_AF=0.29;AMR_AF=0.35;AFR_AF=0.38;EUR_AF=0.08
+1	87360	rs180907504	C	T	100	PASS	THETA=0.0014;AN=2184;ERATE=0.0025;RSQ=0.3869;VT=SNP;AA=.;AC=14;LDAF=0.0170;SNPSOURCE=LOWCOV;AVGPOST=0.9768;AF=0.01;ASN_AF=0.02;AMR_AF=0.0028;AFR_AF=0.01
+1	87409	rs139490478	C	T	100	PASS	AN=2184;AC=80;RSQ=0.8364;AVGPOST=0.9797;THETA=0.0075;VT=SNP;AA=.;ERATE=0.0011;SNPSOURCE=LOWCOV;LDAF=0.0438;AF=0.04;ASN_AF=0.0017;AMR_AF=0.02;AFR_AF=0.01;EUR_AF=0.09
+1	87590	rs185279164	G	A	100	PASS	THETA=0.0068;ERATE=0.0005;AN=2184;VT=SNP;AA=.;LDAF=0.0026;RSQ=0.6866;SNPSOURCE=LOWCOV;AC=4;AVGPOST=0.9982;AF=0.0018;AFR_AF=0.01
+1	87647	rs146836579	T	C	100	PASS	AN=2184;AC=111;THETA=0.0041;VT=SNP;AA=.;LDAF=0.0558;AVGPOST=0.9811;SNPSOURCE=LOWCOV;ERATE=0.0015;RSQ=0.8636;AF=0.05;AMR_AF=0.03;AFR_AF=0.20
+1	87755	rs140735660	G	A	100	PASS	ERATE=0.0027;RSQ=0.5060;AN=2184;AC=16;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AVGPOST=0.9847;LDAF=0.0138;THETA=0.0069;AF=0.01;AFR_AF=0.03
+1	87970	rs189643077	T	C	100	PASS	ERATE=0.0005;AN=2184;RSQ=0.5846;VT=SNP;AA=.;AVGPOST=0.9976;THETA=0.0053;LDAF=0.0025;SNPSOURCE=LOWCOV;AC=3;AF=0.0014;AFR_AF=0.01
+1	87978	rs182297743	G	A	100	PASS	AVGPOST=0.9963;THETA=0.0074;AN=2184;VT=SNP;AA=.;LDAF=0.0023;RSQ=0.2883;SNPSOURCE=LOWCOV;AC=1;ERATE=0.0006;AF=0.0005;AMR_AF=0.0028
+1	88136	rs59529791	G	A	100	PASS	RSQ=0.8406;AN=2184;VT=SNP;AA=.;ERATE=0.0010;THETA=0.0059;AVGPOST=0.9778;SNPSOURCE=LOWCOV;AC=106;LDAF=0.0548;AF=0.05;AMR_AF=0.03;AFR_AF=0.20
+1	88169	rs940550	C	T	100	PASS	RSQ=0.7811;AN=2184;VT=SNP;AA=.;THETA=0.0055;LDAF=0.2576;ERATE=0.0018;SNPSOURCE=LOWCOV;AC=506;AVGPOST=0.8932;AF=0.23;ASN_AF=0.29;AMR_AF=0.33;AFR_AF=0.33;EUR_AF=0.08
+1	88172	rs940551	G	A	100	PASS	RSQ=0.7703;AVGPOST=0.9669;LDAF=0.0483;AN=2184;ERATE=0.0009;VT=SNP;AA=.;THETA=0.0027;SNPSOURCE=LOWCOV;AC=86;AF=0.04;ASN_AF=0.01;AMR_AF=0.03;AFR_AF=0.01;EUR_AF=0.09
+1	88177	rs143215837	G	C	100	PASS	ERATE=0.0004;AN=2184;LDAF=0.0456;VT=SNP;AA=.;AVGPOST=0.9686;AC=82;THETA=0.0089;SNPSOURCE=LOWCOV;RSQ=0.7787;AF=0.04;AMR_AF=0.03;AFR_AF=0.01;EUR_AF=0.09
+1	88188	rs148331237	C	A	100	PASS	THETA=0.0039;AN=2184;VT=SNP;AA=.;AC=9;LDAF=0.0085;SNPSOURCE=LOWCOV;ERATE=0.0007;RSQ=0.5212;AVGPOST=0.9910;AF=0.0041;AMR_AF=0.0028;EUR_AF=0.01
+1	88236	rs186918018	C	T	100	PASS	AVGPOST=0.9904;AN=2184;ERATE=0.0031;RSQ=0.5511;VT=SNP;AA=.;THETA=0.0087;LDAF=0.0097;SNPSOURCE=LOWCOV;AC=11;AF=0.01;AMR_AF=0.02;AFR_AF=0.0041;EUR_AF=0.0026
+1	88250	rs191950833	T	A	100	PASS	LDAF=0.0013;AN=2184;RSQ=0.1387;VT=SNP;AA=.;AC=0;THETA=0.0019;SNPSOURCE=LOWCOV;ERATE=0.0007;AVGPOST=0.9974;AF=0
+1	88316	rs113759966	G	A	100	PASS	LDAF=0.0531;AN=2184;VT=SNP;AA=.;THETA=0.0071;RSQ=0.7791;AVGPOST=0.9644;ERATE=0.0008;AC=87;SNPSOURCE=LOWCOV;AF=0.04;ASN_AF=0.0017;AMR_AF=0.04;AFR_AF=0.01;EUR_AF=0.09
+1	88324	rs183326616	A	G	100	PASS	ERATE=0.0004;AN=2184;AVGPOST=0.9996;VT=SNP;AA=.;RSQ=0.7073;LDAF=0.0006;SNPSOURCE=LOWCOV;AC=1;THETA=0.0092;AF=0.0005;AFR_AF=0.0020
+1	88338	rs55700207	G	A	100	PASS	THETA=0.0035;RSQ=0.7967;AN=2184;ERATE=0.0034;LDAF=0.1019;VT=SNP;AA=.;AC=186;SNPSOURCE=LOWCOV;AVGPOST=0.9507;AF=0.09;ASN_AF=0.03;AMR_AF=0.15;AFR_AF=0.14;EUR_AF=0.05
+1	88370	rs185487977	G	A	100	PASS	AVGPOST=0.9957;LDAF=0.0035;AN=2184;ERATE=0.0009;RSQ=0.4507;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=4;THETA=0.0043;AF=0.0018;AMR_AF=0.0028;EUR_AF=0.0040
+1	88376	rs189954431	T	G	100	PASS	RSQ=0.6404;AVGPOST=0.9994;AN=2184;VT=SNP;AA=.;THETA=0.0057;SNPSOURCE=LOWCOV;AC=1;ERATE=0.0003;LDAF=0.0008;AF=0.0005;AFR_AF=0.0020
+1	88388	rs182344336	C	T	100	PASS	THETA=0.0048;ERATE=0.0005;RSQ=0.3843;AVGPOST=0.9977;LDAF=0.0016;AN=2184;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=1;AF=0.0005;ASN_AF=0.0017
+1	88429	rs146027550	T	C	100	PASS	LDAF=0.0083;AN=2184;AC=13;RSQ=0.6097;VT=SNP;AA=.;ERATE=0.0010;AVGPOST=0.9922;SNPSOURCE=LOWCOV;THETA=0.0069;AF=0.01;AMR_AF=0.01;AFR_AF=0.02;EUR_AF=0.0013
+1	88710	rs186575039	C	G	100	PASS	ERATE=0.0005;AC=73;THETA=0.0022;AN=2184;VT=SNP;AA=.;AVGPOST=0.9774;LDAF=0.0389;SNPSOURCE=LOWCOV;RSQ=0.8058;AF=0.03;AMR_AF=0.01;AFR_AF=0.01;EUR_AF=0.08
+1	89165	rs192631277	A	C	100	PASS	RSQ=0.2647;AN=2184;ERATE=0.0009;VT=SNP;AA=.;AVGPOST=0.9969;LDAF=0.0020;SNPSOURCE=LOWCOV;AC=1;THETA=0.0043;AF=0.0005;ASN_AF=0.0017
+1	89744	rs184101761	A	G	100	PASS	THETA=0.0068;ERATE=0.0004;AVGPOST=0.9985;LDAF=0.0016;AN=2184;RSQ=0.5853;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=2;AF=0.0009;AFR_AF=0.0041
+1	89794	rs188661839	T	C	100	PASS	AN=2184;THETA=0.0130;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AC=1;ERATE=0.0006;RSQ=0.3812;AVGPOST=0.9984;LDAF=0.0012;AF=0.0005;AFR_AF=0.0020
+1	89946	rs138808727	A	T	100	PASS	RSQ=0.7414;LDAF=0.1417;AN=2184;ERATE=0.0009;AC=236;VT=SNP;AA=.;THETA=0.0100;AVGPOST=0.9001;SNPSOURCE=LOWCOV;AF=0.11;ASN_AF=0.0035;AMR_AF=0.16;AFR_AF=0.02;EUR_AF=0.22
+1	91190	rs143856811	G	A	100	PASS	AN=2184;AC=77;ERATE=0.0009;VT=SNP;AA=.;LDAF=0.0447;SNPSOURCE=LOWCOV;RSQ=0.7517;THETA=0.0113;AVGPOST=0.9690;AF=0.04;ASN_AF=0.0017;AMR_AF=0.02;AFR_AF=0.02;EUR_AF=0.08
+1	91228	rs139873689	A	G	100	PASS	AN=2184;AVGPOST=0.9924;AC=8;RSQ=0.5097;VT=SNP;AA=.;ERATE=0.0010;THETA=0.0012;SNPSOURCE=LOWCOV;LDAF=0.0070;AF=0.0037;AFR_AF=0.02
+1	91536	rs77418980	G	T	100	PASS	AC=695;AN=2184;ERATE=0.0025;AVGPOST=0.7792;VT=SNP;AA=.;THETA=0.0018;LDAF=0.3255;RSQ=0.6634;SNPSOURCE=LOWCOV;AF=0.32;ASN_AF=0.34;AMR_AF=0.30;AFR_AF=0.04;EUR_AF=0.50
+1	91581	rs151118460	G	A	100	PASS	AVGPOST=0.7763;THETA=0.0078;AN=2184;VT=SNP;AA=.;AC=716;ERATE=0.0035;LDAF=0.3353;RSQ=0.6618;SNPSOURCE=LOWCOV;AF=0.33;ASN_AF=0.37;AMR_AF=0.30;AFR_AF=0.04;EUR_AF=0.50
+1	91605	rs141083882	C	T	100	PASS	AC=105;LDAF=0.0597;AN=2184;RSQ=0.7792;VT=SNP;AA=.;ERATE=0.0010;AVGPOST=0.9660;SNPSOURCE=LOWCOV;THETA=0.0070;AF=0.05;AMR_AF=0.02;AFR_AF=0.20
+1	92633	rs149776517	C	T	100	PASS	THETA=0.0054;AN=2184;VT=SNP;AA=.;AC=44;AVGPOST=0.9592;ERATE=0.0008;LDAF=0.0366;SNPSOURCE=LOWCOV;RSQ=0.5870;AF=0.02;AMR_AF=0.02;EUR_AF=0.05
+1	92858	rs147061536	G	T	100	PASS	AC=248;THETA=0.0212;RSQ=0.7567;AN=2184;ERATE=0.0046;VT=SNP;AA=.;SNPSOURCE=LOWCOV;AVGPOST=0.9072;LDAF=0.1433;AF=0.11;ASN_AF=0.01;AMR_AF=0.15;AFR_AF=0.05;EUR_AF=0.22
+1	92875	rs193157612	T	C	100	PASS	THETA=0.0048;AVGPOST=0.9957;AN=2184;LDAF=0.0040;ERATE=0.0009;VT=SNP;AA=.;RSQ=0.4901;SNPSOURCE=LOWCOV;AC=4;AF=0.0018;EUR_AF=0.01
+1	94421	rs200856736	TC	T	90	PASS	AA=TC;AC=253;AF=0.12;AFR_AF=0.01;AMR_AF=0.20;AN=2184;ASN_AF=0.26;AVGPOST=0.7183;ERATE=0.0117;EUR_AF=0.03;LDAF=0.2244;RSQ=0.3175;THETA=0.0159;VT=INDEL
+1	94986	rs185004859	C	T	100	PASS	ERATE=0.0166;AN=2184;AC=100;THETA=0.0227;VT=SNP;AA=.;LDAF=0.0872;AVGPOST=0.9040;SNPSOURCE=LOWCOV;RSQ=0.4650;AF=0.05;ASN_AF=0.03;AMR_AF=0.04;AFR_AF=0.07;EUR_AF=0.04
+1	94991	rs188832636	G	A	100	PASS	THETA=0.0048;LDAF=0.0041;AN=2184;AVGPOST=0.9944;ERATE=0.0009;VT=SNP;AA=.;SNPSOURCE=LOWCOV;RSQ=0.4157;AC=3;AF=0.0014;AMR_AF=0.0028;EUR_AF=0.0026
+1	98583	rs141344361	T	A	100	PASS	AVGPOST=0.9463;AC=248;THETA=0.0099;AN=2184;VT=SNP;AA=.;RSQ=0.8090;LDAF=0.1336;ERATE=0.0008;SNPSOURCE=LOWCOV;AF=0.11;ASN_AF=0.30;AMR_AF=0.16;AFR_AF=0.01;EUR_AF=0.02
+1	98929	rs12184306	A	G	100	PASS	RSQ=0.6226;AVGPOST=0.8784;AN=2184;VT=SNP;AA=.;ERATE=0.0045;LDAF=0.1723;SNPSOURCE=LOWCOV;AC=264;THETA=0.0070;AF=0.12;ASN_AF=0.16;AMR_AF=0.08;AFR_AF=0.16;EUR_AF=0.09
+1	98946	rs191775802	C	G	100	PASS	AVGPOST=0.9945;ERATE=0.0013;AN=2184;LDAF=0.0046;VT=SNP;AA=.;RSQ=0.4807;SNPSOURCE=LOWCOV;AC=4;THETA=0.0097;AF=0.0018;AFR_AF=0.01
+1	98974	rs12184307	A	G	100	PASS	AVGPOST=0.8921;AN=2184;AC=224;THETA=0.0130;VT=SNP;AA=.;LDAF=0.1405;RSQ=0.6149;SNPSOURCE=LOWCOV;ERATE=0.0012;AF=0.10;ASN_AF=0.14;AMR_AF=0.07;AFR_AF=0.14;EUR_AF=0.06
+1	99671	rs146209971	A	T	100	PASS	THETA=0.0199;AN=2184;AC=13;RSQ=0.4401;VT=SNP;AA=.;ERATE=0.0010;AVGPOST=0.9802;SNPSOURCE=LOWCOV;LDAF=0.0158;AF=0.01;AMR_AF=0.02;AFR_AF=0.0020;EUR_AF=0.01
+1	99687	rs139153227	C	T	100	PASS	THETA=0.0211;LDAF=0.0470;AN=2184;VT=SNP;AA=.;ERATE=0.0010;RSQ=0.6276;AVGPOST=0.9548;AC=64;SNPSOURCE=LOWCOV;AF=0.03;AMR_AF=0.03;AFR_AF=0.01;EUR_AF=0.07
+1	99719	rs183898652	C	T	100	PASS	AN=2184;RSQ=0.5856;VT=SNP;AA=.;AC=10;ERATE=0.0018;SNPSOURCE=LOWCOV;LDAF=0.0076;AVGPOST=0.9925;THETA=0.0251;AF=0.0046;AMR_AF=0.01;AFR_AF=0.01;EUR_AF=0.0013
+1	100676	rs188226172	A	T	100	PASS	THETA=0.0212;LDAF=0.0047;AN=2184;VT=SNP;AA=.;RSQ=0.2646;SNPSOURCE=LOWCOV;ERATE=0.0012;AC=2;AVGPOST=0.9925;AF=0.0009;AMR_AF=0.0028;AFR_AF=0.0020
+1	103905	rs142403309	A	G	100	PASS	AN=2184;THETA=0.0131;ERATE=0.0025;AVGPOST=0.8782;AC=220;VT=SNP;AA=.;LDAF=0.1434;SNPSOURCE=LOWCOV;RSQ=0.5994;AF=0.10;ASN_AF=0.10;AMR_AF=0.14;AFR_AF=0.15;EUR_AF=0.05
+1	106544	rs180741296	C	G	100	PASS	AC=205;AVGPOST=0.5776;AN=2184;VT=SNP;AA=.;LDAF=0.3120;SNPSOURCE=LOWCOV;ERATE=0.0061;THETA=0.0372;RSQ=0.1442;AF=0.09;ASN_AF=0.11;AMR_AF=0.13;AFR_AF=0.11;EUR_AF=0.05
+1	109107	rs201432136	G	GT	67	PASS	AA=G;AC=63;AF=0.03;AFR_AF=0.01;AMR_AF=0.04;AN=2184;ASN_AF=0.03;AVGPOST=0.8840;ERATE=0.0122;EUR_AF=0.04;LDAF=0.0890;RSQ=0.3660;THETA=0.0210;VT=INDEL
+1	111513	rs199911222	C	CTA	249	PASS	AA=.;AC=58;AF=0.03;AFR_AF=0.09;AMR_AF=0.03;AN=2184;ASN_AF=0.0017;AVGPOST=0.9145;ERATE=0.0024;EUR_AF=0.0013;LDAF=0.0665;RSQ=0.4694;THETA=0.0292;VT=INDEL
diff --git a/vcf/test/1kg.vcf.gz b/vcf/test/1kg.vcf.gz
new file mode 100644
index 0000000..26b5d68
Binary files /dev/null and b/vcf/test/1kg.vcf.gz differ
diff --git a/vcf/test/README.md b/vcf/test/README.md
new file mode 100644
index 0000000..f2f7b60
--- /dev/null
+++ b/vcf/test/README.md
@@ -0,0 +1,3 @@
+Test data from GATK 1.4-9 and freebayes 0.9.4.
+
+
diff --git a/vcf/test/__init__.py b/vcf/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/vcf/test/bcftools.vcf b/vcf/test/bcftools.vcf
new file mode 100644
index 0000000..80adc28
--- /dev/null
+++ b/vcf/test/bcftools.vcf
@@ -0,0 +1,779 @@
+##fileformat=VCFv4.1
+##samtoolsVersion=0.1.18 (r982:295)
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Raw read depth">
+##INFO=<ID=DP4,Number=4,Type=Integer,Description="# high-quality ref-forward bases, ref-reverse, alt-forward and alt-reverse bases">
+##INFO=<ID=MQ,Number=1,Type=Integer,Description="Root-mean-square mapping quality of covering reads">
+##INFO=<ID=FQ,Number=1,Type=Float,Description="Phred probability of all samples being the same">
+##INFO=<ID=AF1,Number=1,Type=Float,Description="Max-likelihood estimate of the first ALT allele frequency (assuming HWE)">
+##INFO=<ID=AC1,Number=1,Type=Float,Description="Max-likelihood estimate of the first ALT allele count (no HWE assumption)">
+##INFO=<ID=G3,Number=3,Type=Float,Description="ML estimate of genotype frequencies">
+##INFO=<ID=HWE,Number=1,Type=Float,Description="Chi^2 based HWE test P-value based on G3">
+##INFO=<ID=CLR,Number=1,Type=Integer,Description="Log ratio of genotype likelihoods with and without the constraint">
+##INFO=<ID=UGT,Number=1,Type=String,Description="The most probable unconstrained genotype configuration in the trio">
+##INFO=<ID=CGT,Number=1,Type=String,Description="The most probable constrained genotype configuration in the trio">
+##INFO=<ID=PV4,Number=4,Type=Float,Description="P-values for strand bias, baseQ bias, mapQ bias and tail distance bias">
+##INFO=<ID=INDEL,Number=0,Type=Flag,Description="Indicates that the variant is an INDEL.">
+##INFO=<ID=PC2,Number=2,Type=Integer,Description="Phred probability of the nonRef allele frequency in group1 samples being larger (,smaller) than in group2.">
+##INFO=<ID=PCHI2,Number=1,Type=Float,Description="Posterior weighted chi^2 P-value for testing the association between group1 and group2 samples.">
+##INFO=<ID=QCHI2,Number=1,Type=Integer,Description="Phred scaled PCHI2.">
+##INFO=<ID=PR,Number=1,Type=Integer,Description="# permutations yielding a smaller PCHI2.">
+##INFO=<ID=VDB,Number=1,Type=Float,Description="Variant Distance Bias">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GL,Number=3,Type=Float,Description="Likelihoods for RR,RA,AA genotypes (R=ref,A=alt)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="# high-quality bases">
+##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="List of Phred-scaled genotype likelihoods">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample
+MT	1	.	G	.	283	.	DP=245;AF1=0;AC1=0;DP4=240,0,0,0;MQ=30;FQ=-282	PL	0
+MT	2	.	A	.	283	.	DP=250;AF1=0;AC1=0;DP4=247,0,0,0;MQ=31;FQ=-282	PL	0
+MT	3	.	T	.	283	.	DP=253;AF1=0;AC1=0;DP4=252,0,0,0;MQ=31;FQ=-282	PL	0
+MT	4	.	C	.	283	.	DP=257;AF1=0;AC1=0;DP4=253,0,0,0;MQ=32;FQ=-282	PL	0
+MT	5	.	A	.	283	.	DP=263;AF1=0;AC1=0;DP4=258,0,0,0;MQ=32;FQ=-282	PL	0
+MT	6	.	C	.	283	.	DP=268;AF1=0;AC1=0;DP4=259,0,0,0;MQ=33;FQ=-282	PL	0
+MT	7	.	A	.	283	.	DP=272;VDB=0.0111;AF1=0;AC1=0;DP4=265,0,2,0;MQ=34;FQ=-282;PV4=1,1.9e-05,0.32,1	PL	0
+MT	8	.	G	.	283	.	DP=275;AF1=0;AC1=0;DP4=272,0,0,0;MQ=34;FQ=-282	PL	0
+MT	9	.	G	.	283	.	DP=276;AF1=0;AC1=0;DP4=266,0,1,0;MQ=34;FQ=-282;PV4=1,0.006,0.36,0.13	PL	0
+MT	10	.	T	.	283	.	DP=277;VDB=0.0000;AF1=0;AC1=0;DP4=269,0,1,0;MQ=34;FQ=-282;PV4=1,3.7e-05,0.36,1	PL	0
+MT	11	.	C	.	283	.	DP=279;AF1=0;AC1=0;DP4=274,0,1,0;MQ=34;FQ=-282;PV4=1,0.0031,0.36,0.12	PL	0
+MT	12	.	T	.	283	.	DP=286;AF1=0;AC1=0;DP4=284,0,0,0;MQ=35;FQ=-282	PL	0
+MT	13	.	A	.	283	.	DP=289;AF1=0;AC1=0;DP4=281,0,0,0;MQ=36;FQ=-282	PL	0
+MT	14	.	T	.	283	.	DP=290;AF1=0;AC1=0;DP4=288,0,0,0;MQ=36;FQ=-282	PL	0
+MT	15	.	C	.	283	.	DP=290;AF1=0;AC1=0;DP4=280,0,0,0;MQ=36;FQ=-282	PL	0
+MT	16	.	A	.	283	.	DP=293;AF1=0;AC1=0;DP4=290,0,0,0;MQ=36;FQ=-282	PL	0
+MT	17	.	C	.	283	.	DP=297;VDB=0.0111;AF1=0;AC1=0;DP4=290,0,0,0;MQ=36;FQ=-282	PL	0
+MT	18	.	C	.	283	.	DP=298;AF1=0;AC1=0;DP4=284,0,0,0;MQ=37;FQ=-282	PL	0
+MT	19	.	C	.	283	.	DP=301;VDB=0.0111;AF1=0;AC1=0;DP4=293,0,1,0;MQ=37;FQ=-282;PV4=1,1,0.32,0.38	PL	0
+MT	20	.	T	.	283	.	DP=311;AF1=0;AC1=0;DP4=307,0,0,0;MQ=37;FQ=-282	PL	0
+MT	21	.	A	.	283	.	DP=311;AF1=0;AC1=0;DP4=305,0,0,0;MQ=38;FQ=-282	PL	0
+MT	22	.	T	.	283	.	DP=305;AF1=0;AC1=0;DP4=303,0,0,0;MQ=38;FQ=-282	PL	0
+MT	23	.	T	.	283	.	DP=309;AF1=0;AC1=0;DP4=305,0,0,0;MQ=38;FQ=-282	PL	0
+MT	24	.	A	.	283	.	DP=309;AF1=0;AC1=0;DP4=301,0,0,0;MQ=39;FQ=-282	PL	0
+MT	25	.	A	.	283	.	DP=308;AF1=0;AC1=0;DP4=302,0,1,0;MQ=39;FQ=-282;PV4=1,2.2e-09,0.28,1	PL	0
+MT	26	.	C	.	283	.	DP=309;AF1=0;AC1=0;DP4=302,0,0,0;MQ=39;FQ=-282	PL	0
+MT	27	.	C	.	283	.	DP=307;AF1=0;AC1=0;DP4=293,0,0,0;MQ=40;FQ=-282	PL	0
+MT	28	.	A	.	283	.	DP=309;AF1=0;AC1=0;DP4=305,0,0,0;MQ=40;FQ=-282	PL	0
+MT	29	.	C	.	283	.	DP=308;AF1=0;AC1=0;DP4=302,0,0,0;MQ=40;FQ=-282	PL	0
+MT	30	.	T	.	283	.	DP=305;AF1=0;AC1=0;DP4=303,0,0,0;MQ=41;FQ=-282	PL	0
+MT	31	.	C	.	283	.	DP=302;AF1=0;AC1=0;DP4=293,0,0,0;MQ=41;FQ=-282	PL	0
+MT	32	.	A	.	283	.	DP=303;AF1=0;AC1=0;DP4=294,0,0,0;MQ=41;FQ=-282	PL	0
+MT	33	.	C	.	283	.	DP=300;AF1=0;AC1=0;DP4=287,0,0,0;MQ=42;FQ=-282	PL	0
+MT	34	.	G	.	280	.	DP=296;AF1=0;AC1=0;DP4=288,0,0,0;MQ=42;FQ=-282	PL	0
+MT	35	.	G	.	283	.	DP=296;VDB=0.0111;AF1=0;AC1=0;DP4=280,0,0,0;MQ=43;FQ=-282	PL	0
+MT	36	.	G	.	283	.	DP=291;AF1=0;AC1=0;DP4=272,0,0,0;MQ=43;FQ=-282	PL	0
+MT	37	.	A	.	283	.	DP=290;VDB=0.0212;AF1=0;AC1=0;DP4=276,0,1,0;MQ=43;FQ=-282;PV4=1,0.00038,0.22,1	PL	0
+MT	38	.	G	.	283	.	DP=288;AF1=0;AC1=0;DP4=282,0,0,0;MQ=43;FQ=-282	PL	0
+MT	39	.	C	.	283	.	DP=289;VDB=0.0040;AF1=0;AC1=0;DP4=264,0,2,0;MQ=44;FQ=-282;PV4=1,8.3e-11,1,1	PL	0
+MT	40	.	T	.	283	.	DP=288;AF1=0;AC1=0;DP4=285,0,0,0;MQ=44;FQ=-282	PL	0
+MT	41	.	C	.	283	.	DP=284;AF1=0;AC1=0;DP4=276,0,0,0;MQ=45;FQ=-282	PL	0
+MT	42	.	T	.	283	.	DP=279;AF1=0;AC1=0;DP4=277,0,0,0;MQ=45;FQ=-282	PL	0
+MT	43	.	C	.	283	.	DP=279;AF1=0;AC1=0;DP4=268,0,0,0;MQ=46;FQ=-282	PL	0
+MT	44	.	C	.	283	.	DP=280;AF1=0;AC1=0;DP4=265,0,1,0;MQ=46;FQ=-282;PV4=1,0.0064,0.17,1	PL	0
+MT	45	.	A	.	283	.	DP=279;AF1=0;AC1=0;DP4=272,0,0,0;MQ=47;FQ=-282	PL	0
+MT	46	.	T	.	283	.	DP=279;AF1=0;AC1=0;DP4=276,0,0,0;MQ=47;FQ=-282	PL	0
+MT	47	.	G	.	283	.	DP=280;AF1=0;AC1=0;DP4=277,0,0,0;MQ=47;FQ=-282	PL	0
+MT	48	.	C	.	283	.	DP=281;AF1=0;AC1=0;DP4=271,0,0,0;MQ=48;FQ=-282	PL	0
+MT	49	.	A	.	283	.	DP=278;VDB=0.0051;AF1=0;AC1=0;DP4=272,0,0,0;MQ=48;FQ=-282	PL	0
+MT	50	.	T	.	283	.	DP=276;AF1=0;AC1=0;DP4=274,0,0,0;MQ=48;FQ=-282	PL	0
+MT	51	.	T	.	283	.	DP=271;AF1=0;AC1=0;DP4=261,0,0,0;MQ=49;FQ=-282	PL	0
+MT	52	.	T	.	283	.	DP=271;AF1=0;AC1=0;DP4=262,0,0,0;MQ=49;FQ=-282	PL	0
+MT	53	.	G	.	283	.	DP=273;AF1=0;AC1=0;DP4=271,0,0,0;MQ=49;FQ=-282	PL	0
+MT	54	.	G	.	283	.	DP=274;AF1=0;AC1=0;DP4=264,0,0,0;MQ=49;FQ=-282	PL	0
+MT	55	.	T	.	283	.	DP=271;AF1=0;AC1=0;DP4=268,0,0,0;MQ=50;FQ=-282	PL	0
+MT	56	.	A	.	283	.	DP=274;AF1=0;AC1=0;DP4=266,0,0,0;MQ=50;FQ=-282	PL	0
+MT	57	.	T	.	283	.	DP=272;AF1=0;AC1=0;DP4=270,0,0,0;MQ=50;FQ=-282	PL	0
+MT	58	.	T	.	283	.	DP=273;AF1=0;AC1=0;DP4=266,0,0,0;MQ=50;FQ=-282	PL	0
+MT	59	.	T	.	283	.	DP=277;AF1=0;AC1=0;DP4=272,0,0,0;MQ=50;FQ=-282	PL	0
+MT	60	.	T	.	283	.	DP=279;AF1=0;AC1=0;DP4=272,0,0,0;MQ=50;FQ=-282	PL	0
+MT	61	.	C	.	283	.	DP=285;AF1=0;AC1=0;DP4=275,0,0,0;MQ=51;FQ=-282	PL	0
+MT	62	.	G	.	283	.	DP=285;AF1=0;AC1=0;DP4=278,0,1,0;MQ=51;FQ=-282;PV4=1,1.3e-08,0.097,0.066	PL	0
+MT	63	.	T	.	283	.	DP=285;AF1=0;AC1=0;DP4=285,0,0,0;MQ=51;FQ=-282	PL	0
+MT	64	.	C	.	283	.	DP=283;AF1=0;AC1=0;DP4=276,0,0,0;MQ=52;FQ=-282	PL	0
+MT	65	.	T	.	283	.	DP=277;AF1=0;AC1=0;DP4=277,0,0,0;MQ=52;FQ=-282	PL	0
+MT	66	.	G	.	283	.	DP=276;AF1=0;AC1=0;DP4=274,0,0,0;MQ=52;FQ=-282	PL	0
+MT	67	.	G	.	283	.	DP=275;AF1=0;AC1=0;DP4=264,0,0,0;MQ=53;FQ=-282	PL	0
+MT	68	.	G	.	283	.	DP=281;AF1=0;AC1=0;DP4=265,0,0,0;MQ=53;FQ=-282	PL	0
+MT	69	.	G	.	283	.	DP=288;AF1=0;AC1=0;DP4=269,0,0,0;MQ=54;FQ=-282	PL	0
+MT	70	.	G	.	283	.	DP=296;AF1=0;AC1=0;DP4=275,0,0,0;MQ=54;FQ=-282	PL	0
+MT	71	.	G	.	283	.	DP=300;AF1=0;AC1=0;DP4=272,0,0,0;MQ=54;FQ=-282	PL	0
+MT	72	.	T	.	283	.	DP=301;VDB=0.0367;AF1=0;AC1=0;DP4=285,0,0,0;MQ=54;FQ=-282	PL	0
+MT	73	.	A	.	283	.	DP=295;AF1=0;AC1=0;DP4=283,0,1,0;MQ=55;FQ=-282;PV4=1,0.0066,1,1	PL	0
+MT	74	.	T	.	283	.	DP=298;AF1=0;AC1=0;DP4=298,0,0,0;MQ=55;FQ=-282	PL	0
+MT	75	.	G	.	283	.	DP=300;AF1=0;AC1=0;DP4=299,0,0,0;MQ=55;FQ=-282	PL	0
+MT	76	.	C	.	283	.	DP=304;VDB=0.0342;AF1=0;AC1=0;DP4=281,0,2,0;MQ=56;FQ=-282;PV4=1,8.3e-13,1,1	PL	0
+MT	77	.	A	.	283	.	DP=303;VDB=0.0200;AF1=0;AC1=0;DP4=293,0,1,0;MQ=56;FQ=-282;PV4=1,0.00064,0.019,0.25	PL	0
+MT	78	.	C	.	283	.	DP=302;VDB=0.0026;AF1=0;AC1=0;DP4=283,0,3,0;MQ=56;FQ=-282;PV4=1,4.1e-13,0.21,0.36	PL	0
+MT	79	.	G	.	283	.	DP=301;AF1=0;AC1=0;DP4=285,0,0,0;MQ=57;FQ=-282	PL	0
+MT	80	.	C	.	283	.	DP=308;VDB=0.0217;AF1=0;AC1=0;DP4=286,0,1,0;MQ=57;FQ=-282;PV4=1,9.8e-07,0.0098,0.14	PL	0
+MT	81	.	G	.	282	.	DP=314;AF1=0;AC1=0;DP4=302,0,0,0;MQ=56;FQ=-282	PL	0
+MT	82	.	A	.	283	.	DP=313;VDB=0.0049;AF1=0;AC1=0;DP4=296,0,2,0;MQ=57;FQ=-282;PV4=1,0.013,0.069,0.1	PL	0
+MT	83	.	T	.	283	.	DP=316;VDB=0.0200;AF1=0;AC1=0;DP4=313,0,2,0;MQ=57;FQ=-282;PV4=1,0.0029,1,1	PL	0
+MT	84	.	A	.	283	.	DP=316;AF1=0;AC1=0;DP4=302,0,1,0;MQ=57;FQ=-282;PV4=1,1.3e-05,0.0044,1	PL	0
+MT	85	.	G	.	283	.	DP=314;AF1=0;AC1=0;DP4=314,0,0,0;MQ=57;FQ=-282	PL	0
+MT	86	.	C	.	283	.	DP=318;VDB=0.0198;AF1=0;AC1=0;DP4=297,0,0,0;MQ=58;FQ=-282	PL	0
+MT	87	.	A	.	283	.	DP=324;AF1=0;AC1=0;DP4=316,0,0,0;MQ=58;FQ=-282	PL	0
+MT	88	.	T	.	283	.	DP=326;AF1=0;AC1=0;DP4=325,0,0,0;MQ=58;FQ=-282	PL	0
+MT	89	.	T	.	283	.	DP=328;AF1=0;AC1=0;DP4=313,0,1,0;MQ=58;FQ=-282;PV4=1,1.3e-08,1,0.064	PL	0
+MT	90	.	G	.	283	.	DP=329;VDB=0.0193;AF1=0;AC1=0;DP4=326,0,0,0;MQ=58;FQ=-282	PL	0
+MT	91	.	C	.	283	.	DP=328;AF1=0;AC1=0;DP4=310,0,1,0;MQ=58;FQ=-282;PV4=1,4.2e-05,1,0.37	PL	0
+MT	92	.	G	.	278	.	DP=327;VDB=0.0237;AF1=0;AC1=0;DP4=314,0,2,0;MQ=58;FQ=-282;PV4=1,0.17,1,0.2	PL	0
+MT	93	.	A	.	283	.	DP=328;AF1=0;AC1=0;DP4=310,0,0,0;MQ=58;FQ=-282	PL	0
+MT	94	.	G	.	283	.	DP=327;AF1=0;AC1=0;DP4=327,0,0,0;MQ=57;FQ=-282	PL	0
+MT	95	.	A	.	283	.	DP=323;AF1=0;AC1=0;DP4=308,0,1,0;MQ=58;FQ=-282;PV4=1,4.8e-05,0.002,1	PL	0
+MT	96	.	C	.	283	.	DP=323;AF1=0;AC1=0;DP4=305,0,1,0;MQ=58;FQ=-282;PV4=1,0.17,1,1	PL	0
+MT	97	.	G	.	275	.	DP=321;AF1=0;AC1=0;DP4=311,0,0,0;MQ=58;FQ=-282	PL	0
+MT	98	.	C	.	283	.	DP=322;VDB=0.0006;AF1=0;AC1=0;DP4=301,0,0,0;MQ=58;FQ=-282	PL	0
+MT	99	.	T	.	283	.	DP=327;AF1=0;AC1=0;DP4=327,0,0,0;MQ=58;FQ=-282	PL	0
+MT	100	.	G	.	283	.	DP=332;AF1=0;AC1=0;DP4=332,0,0,0;MQ=58;FQ=-282	PL	0
+MT	101	.	G	.	283	.	DP=332;AF1=0;AC1=0;DP4=306,0,0,0;MQ=58;FQ=-282	PL	0
+MT	102	.	A	.	283	.	DP=331;VDB=0.0050;AF1=0;AC1=0;DP4=290,0,0,0;MQ=58;FQ=-282	PL	0
+MT	103	.	G	.	283	.	DP=329;VDB=0.0342;AF1=0;AC1=0;DP4=321,0,0,0;MQ=58;FQ=-282	PL	0
+MT	104	.	C	.	283	.	DP=330;VDB=0.0003;AF1=0;AC1=0;DP4=273,0,1,0;MQ=58;FQ=-282;PV4=1,0.0026,1,0.047	PL	0
+MT	105	.	C	.	283	.	DP=338;AF1=0;AC1=0;DP4=302,0,0,0;MQ=58;FQ=-282	PL	0
+MT	106	.	G	.	283	.	DP=343;AF1=0;AC1=0;DP4=314,0,0,0;MQ=58;FQ=-282	PL	0
+MT	107	.	G	.	283	.	DP=344;AF1=0;AC1=0;DP4=300,0,0,0;MQ=58;FQ=-282	PL	0
+MT	108	.	A	.	283	.	DP=347;VDB=0.0302;AF1=0;AC1=0;DP4=305,0,0,0;MQ=58;FQ=-282	PL	0
+MT	109	.	G	.	283	.	DP=348;AF1=0;AC1=0;DP4=344,0,0,0;MQ=58;FQ=-282	PL	0
+MT	110	.	C	.	283	.	DP=341;VDB=0.0445;AF1=0;AC1=0;DP4=279,0,2,0;MQ=59;FQ=-282;PV4=1,6.4e-06,1.4e-08,1	PL	0
+MT	111	.	A	.	283	.	DP=343;VDB=0.0233;AF1=0;AC1=0;DP4=321,0,0,0;MQ=58;FQ=-282	PL	0
+MT	112	.	C	.	283	.	DP=348;VDB=0.0169;AF1=0;AC1=0;DP4=300,0,3,0;MQ=58;FQ=-282;PV4=1,3.2e-08,7.4e-07,0.16	PL	0
+MT	113	.	C	.	283	.	DP=350;VDB=0.0252;AF1=0;AC1=0;DP4=307,0,2,0;MQ=58;FQ=-282;PV4=1,4.8e-08,1,0.38	PL	0
+MT	114	.	C	.	283	.	DP=351;AF1=0;AC1=0;DP4=307,0,0,0;MQ=58;FQ=-282	PL	0
+MT	115	.	T	.	283	.	DP=351;VDB=0.0025;AF1=0;AC1=0;DP4=346,0,0,0;MQ=57;FQ=-282	PL	0
+MT	116	.	A	.	283	.	DP=352;VDB=0.0183;AF1=0;AC1=0;DP4=317,0,3,0;MQ=58;FQ=-282;PV4=1,8.3e-07,0.0073,0.45	PL	0
+MT	117	.	T	.	283	.	DP=355;VDB=0.0025;AF1=0;AC1=0;DP4=351,0,0,0;MQ=57;FQ=-282	PL	0
+MT	118	.	G	.	283	.	DP=352;VDB=0.0306;AF1=0;AC1=0;DP4=348,0,0,0;MQ=58;FQ=-282	PL	0
+MT	119	.	T	.	283	.	DP=353;VDB=0.0335;AF1=0;AC1=0;DP4=345,0,1,0;MQ=58;FQ=-282;PV4=1,0.005,1,1	PL	0
+MT	120	.	C	.	283	.	DP=354;VDB=0.0440;AF1=0;AC1=0;DP4=331,0,2,0;MQ=58;FQ=-282;PV4=1,0.00033,1,0.14	PL	0
+MT	121	.	G	.	283	.	DP=356;AF1=0;AC1=0;DP4=311,0,0,0;MQ=58;FQ=-282	PL	0
+MT	122	.	C	.	283	.	DP=353;VDB=0.0237;AF1=0;AC1=0;DP4=304,0,1,0;MQ=59;FQ=-282;PV4=1,0.0064,1,0.29	PL	0
+MT	123	.	A	.	283	.	DP=357;VDB=0.0141;AF1=0;AC1=0;DP4=332,0,0,0;MQ=58;FQ=-282	PL	0
+MT	124	.	G	.	283	.	DP=357;AF1=0;AC1=0;DP4=353,0,0,0;MQ=58;FQ=-282	PL	0
+MT	125	.	T	.	283	.	DP=359;VDB=0.0302;AF1=0;AC1=0;DP4=347,0,1,0;MQ=58;FQ=-282;PV4=1,0.0037,1,1	PL	0
+MT	126	.	A	.	283	.	DP=360;VDB=0.0215;AF1=0;AC1=0;DP4=327,0,2,0;MQ=58;FQ=-282;PV4=1,0.00072,0.0069,0.13	PL	0
+MT	127	.	T	.	283	.	DP=358;VDB=0.0245;AF1=0;AC1=0;DP4=355,0,2,0;MQ=58;FQ=-282;PV4=1,9.7e-05,5e-08,0.14	PL	0
+MT	128	.	C	.	283	.	DP=360;VDB=0.0335;AF1=0;AC1=0;DP4=336,0,0,0;MQ=58;FQ=-282	PL	0
+MT	129	.	T	.	283	.	DP=360;AF1=0;AC1=0;DP4=356,0,1,0;MQ=58;FQ=-282;PV4=1,0.00053,0.0013,1	PL	0
+MT	130	.	G	.	283	.	DP=357;VDB=0.0141;AF1=0;AC1=0;DP4=355,0,0,0;MQ=58;FQ=-282	PL	0
+MT	131	.	T	.	283	.	DP=360;VDB=0.0057;AF1=0;AC1=0;DP4=351,0,0,0;MQ=58;FQ=-282	PL	0
+MT	132	.	C	.	283	.	DP=359;VDB=0.0367;AF1=0;AC1=0;DP4=338,0,0,0;MQ=58;FQ=-282	PL	0
+MT	133	.	T	.	283	.	DP=358;VDB=0.0033;AF1=0;AC1=0;DP4=353,0,1,0;MQ=58;FQ=-282;PV4=1,0.00063,0.0012,1	PL	0
+MT	134	.	T	.	283	.	DP=357;AF1=0;AC1=0;DP4=326,0,0,0;MQ=58;FQ=-282	PL	0
+MT	135	.	T	.	283	.	DP=356;AF1=0;AC1=0;DP4=322,0,0,0;MQ=59;FQ=-282	PL	0
+MT	136	.	G	.	283	.	DP=358;AF1=0;AC1=0;DP4=353,0,0,0;MQ=58;FQ=-282	PL	0
+MT	137	.	A	.	283	.	DP=358;VDB=0.0044;AF1=0;AC1=0;DP4=317,0,0,0;MQ=58;FQ=-282	PL	0
+MT	138	.	T	.	283	.	DP=358;VDB=0.0250;AF1=0;AC1=0;DP4=355,0,0,0;MQ=58;FQ=-282	PL	0
+MT	139	.	T	.	283	.	DP=360;AF1=0;AC1=0;DP4=328,0,0,0;MQ=58;FQ=-282	PL	0
+MT	140	.	C	.	283	.	DP=356;VDB=0.0367;AF1=0;AC1=0;DP4=338,0,2,0;MQ=58;FQ=-282;PV4=1,0.0065,2.6e-06,0.23	PL	0
+MT	141	.	C	.	283	.	DP=360;AF1=0;AC1=0;DP4=321,0,1,0;MQ=59;FQ=-282;PV4=1,0.012,1,0.13	PL	0
+MT	142	.	T	.	283	.	DP=362;VDB=0.0342;AF1=0;AC1=0;DP4=357,0,0,0;MQ=58;FQ=-282	PL	0
+MT	143	.	G	.	283	.	DP=360;VDB=0.0183;AF1=0;AC1=0;DP4=353,0,1,0;MQ=58;FQ=-282;PV4=1,0.0017,1,0.18	PL	0
+MT	144	.	C	.	283	.	DP=364;VDB=0.0101;AF1=0;AC1=0;DP4=325,0,0,0;MQ=59;FQ=-282	PL	0
+MT	145	.	C	.	283	.	DP=363;VDB=0.0063;AF1=0;AC1=0;DP4=330,0,0,0;MQ=58;FQ=-282	PL	0
+MT	146	.	T	.	283	.	DP=361;VDB=0.0207;AF1=0;AC1=0;DP4=358,0,0,0;MQ=58;FQ=-282	PL	0
+MT	147	.	C	.	283	.	DP=362;AF1=0;AC1=0;DP4=357,0,0,0;MQ=58;FQ=-282	PL	0
+MT	148	.	A	.	283	.	DP=363;VDB=0.0051;AF1=0;AC1=0;DP4=347,0,0,0;MQ=58;FQ=-282	PL	0
+MT	149	.	T	.	283	.	DP=363;AF1=0;AC1=0;DP4=363,0,0,0;MQ=58;FQ=-282	PL	0
+MT	150	.	C	.	283	.	DP=363;VDB=0.0168;AF1=0;AC1=0;DP4=350,0,0,0;MQ=58;FQ=-282	PL	0
+MT	151	.	C	.	283	.	DP=359;AF1=0;AC1=0;DP4=337,0,1,0;MQ=58;FQ=-282;PV4=1,6.7e-05,1,0.077	PL	0
+MT	152	.	T	.	283	.	DP=355;VDB=0.0237;AF1=0;AC1=0;DP4=352,0,2,0;MQ=58;FQ=-282;PV4=1,0.028,1,1	PL	0
+MT	153	.	A	.	283	.	DP=354;VDB=0.0115;AF1=0;AC1=0;DP4=327,0,5,0;MQ=58;FQ=-282;PV4=1,0.001,0.15,0.009	PL	0
+MT	154	.	T	.	283	.	DP=353;VDB=0.0051;AF1=0;AC1=0;DP4=349,0,0,0;MQ=58;FQ=-282	PL	0
+MT	155	.	T	.	283	.	DP=357;AF1=0;AC1=0;DP4=343,0,0,0;MQ=58;FQ=-282	PL	0
+MT	156	.	A	.	283	.	DP=357;VDB=0.0210;AF1=0;AC1=0;DP4=337,0,0,0;MQ=58;FQ=-282	PL	0
+MT	157	.	T	.	283	.	DP=356;AF1=0;AC1=0;DP4=355,0,0,0;MQ=58;FQ=-282	PL	0
+MT	158	.	T	.	283	.	DP=351;AF1=0;AC1=0;DP4=333,0,0,0;MQ=58;FQ=-282	PL	0
+MT	159	.	T	.	283	.	DP=343;AF1=0;AC1=0;DP4=321,0,0,0;MQ=58;FQ=-282	PL	0
+MT	160	.	A	.	283	.	DP=337;AF1=0;AC1=0;DP4=313,0,0,0;MQ=58;FQ=-282	PL	0
+MT	161	.	T	.	283	.	DP=336;AF1=0;AC1=0;DP4=334,0,1,0;MQ=58;FQ=-282;PV4=1,7.6e-06,1,1	PL	0
+MT	162	.	C	.	283	.	DP=333;VDB=0.0245;AF1=0;AC1=0;DP4=314,0,0,0;MQ=58;FQ=-282	PL	0
+MT	163	.	G	.	278	.	DP=328;VDB=0.0200;AF1=0;AC1=0;DP4=308,0,0,0;MQ=58;FQ=-282	PL	0
+MT	164	.	C	.	283	.	DP=328;VDB=0.0212;AF1=0;AC1=0;DP4=306,0,0,0;MQ=59;FQ=-282	PL	0
+MT	165	.	A	.	283	.	DP=330;VDB=0.0167;AF1=0;AC1=0;DP4=319,0,1,0;MQ=58;FQ=-282;PV4=1,0.0026,1,0.18	PL	0
+MT	166	.	C	.	283	.	DP=332;VDB=0.0134;AF1=0;AC1=0;DP4=308,0,2,0;MQ=59;FQ=-282;PV4=1,1.6e-07,1,1	PL	0
+MT	167	.	C	.	283	.	DP=330;AF1=0;AC1=0;DP4=310,0,1,0;MQ=59;FQ=-282;PV4=1,3e-05,1,1	PL	0
+MT	168	.	T	.	283	.	DP=329;AF1=0;AC1=0;DP4=329,0,0,0;MQ=58;FQ=-282	PL	0
+MT	169	.	A	.	283	.	DP=332;AF1=0;AC1=0;DP4=314,0,0,0;MQ=59;FQ=-282	PL	0
+MT	170	.	C	.	283	.	DP=327;VDB=0.0144;AF1=0;AC1=0;DP4=307,0,1,0;MQ=59;FQ=-282;PV4=1,0.0013,1,1	PL	0
+MT	171	.	G	.	283	.	DP=326;AF1=0;AC1=0;DP4=315,0,0,0;MQ=59;FQ=-282	PL	0
+MT	172	.	T	.	283	.	DP=325;VDB=0.0086;AF1=0;AC1=0;DP4=323,0,0,0;MQ=59;FQ=-282	PL	0
+MT	173	.	T	.	283	.	DP=324;AF1=0;AC1=0;DP4=311,0,0,0;MQ=59;FQ=-282	PL	0
+MT	174	.	C	.	283	.	DP=321;VDB=0.0227;AF1=0;AC1=0;DP4=307,0,1,0;MQ=59;FQ=-282;PV4=1,2.4e-06,1,0.32	PL	0
+MT	175	.	A	.	283	.	DP=323;VDB=0.0183;AF1=0;AC1=0;DP4=312,0,0,0;MQ=59;FQ=-282	PL	0
+MT	176	.	A	.	283	.	DP=320;AF1=0;AC1=0;DP4=306,0,1,0;MQ=59;FQ=-282;PV4=1,0.00011,1,1	PL	0
+MT	177	.	T	.	283	.	DP=317;AF1=0;AC1=0;DP4=317,0,0,0;MQ=58;FQ=-282	PL	0
+MT	178	.	A	.	283	.	DP=321;AF1=0;AC1=0;DP4=313,0,0,0;MQ=59;FQ=-282	PL	0
+MT	179	.	T	.	283	.	DP=322;AF1=0;AC1=0;DP4=322,0,0,0;MQ=59;FQ=-282	PL	0
+MT	180	.	T	.	283	.	DP=324;AF1=0;AC1=0;DP4=307,0,0,0;MQ=59;FQ=-282	PL	0
+MT	181	.	A	.	283	.	DP=323;AF1=0;AC1=0;DP4=311,0,0,0;MQ=59;FQ=-282	PL	0
+MT	182	.	C	.	283	.	DP=323;VDB=0.0160;AF1=0;AC1=0;DP4=302,0,1,0;MQ=59;FQ=-282;PV4=1,0.12,1.7e-06,1	PL	0
+MT	183	.	A	.	283	.	DP=326;VDB=0.0096;AF1=0;AC1=0;DP4=318,0,0,0;MQ=59;FQ=-282	PL	0
+MT	184	.	G	.	283	.	DP=328;VDB=0.0128;AF1=0;AC1=0;DP4=325,0,2,0;MQ=59;FQ=-282;PV4=1,1e-05,1,0.37	PL	0
+MT	185	.	G	.	283	.	DP=328;AF1=0;AC1=0;DP4=298,0,1,0;MQ=59;FQ=-282;PV4=1,4.8e-06,1,1	PL	0
+MT	186	.	C	.	283	.	DP=324;VDB=0.0238;AF1=0;AC1=0;DP4=295,0,0,0;MQ=59;FQ=-282	PL	0
+MT	187	.	G	.	283	.	DP=325;AF1=0;AC1=0;DP4=305,0,0,0;MQ=59;FQ=-282	PL	0
+MT	188	.	A	.	283	.	DP=326;VDB=0.0335;AF1=0;AC1=0;DP4=301,0,1,0;MQ=59;FQ=-282;PV4=1,0.0032,1,1	PL	0
+MT	189	.	A	.	283	.	DP=324;AF1=0;AC1=0;DP4=300,0,0,0;MQ=59;FQ=-282	PL	0
+MT	190	.	C	.	283	.	DP=322;VDB=0.0192;AF1=0;AC1=0;DP4=298,0,1,0;MQ=59;FQ=-282;PV4=1,3.9e-06,7.9e-07,1	PL	0
+MT	191	.	A	.	283	.	DP=324;VDB=0.0009;AF1=0;AC1=0;DP4=313,0,0,0;MQ=59;FQ=-282	PL	0
+MT	192	.	T	.	283	.	DP=321;AF1=0;AC1=0;DP4=320,0,0,0;MQ=59;FQ=-282	PL	0
+MT	193	.	A	.	283	.	DP=329;VDB=0.0299;AF1=0;AC1=0;DP4=307,0,2,0;MQ=59;FQ=-282;PV4=1,0.003,1,0.11	PL	0
+MT	194	.	C	.	283	.	DP=332;VDB=0.0429;AF1=0;AC1=0;DP4=301,0,2,0;MQ=59;FQ=-282;PV4=1,3e-05,1,0.071	PL	0
+MT	195	.	T	.	283	.	DP=329;VDB=0.0121;AF1=0;AC1=0;DP4=327,0,0,0;MQ=59;FQ=-282	PL	0
+MT	196	.	T	.	283	.	DP=326;AF1=0;AC1=0;DP4=308,0,0,0;MQ=59;FQ=-282	PL	0
+MT	197	.	A	.	283	.	DP=328;AF1=0;AC1=0;DP4=311,0,0,0;MQ=59;FQ=-282	PL	0
+MT	198	.	C	.	283	.	DP=329;VDB=0.0187;AF1=0;AC1=0;DP4=310,0,1,0;MQ=59;FQ=-282;PV4=1,2.3e-05,1,0.25	PL	0
+MT	199	.	T	.	283	.	DP=329;AF1=0;AC1=0;DP4=327,0,0,0;MQ=59;FQ=-282	PL	0
+MT	200	.	A	.	283	.	DP=333;VDB=0.0220;AF1=0;AC1=0;DP4=321,0,0,0;MQ=59;FQ=-282	PL	0
+MT	201	.	A	.	283	.	DP=331;AF1=0;AC1=0;DP4=315,0,0,0;MQ=59;FQ=-282	PL	0
+MT	202	.	A	.	283	.	DP=332;AF1=0;AC1=0;DP4=311,0,0,0;MQ=59;FQ=-282	PL	0
+MT	203	.	G	.	283	.	DP=327;VDB=0.0123;AF1=0;AC1=0;DP4=324,0,1,0;MQ=59;FQ=-282;PV4=1,0.0021,1,0.093	PL	0
+MT	204	.	T	.	283	.	DP=326;VDB=0.0025;AF1=0;AC1=0;DP4=318,0,2,0;MQ=59;FQ=-282;PV4=1,1.1e-05,9.1e-07,0.23	PL	0
+MT	205	.	G	.	283	.	DP=329;AF1=0;AC1=0;DP4=326,0,0,0;MQ=59;FQ=-282	PL	0
+MT	206	.	T	.	283	.	DP=331;VDB=0.0044;AF1=0;AC1=0;DP4=322,0,1,0;MQ=59;FQ=-282;PV4=1,0.00013,2.1e-07,0.23	PL	0
+MT	207	.	G	.	283	.	DP=333;AF1=0;AC1=0;DP4=330,0,0,0;MQ=59;FQ=-282	PL	0
+MT	208	.	T	.	283	.	DP=332;AF1=0;AC1=0;DP4=332,0,0,0;MQ=59;FQ=-282	PL	0
+MT	209	.	T	.	283	.	DP=332;AF1=0;AC1=0;DP4=318,0,0,0;MQ=59;FQ=-282	PL	0
+MT	210	.	A	.	283	.	DP=332;AF1=0;AC1=0;DP4=319,0,1,0;MQ=59;FQ=-282;PV4=1,2.9e-05,2.5e-06,1	PL	0
+MT	211	.	A	.	283	.	DP=334;AF1=0;AC1=0;DP4=324,0,0,0;MQ=59;FQ=-282	PL	0
+MT	212	.	T	.	283	.	DP=335;AF1=0;AC1=0;DP4=335,0,0,0;MQ=59;FQ=-282	PL	0
+MT	213	.	T	.	283	.	DP=335;AF1=0;AC1=0;DP4=325,0,0,0;MQ=59;FQ=-282	PL	0
+MT	214	.	A	.	283	.	DP=338;AF1=0;AC1=0;DP4=330,0,0,0;MQ=59;FQ=-282	PL	0
+MT	215	.	A	.	283	.	DP=333;AF1=0;AC1=0;DP4=323,0,0,0;MQ=59;FQ=-282	PL	0
+MT	216	.	T	.	283	.	DP=331;AF1=0;AC1=0;DP4=331,0,0,0;MQ=58;FQ=-282	PL	0
+MT	217	.	T	.	283	.	DP=332;AF1=0;AC1=0;DP4=324,0,0,0;MQ=59;FQ=-282	PL	0
+MT	218	.	A	.	283	.	DP=332;VDB=0.0072;AF1=0;AC1=0;DP4=327,0,2,0;MQ=58;FQ=-282;PV4=1,3.1e-12,0.00014,0.25	PL	0
+MT	219	.	A	.	283	.	DP=331;AF1=0;AC1=0;DP4=324,0,0,0;MQ=59;FQ=-282	PL	0
+MT	220	.	T	.	283	.	DP=331;AF1=0;AC1=0;DP4=330,0,1,0;MQ=58;FQ=-282;PV4=1,4.3e-07,0.00018,0.4	PL	0
+MT	221	.	G	.	283	.	DP=330;AF1=0;AC1=0;DP4=328,0,0,0;MQ=58;FQ=-282	PL	0
+MT	222	.	C	.	283	.	DP=333;VDB=0.0248;AF1=0;AC1=0;DP4=320,0,0,0;MQ=59;FQ=-282	PL	0
+MT	223	.	T	.	283	.	DP=329;VDB=0.0198;AF1=0;AC1=0;DP4=327,0,0,0;MQ=58;FQ=-282	PL	0
+MT	224	.	T	.	283	.	DP=328;AF1=0;AC1=0;DP4=320,0,0,0;MQ=59;FQ=-282	PL	0
+MT	225	.	G	.	283	.	DP=331;AF1=0;AC1=0;DP4=330,0,0,0;MQ=58;FQ=-282	PL	0
+MT	226	.	T	.	283	.	DP=329;AF1=0;AC1=0;DP4=327,0,0,0;MQ=58;FQ=-282	PL	0
+MT	227	.	A	.	283	.	DP=324;AF1=0;AC1=0;DP4=316,0,0,0;MQ=58;FQ=-282	PL	0
+MT	228	.	G	.	283	.	DP=321;AF1=0;AC1=0;DP4=320,0,1,0;MQ=58;FQ=-282;PV4=1,2e-06,0.00026,1	PL	0
+MT	229	.	G	.	283	.	DP=318;AF1=0;AC1=0;DP4=304,0,0,0;MQ=58;FQ=-282	PL	0
+MT	230	.	A	.	283	.	DP=320;AF1=0;AC1=0;DP4=311,0,0,0;MQ=58;FQ=-282	PL	0
+MT	231	.	C	.	283	.	DP=319;AF1=0;AC1=0;DP4=309,0,0,0;MQ=58;FQ=-282	PL	0
+MT	232	.	A	.	283	.	DP=317;AF1=0;AC1=0;DP4=309,0,0,0;MQ=58;FQ=-282	PL	0
+MT	233	.	T	.	283	.	DP=319;AF1=0;AC1=0;DP4=319,0,0,0;MQ=58;FQ=-282	PL	0
+MT	234	.	A	.	283	.	DP=314;AF1=0;AC1=0;DP4=308,0,0,0;MQ=58;FQ=-282	PL	0
+MT	235	.	A	.	283	.	DP=314;AF1=0;AC1=0;DP4=307,0,0,0;MQ=58;FQ=-282	PL	0
+MT	236	.	T	.	283	.	DP=318;AF1=0;AC1=0;DP4=317,0,1,0;MQ=58;FQ=-282;PV4=1,4.1e-10,1,0.44	PL	0
+MT	237	.	A	.	283	.	DP=320;VDB=0.0168;AF1=0;AC1=0;DP4=313,0,1,0;MQ=58;FQ=-282;PV4=1,0.00077,1,0.1	PL	0
+MT	238	.	A	.	283	.	DP=318;AF1=0;AC1=0;DP4=313,0,0,0;MQ=58;FQ=-282	PL	0
+MT	239	.	T	.	283	.	DP=316;AF1=0;AC1=0;DP4=316,0,0,0;MQ=58;FQ=-282	PL	0
+MT	240	.	A	.	283	.	DP=315;AF1=0;AC1=0;DP4=310,0,0,0;MQ=58;FQ=-282	PL	0
+MT	241	.	A	.	283	.	DP=314;VDB=0.0160;AF1=0;AC1=0;DP4=309,0,1,0;MQ=58;FQ=-282;PV4=1,0.036,1,1	PL	0
+MT	242	.	C	.	283	.	DP=314;VDB=0.0183;AF1=0;AC1=0;DP4=305,0,0,0;MQ=58;FQ=-282	PL	0
+MT	243	.	A	.	283	.	DP=316;AF1=0;AC1=0;DP4=313,0,0,0;MQ=58;FQ=-282	PL	0
+MT	244	.	A	.	283	.	DP=320;AF1=0;AC1=0;DP4=314,0,0,0;MQ=58;FQ=-282	PL	0
+MT	245	.	T	.	283	.	DP=316;AF1=0;AC1=0;DP4=316,0,0,0;MQ=57;FQ=-282	PL	0
+MT	246	.	T	.	283	.	DP=319;AF1=0;AC1=0;DP4=311,0,0,0;MQ=57;FQ=-282	PL	0
+MT	247	.	G	.	283	.	DP=323;AF1=0;AC1=0;DP4=322,0,0,0;MQ=57;FQ=-282	PL	0
+MT	248	.	A	.	283	.	DP=327;AF1=0;AC1=0;DP4=320,0,0,0;MQ=57;FQ=-282	PL	0
+MT	249	.	A	.	283	.	DP=328;AF1=0;AC1=0;DP4=318,0,1,0;MQ=57;FQ=-282;PV4=1,1.7e-07,0.00026,1	PL	0
+MT	250	.	T	.	283	.	DP=326;AF1=0;AC1=0;DP4=324,0,0,0;MQ=57;FQ=-282	PL	0
+MT	251	.	G	.	283	.	DP=323;AF1=0;AC1=0;DP4=323,0,0,0;MQ=57;FQ=-282	PL	0
+MT	252	.	T	.	283	.	DP=324;VDB=0.0217;AF1=0;AC1=0;DP4=322,0,0,0;MQ=56;FQ=-282	PL	0
+MT	253	.	C	.	283	.	DP=328;VDB=0.0158;AF1=0;AC1=0;DP4=322,0,1,0;MQ=56;FQ=-282;PV4=1,5.7e-05,1,0.41	PL	0
+MT	254	.	T	.	283	.	DP=324;AF1=0;AC1=0;DP4=324,0,0,0;MQ=56;FQ=-282	PL	0
+MT	255	.	G	.	283	.	DP=319;AF1=0;AC1=0;DP4=318,0,1,0;MQ=56;FQ=-282;PV4=1,1.7e-08,1,0.033	PL	0
+MT	256	.	C	.	283	.	DP=312;AF1=0;AC1=0;DP4=303,0,0,0;MQ=56;FQ=-282	PL	0
+MT	257	.	A	.	283	.	DP=312;AF1=0;AC1=0;DP4=307,0,0,0;MQ=56;FQ=-282	PL	0
+MT	258	.	C	.	283	.	DP=313;AF1=0;AC1=0;DP4=303,0,0,0;MQ=56;FQ=-282	PL	0
+MT	259	.	A	.	283	.	DP=312;VDB=0.0069;AF1=0;AC1=0;DP4=300,0,0,0;MQ=56;FQ=-282	PL	0
+MT	260	.	G	.	283	.	DP=309;AF1=0;AC1=0;DP4=307,0,0,0;MQ=56;FQ=-282	PL	0
+MT	261	.	C	.	283	.	DP=303;AF1=0;AC1=0;DP4=290,0,0,0;MQ=56;FQ=-282	PL	0
+MT	262	.	C	.	283	.	DP=303;AF1=0;AC1=0;DP4=286,0,0,0;MQ=56;FQ=-282	PL	0
+MT	263	.	A	G	210	.	DP=302;VDB=0.0417;AF1=1;AC1=2;DP4=0,0,289,0;MQ=56;FQ=-282	GT:PL:GQ	1/1:243,255,0:99
+MT	264	.	C	.	283	.	DP=309;VDB=0.0180;AF1=0;AC1=0;DP4=290,0,0,0;MQ=55;FQ=-282	PL	0
+MT	265	.	T	.	283	.	DP=311;AF1=0;AC1=0;DP4=310,0,0,0;MQ=55;FQ=-282	PL	0
+MT	266	.	T	.	283	.	DP=311;AF1=0;AC1=0;DP4=298,0,0,0;MQ=55;FQ=-282	PL	0
+MT	267	.	T	.	283	.	DP=310;AF1=0;AC1=0;DP4=293,0,0,0;MQ=55;FQ=-282	PL	0
+MT	268	.	C	.	283	.	DP=308;VDB=0.0214;AF1=0;AC1=0;DP4=298,0,0,0;MQ=55;FQ=-282	PL	0
+MT	269	.	C	.	283	.	DP=307;VDB=0.0183;AF1=0;AC1=0;DP4=293,0,2,0;MQ=55;FQ=-282;PV4=1,2.4e-10,1,0.1	PL	0
+MT	270	.	A	.	283	.	DP=306;AF1=0;AC1=0;DP4=300,0,0,0;MQ=55;FQ=-282	PL	0
+MT	271	.	C	.	283	.	DP=307;AF1=0;AC1=0;DP4=298,0,0,0;MQ=55;FQ=-282	PL	0
+MT	272	.	A	.	283	.	DP=308;AF1=0;AC1=0;DP4=300,0,0,0;MQ=55;FQ=-282	PL	0
+MT	273	.	C	.	283	.	DP=306;AF1=0;AC1=0;DP4=296,0,0,0;MQ=55;FQ=-282	PL	0
+MT	274	.	A	.	283	.	DP=303;AF1=0;AC1=0;DP4=294,0,1,0;MQ=55;FQ=-282;PV4=1,0.0016,0.05,1	PL	0
+MT	275	.	G	.	283	.	DP=308;AF1=0;AC1=0;DP4=306,0,0,0;MQ=55;FQ=-282	PL	0
+MT	276	.	A	.	283	.	DP=308;VDB=0.0253;AF1=0;AC1=0;DP4=289,0,0,0;MQ=55;FQ=-282	PL	0
+MT	277	.	C	.	283	.	DP=307;VDB=0.0163;AF1=0;AC1=0;DP4=291,0,1,0;MQ=55;FQ=-282;PV4=1,0.04,1,0.18	PL	0
+MT	278	.	A	.	283	.	DP=305;VDB=0.0144;AF1=0;AC1=0;DP4=295,0,0,0;MQ=55;FQ=-282	PL	0
+MT	279	.	T	.	283	.	DP=303;AF1=0;AC1=0;DP4=303,0,0,0;MQ=54;FQ=-282	PL	0
+MT	280	.	C	.	283	.	DP=300;AF1=0;AC1=0;DP4=296,0,0,0;MQ=54;FQ=-282	PL	0
+MT	281	.	A	.	283	.	DP=298;AF1=0;AC1=0;DP4=294,0,0,0;MQ=54;FQ=-282	PL	0
+MT	282	.	T	.	283	.	DP=298;AF1=0;AC1=0;DP4=298,0,0,0;MQ=54;FQ=-282	PL	0
+MT	283	.	A	.	283	.	DP=292;VDB=0.0183;AF1=0;AC1=0;DP4=281,0,2,0;MQ=54;FQ=-282;PV4=1,1.5e-06,0.094,0.37	PL	0
+MT	284	.	A	.	283	.	DP=287;AF1=0;AC1=0;DP4=278,0,0,0;MQ=54;FQ=-282	PL	0
+MT	285	.	C	.	283	.	DP=283;VDB=0.0121;AF1=0;AC1=0;DP4=278,0,0,0;MQ=54;FQ=-282	PL	0
+MT	286	.	A	.	283	.	DP=279;AF1=0;AC1=0;DP4=274,0,0,0;MQ=54;FQ=-282	PL	0
+MT	287	.	A	.	283	.	DP=273;AF1=0;AC1=0;DP4=265,0,0,0;MQ=54;FQ=-282	PL	0
+MT	288	.	A	.	283	.	DP=270;AF1=0;AC1=0;DP4=260,0,0,0;MQ=54;FQ=-282	PL	0
+MT	289	.	A	.	283	.	DP=267;VDB=0.0106;AF1=0;AC1=0;DP4=252,0,0,0;MQ=54;FQ=-282	PL	0
+MT	290	.	A	.	283	.	DP=261;VDB=0.0133;AF1=0;AC1=0;DP4=250,0,0,0;MQ=53;FQ=-282	PL	0
+MT	291	.	A	.	283	.	DP=259;AF1=0;AC1=0;DP4=247,0,0,0;MQ=54;FQ=-282	PL	0
+MT	292	.	T	.	283	.	DP=255;AF1=0;AC1=0;DP4=255,0,0,0;MQ=53;FQ=-282	PL	0
+MT	293	.	T	.	283	.	DP=259;AF1=0;AC1=0;DP4=246,0,0,0;MQ=54;FQ=-282	PL	0
+MT	294	.	T	.	283	.	DP=257;AF1=0;AC1=0;DP4=245,0,0,0;MQ=54;FQ=-282	PL	0
+MT	295	.	C	.	283	.	DP=254;AF1=0;AC1=0;DP4=246,0,0,0;MQ=54;FQ=-282	PL	0
+MT	296	.	C	.	283	.	DP=253;AF1=0;AC1=0;DP4=234,0,0,0;MQ=54;FQ=-282	PL	0
+MT	297	.	A	.	283	.	DP=253;VDB=0.0099;AF1=0;AC1=0;DP4=244,0,0,0;MQ=54;FQ=-282	PL	0
+MT	298	.	C	.	283	.	DP=253;VDB=0.0168;AF1=0;AC1=0;DP4=236,0,0,0;MQ=54;FQ=-282	PL	0
+MT	299	.	C	.	283	.	DP=251;AF1=0;AC1=0;DP4=229,0,1,0;MQ=54;FQ=-282;PV4=1,0.0068,1,1	PL	0
+MT	300	.	A	.	283	.	DP=249;AF1=0;AC1=0;DP4=237,0,0,0;MQ=53;FQ=-282	PL	0
+MT	301	.	A	.	283	.	DP=248;VDB=0.0369;AF1=0;AC1=0;DP4=223,0,1,0;MQ=54;FQ=-282;PV4=1,1.3e-05,0.058,0.12	PL	0
+MT	302	.	A	.	283	.	DP=248;VDB=0.0227;AF1=0;AC1=0;DP4=221,0,1,0;MQ=54;FQ=-282;PV4=1,8.3e-05,0.057,0.14	PL	0
+MT	302	.	ACCCCCCC	.	84.6	.	INDEL;DP=248;VDB=0.0435;AF1=0;AC1=0;DP4=26,0,2,0;MQ=47;FQ=-88.5;PV4=1,1,1,0.21	PL	0
+MT	303	.	C	.	283	.	DP=244;AF1=0;AC1=0;DP4=205,0,0,0;MQ=55;FQ=-282	PL	0
+MT	304	.	C	.	283	.	DP=242;VDB=0.0100;AF1=0;AC1=0;DP4=197,0,1,0;MQ=55;FQ=-282;PV4=1,0.0027,0.0048,1	PL	0
+MT	304	.	C	.	85.5	.	INDEL;DP=242;VDB=0.0435;AF1=0;AC1=0;DP4=59,0,1,0;MQ=53;FQ=-197;PV4=1,0.22,1,1	PL	0
+MT	305	.	C	.	283	.	DP=250;VDB=0.0158;AF1=0;AC1=0;DP4=193,0,2,0;MQ=55;FQ=-282;PV4=1,0.00014,1,0.3	PL	0
+MT	306	.	C	.	283	.	DP=252;VDB=0.0111;AF1=0;AC1=0;DP4=194,0,2,0;MQ=54;FQ=-282;PV4=1,0.00023,1,0.11	PL	0
+MT	307	.	C	.	283	.	DP=252;VDB=0.0284;AF1=0;AC1=0;DP4=190,0,3,0;MQ=55;FQ=-282;PV4=1,2e-06,0.0019,0.34	PL	0
+MT	308	.	C	.	283	.	DP=255;VDB=0.0090;AF1=0;AC1=0;DP4=175,0,2,0;MQ=56;FQ=-282;PV4=1,1.9e-06,1,0.11	PL	0
+MT	309	.	C	.	283	.	DP=257;VDB=0.0001;AF1=0;AC1=0;DP4=176,0,0,0;MQ=56;FQ=-282	PL	0
+MT	310	.	T	.	283	.	DP=260;VDB=0.0268;AF1=0;AC1=0;DP4=204,0,0,0;MQ=54;FQ=-282	PL	0
+MT	311	.	C	.	105	.	DP=265;VDB=0.0195;AF1=0;AC1=0;DP4=25,0,0,0;MQ=53;FQ=-102	PL	0
+MT	312	.	C	.	102	.	DP=271;AF1=0;AC1=0;DP4=23,1,0,0;MQ=58;FQ=-99	PL	0
+MT	313	.	C	.	132	.	DP=282;AF1=0;AC1=0;DP4=33,1,0,0;MQ=59;FQ=-129	PL	0
+MT	314	.	C	.	138	.	DP=280;AF1=0;AC1=0;DP4=35,1,0,0;MQ=58;FQ=-135	PL	0
+MT	315	.	C	.	147	.	DP=281;AF1=0;AC1=0;DP4=38,1,0,0;MQ=58;FQ=-144	PL	0
+MT	316	.	G	.	255	.	DP=270;VDB=0.0233;AF1=0;AC1=0;DP4=199,1,2,0;MQ=57;FQ=-282;PV4=1,0.0058,0.075,1	PL	0
+MT	317	.	C	.	283	.	DP=278;VDB=0.0227;AF1=0;AC1=0;DP4=221,2,0,0;MQ=58;FQ=-282	PL	0
+MT	318	.	T	.	283	.	DP=286;VDB=0.0367;AF1=0;AC1=0;DP4=267,2,0,0;MQ=56;FQ=-282	PL	0
+MT	319	.	T	.	283	.	DP=287;VDB=0.0449;AF1=0;AC1=0;DP4=236,2,2,0;MQ=57;FQ=-282;PV4=1,5.5e-08,0.011,0.33	PL	0
+MT	320	.	C	.	283	.	DP=288;VDB=0.0233;AF1=0;AC1=0;DP4=263,3,0,0;MQ=56;FQ=-282	PL	0
+MT	321	.	T	.	283	.	DP=289;VDB=0.0302;AF1=0;AC1=0;DP4=270,3,1,1;MQ=56;FQ=-282;PV4=0.029,0.00028,0.12,0.0089	PL	0
+MT	322	.	G	.	283	.	DP=290;VDB=0.0093;AF1=0;AC1=0;DP4=258,4,4,0;MQ=56;FQ=-282;PV4=1,6.5e-05,1.4e-06,1	PL	0
+MT	323	.	G	.	283	.	DP=291;VDB=0.0081;AF1=0;AC1=0;DP4=212,5,0,0;MQ=58;FQ=-282	PL	0
+MT	324	.	C	.	283	.	DP=292;VDB=0.0099;AF1=0;AC1=0;DP4=231,5,1,0;MQ=58;FQ=-282;PV4=1,0.0031,1,0.26	PL	0
+MT	325	.	C	.	283	.	DP=295;VDB=0.0128;AF1=0;AC1=0;DP4=236,10,2,0;MQ=58;FQ=-282;PV4=1,8.7e-06,2.3e-05,0.47	PL	0
+MT	326	.	A	.	283	.	DP=298;VDB=0.0449;AF1=0;AC1=0;DP4=257,14,3,0;MQ=56;FQ=-282;PV4=1,0.0039,1,1	PL	0
+MT	327	.	C	.	283	.	DP=307;VDB=0.0302;AF1=0;AC1=0;DP4=238,18,2,0;MQ=57;FQ=-282;PV4=1,0.00016,0.077,0.41	PL	0
+MT	328	.	A	.	283	.	DP=311;VDB=0.0115;AF1=0;AC1=0;DP4=258,19,1,0;MQ=56;FQ=-282;PV4=1,0.023,1,1	PL	0
+MT	329	.	G	.	283	.	DP=316;VDB=0.0335;AF1=0;AC1=0;DP4=279,16,3,0;MQ=56;FQ=-282;PV4=1,0.00045,0.017,1	PL	0
+MT	330	.	C	.	283	.	DP=322;VDB=0.0115;AF1=0;AC1=0;DP4=237,22,0,0;MQ=57;FQ=-282	PL	0
+MT	331	.	A	.	283	.	DP=332;VDB=0.0302;AF1=0;AC1=0;DP4=268,25,0,0;MQ=56;FQ=-282	PL	0
+MT	332	.	C	.	283	.	DP=337;VDB=0.0104;AF1=0;AC1=0;DP4=257,28,1,0;MQ=56;FQ=-282;PV4=1,0.00057,0.00021,0.22	PL	0
+MT	333	.	T	.	283	.	DP=339;VDB=0.0005;AF1=0;AC1=0;DP4=305,24,0,0;MQ=56;FQ=-282	PL	0
+MT	334	.	T	.	283	.	DP=349;VDB=0.0106;AF1=0;AC1=0;DP4=275,31,0,0;MQ=56;FQ=-282	PL	0
+MT	335	.	A	.	283	.	DP=356;VDB=0.0057;AF1=0;AC1=0;DP4=283,32,1,0;MQ=56;FQ=-282;PV4=1,0.037,0.014,1	PL	0
+MT	336	.	A	.	283	.	DP=361;AF1=0;AC1=0;DP4=279,34,0,0;MQ=56;FQ=-282	PL	0
+MT	337	.	A	.	283	.	DP=359;VDB=0.0022;AF1=0;AC1=0;DP4=278,40,1,0;MQ=56;FQ=-282;PV4=1,0.16,1,0.093	PL	0
+MT	338	.	C	.	283	.	DP=359;VDB=0.0302;AF1=0;AC1=0;DP4=267,41,3,0;MQ=56;FQ=-282;PV4=1,3.1e-06,1,1	PL	0
+MT	339	.	A	.	283	.	DP=365;VDB=0.0242;AF1=0;AC1=0;DP4=295,45,0,0;MQ=55;FQ=-282	PL	0
+MT	340	.	C	.	283	.	DP=372;VDB=0.0169;AF1=0;AC1=0;DP4=284,51,1,0;MQ=55;FQ=-282;PV4=1,0.00047,0.025,1	PL	0
+MT	341	.	A	.	283	.	DP=378;VDB=0.0325;AF1=0;AC1=0;DP4=299,54,0,0;MQ=55;FQ=-282	PL	0
+MT	342	.	T	.	283	.	DP=385;VDB=0.0324;AF1=0;AC1=0;DP4=321,47,0,0;MQ=55;FQ=-282	PL	0
+MT	343	.	C	.	283	.	DP=387;VDB=0.0169;AF1=0;AC1=0;DP4=298,62,2,0;MQ=54;FQ=-282;PV4=1,9.5e-06,1,0.48	PL	0
+MT	344	.	T	.	283	.	DP=392;VDB=0.0394;AF1=0;AC1=0;DP4=319,49,1,1;MQ=55;FQ=-282;PV4=0.25,6.8e-05,0.16,1	PL	0
+MT	345	.	C	.	283	.	DP=403;AF1=0;AC1=0;DP4=314,70,0,0;MQ=54;FQ=-282	PL	0
+MT	346	.	T	.	283	.	DP=412;VDB=0.0124;AF1=0;AC1=0;DP4=335,70,0,0;MQ=54;FQ=-282	PL	0
+MT	347	.	G	.	283	.	DP=418;VDB=0.0335;AF1=0;AC1=0;DP4=290,71,5,0;MQ=54;FQ=-282;PV4=0.59,6.4e-09,0.002,1	PL	0
+MT	348	.	C	.	283	.	DP=429;AF1=0;AC1=0;DP4=300,80,1,0;MQ=54;FQ=-282;PV4=1,0.0017,1,0.19	PL	0
+MT	349	.	C	.	283	.	DP=441;VDB=0.0396;AF1=0;AC1=0;DP4=312,87,1,0;MQ=54;FQ=-282;PV4=1,2.7e-05,0.043,1	PL	0
+MT	350	.	A	.	283	.	DP=451;VDB=0.0115;AF1=0;AC1=0;DP4=333,83,0,0;MQ=54;FQ=-282	PL	0
+MT	351	.	A	.	283	.	DP=456;VDB=0.0445;AF1=0;AC1=0;DP4=322,89,0,0;MQ=54;FQ=-282	PL	0
+MT	352	.	A	.	283	.	DP=458;VDB=0.0245;AF1=0;AC1=0;DP4=321,98,0,0;MQ=53;FQ=-282	PL	0
+MT	353	.	C	.	283	.	DP=467;VDB=0.0449;AF1=0;AC1=0;DP4=317,100,0,0;MQ=53;FQ=-282	PL	0
+MT	354	.	C	.	283	.	DP=481;VDB=0.0447;AF1=0;AC1=0;DP4=328,104,1,1;MQ=53;FQ=-282;PV4=0.43,0.00091,0.012,1	PL	0
+MT	355	.	C	.	283	.	DP=483;AF1=0;AC1=0;DP4=339,104,0,0;MQ=53;FQ=-282	PL	0
+MT	356	.	C	.	283	.	DP=494;VDB=0.0166;AF1=0;AC1=0;DP4=340,122,1,0;MQ=52;FQ=-282;PV4=1,0.023,1,0.026	PL	0
+MT	357	.	A	.	283	.	DP=500;VDB=0.0073;AF1=0;AC1=0;DP4=353,115,2,0;MQ=53;FQ=-282;PV4=1,1.4e-06,1,1	PL	0
+MT	358	.	A	.	283	.	DP=503;VDB=0.0063;AF1=0;AC1=0;DP4=357,115,0,0;MQ=53;FQ=-282	PL	0
+MT	359	.	A	.	283	.	DP=507;VDB=0.0146;AF1=0;AC1=0;DP4=348,119,0,0;MQ=52;FQ=-282	PL	0
+MT	360	.	A	.	283	.	DP=515;VDB=0.0090;AF1=0;AC1=0;DP4=355,125,1,1;MQ=52;FQ=-282;PV4=0.45,2.4e-06,0.29,0.0068	PL	0
+MT	361	.	A	.	283	.	DP=516;VDB=0.0030;AF1=0;AC1=0;DP4=359,134,0,0;MQ=52;FQ=-282	PL	0
+MT	362	.	C	.	283	.	DP=522;AF1=0;AC1=0;DP4=361,138,1,0;MQ=52;FQ=-282;PV4=1,5.4e-06,0.078,1	PL	0
+MT	363	.	A	.	283	.	DP=528;VDB=0.0185;AF1=0;AC1=0;DP4=380,128,1,0;MQ=52;FQ=-282;PV4=1,2.2e-05,0.072,0.067	PL	0
+MT	364	.	A	.	283	.	DP=540;AF1=0;AC1=0;DP4=370,143,0,0;MQ=52;FQ=-282	PL	0
+MT	365	.	A	.	283	.	DP=552;VDB=0.0112;AF1=0;AC1=0;DP4=379,152,0,0;MQ=52;FQ=-282	PL	0
+MT	366	.	G	.	283	.	DP=553;VDB=0.0429;AF1=0;AC1=0;DP4=385,146,1,2;MQ=52;FQ=-282;PV4=0.19,5.9e-09,0.12,1	PL	0
+MT	367	.	A	.	283	.	DP=560;AF1=0;AC1=0;DP4=386,146,0,0;MQ=52;FQ=-282	PL	0
+MT	368	.	A	.	283	.	DP=566;VDB=0.0367;AF1=0;AC1=0;DP4=388,156,2,0;MQ=52;FQ=-282;PV4=1,0.0066,0.32,0.38	PL	0
+MT	369	.	C	.	283	.	DP=573;VDB=0.0009;AF1=0;AC1=0;DP4=376,150,0,0;MQ=52;FQ=-282	PL	0
+MT	370	.	C	.	283	.	DP=578;AF1=0;AC1=0;DP4=390,153,0,0;MQ=52;FQ=-282	PL	0
+MT	371	.	C	.	283	.	DP=587;VDB=0.0369;AF1=0;AC1=0;DP4=395,176,1,0;MQ=51;FQ=-282;PV4=1,0.068,0.091,1	PL	0
+MT	372	.	T	.	283	.	DP=597;VDB=0.0063;AF1=0;AC1=0;DP4=415,162,0,0;MQ=52;FQ=-282	PL	0
+MT	373	.	A	.	283	.	DP=607;VDB=0.0168;AF1=0;AC1=0;DP4=413,169,2,0;MQ=52;FQ=-282;PV4=1,0.00013,1,1	PL	0
+MT	374	.	A	.	283	.	DP=612;VDB=0.0165;AF1=0;AC1=0;DP4=414,185,0,0;MQ=51;FQ=-282	PL	0
+MT	375	.	C	.	283	.	DP=620;VDB=0.0394;AF1=0;AC1=0;DP4=406,186,7,4;MQ=51;FQ=-282;PV4=0.75,1,0.49,1	PL	0
+MT	376	.	A	.	283	.	DP=631;VDB=0.0302;AF1=0;AC1=0;DP4=423,191,0,0;MQ=51;FQ=-282	PL	0
+MT	377	.	C	.	283	.	DP=641;VDB=0.0342;AF1=0;AC1=0;DP4=421,192,1,0;MQ=51;FQ=-282;PV4=1,1.5e-06,1,0.4	PL	0
+MT	378	.	C	.	283	.	DP=656;VDB=0.0144;AF1=0;AC1=0;DP4=432,204,1,0;MQ=51;FQ=-282;PV4=1,0.12,0.093,1	PL	0
+MT	379	.	A	.	283	.	DP=671;VDB=0.0335;AF1=0;AC1=0;DP4=452,207,0,0;MQ=51;FQ=-282	PL	0
+MT	380	.	G	.	283	.	DP=676;VDB=0.0193;AF1=0;AC1=0;DP4=458,206,0,2;MQ=51;FQ=-282;PV4=0.097,7.4e-09,0.0067,0.052	PL	0
+MT	381	.	C	.	283	.	DP=686;AF1=0;AC1=0;DP4=456,209,0,0;MQ=51;FQ=-282	PL	0
+MT	382	.	C	.	283	.	DP=691;AF1=0;AC1=0;DP4=462,216,1,0;MQ=51;FQ=-282;PV4=1,1.9e-06,0.091,1	PL	0
+MT	383	.	T	.	283	.	DP=697;VDB=0.0111;AF1=0;AC1=0;DP4=474,215,1,0;MQ=51;FQ=-282;PV4=1,1.3e-08,1,0.33	PL	0
+MT	384	.	A	.	283	.	DP=699;AF1=0;AC1=0;DP4=467,221,1,0;MQ=51;FQ=-282;PV4=1,7.9e-07,1,0.032	PL	0
+MT	385	.	A	.	283	.	DP=702;VDB=0.0270;AF1=0;AC1=0;DP4=465,221,1,0;MQ=51;FQ=-282;PV4=1,0.071,1,0.23	PL	0
+MT	386	.	C	.	283	.	DP=707;VDB=0.0245;AF1=0;AC1=0;DP4=464,223,1,0;MQ=51;FQ=-282;PV4=1,0.022,1,0.064	PL	0
+MT	387	.	C	.	283	.	DP=713;AF1=0;AC1=0;DP4=468,230,1,0;MQ=51;FQ=-282;PV4=1,2e-09,1,1	PL	0
+MT	388	.	A	.	283	.	DP=719;AF1=0;AC1=0;DP4=477,234,0,0;MQ=51;FQ=-282	PL	0
+MT	389	.	G	.	283	.	DP=725;AF1=0;AC1=0;DP4=488,235,0,0;MQ=51;FQ=-282	PL	0
+MT	390	.	A	.	283	.	DP=727;VDB=0.0165;AF1=0;AC1=0;DP4=471,239,2,0;MQ=51;FQ=-282;PV4=0.55,8.2e-09,0.34,1	PL	0
+MT	391	.	T	.	283	.	DP=736;VDB=0.0193;AF1=0;AC1=0;DP4=490,238,2,0;MQ=51;FQ=-282;PV4=1,4.7e-07,0.34,1	PL	0
+MT	392	.	T	.	283	.	DP=744;AF1=0;AC1=0;DP4=488,241,1,0;MQ=51;FQ=-282;PV4=1,1.4e-09,1,1	PL	0
+MT	393	.	T	.	283	.	DP=746;AF1=0;AC1=0;DP4=486,241,0,0;MQ=51;FQ=-282	PL	0
+MT	394	.	C	.	283	.	DP=750;VDB=0.0202;AF1=0;AC1=0;DP4=496,250,0,0;MQ=51;FQ=-282	PL	0
+MT	395	.	A	.	283	.	DP=746;AF1=0;AC1=0;DP4=492,247,0,0;MQ=51;FQ=-282	PL	0
+MT	396	.	A	.	283	.	DP=752;AF1=0;AC1=0;DP4=480,252,0,0;MQ=51;FQ=-282	PL	0
+MT	397	.	A	.	283	.	DP=755;VDB=0.0215;AF1=0;AC1=0;DP4=479,258,1,0;MQ=51;FQ=-282;PV4=1,2.8e-06,0.096,1	PL	0
+MT	398	.	T	.	283	.	DP=759;AF1=0;AC1=0;DP4=495,253,0,0;MQ=51;FQ=-282	PL	0
+MT	399	.	T	.	283	.	DP=763;AF1=0;AC1=0;DP4=488,256,1,0;MQ=51;FQ=-282;PV4=1,3.9e-07,0.017,0.11	PL	0
+MT	400	.	T	.	283	.	DP=764;VDB=0.0138;AF1=0;AC1=0;DP4=485,262,0,0;MQ=51;FQ=-282	PL	0
+MT	401	.	T	.	283	.	DP=772;AF1=0;AC1=0;DP4=483,271,0,0;MQ=51;FQ=-282	PL	0
+MT	402	.	A	.	283	.	DP=767;VDB=0.0190;AF1=0;AC1=0;DP4=477,275,0,1;MQ=51;FQ=-282;PV4=0.37,2.2e-06,0.093,1	PL	0
+MT	403	.	T	.	283	.	DP=767;AF1=0;AC1=0;DP4=484,268,0,0;MQ=51;FQ=-282	PL	0
+MT	404	.	C	.	283	.	DP=771;AF1=0;AC1=0;DP4=478,284,0,1;MQ=51;FQ=-282;PV4=0.37,4e-06,0.092,1	PL	0
+MT	405	.	T	.	283	.	DP=766;VDB=0.0227;AF1=0;AC1=0;DP4=479,272,1,1;MQ=51;FQ=-282;PV4=1,2.2e-21,1,0.19	PL	0
+MT	406	.	T	.	283	.	DP=770;AF1=0;AC1=0;DP4=470,281,0,0;MQ=51;FQ=-282	PL	0
+MT	407	.	T	.	283	.	DP=764;AF1=0;AC1=0;DP4=459,283,0,0;MQ=51;FQ=-282	PL	0
+MT	408	.	T	.	283	.	DP=762;AF1=0;AC1=0;DP4=454,297,0,0;MQ=51;FQ=-282	PL	0
+MT	409	.	G	.	283	.	DP=768;AF1=0;AC1=0;DP4=466,292,0,0;MQ=51;FQ=-282	PL	0
+MT	410	.	G	.	283	.	DP=766;VDB=0.0261;AF1=0;AC1=0;DP4=447,286,0,0;MQ=51;FQ=-282	PL	0
+MT	411	.	C	.	283	.	DP=767;AF1=0;AC1=0;DP4=449,292,0,0;MQ=51;FQ=-282	PL	0
+MT	412	.	G	.	283	.	DP=771;VDB=0.0185;AF1=0;AC1=0;DP4=459,287,0,1;MQ=51;FQ=-282;PV4=0.39,0.0013,1,0.029	PL	0
+MT	413	.	G	.	283	.	DP=776;VDB=0.0394;AF1=0;AC1=0;DP4=451,285,0,2;MQ=52;FQ=-282;PV4=0.15,0.0059,0.025,1	PL	0
+MT	414	.	T	.	283	.	DP=781;VDB=0.0429;AF1=0;AC1=0;DP4=470,297,0,1;MQ=52;FQ=-282;PV4=0.39,2.6e-05,1,0.061	PL	0
+MT	415	.	A	.	283	.	DP=787;AF1=0;AC1=0;DP4=462,310,0,0;MQ=52;FQ=-282	PL	0
+MT	416	.	T	.	283	.	DP=788;VDB=0.0205;AF1=0;AC1=0;DP4=473,306,1,1;MQ=52;FQ=-282;PV4=1,5.1e-12,0.31,1	PL	0
+MT	417	.	G	.	283	.	DP=782;VDB=0.0366;AF1=0;AC1=0;DP4=471,290,0,1;MQ=52;FQ=-282;PV4=0.38,3.1e-08,0.079,1	PL	0
+MT	418	.	C	.	283	.	DP=785;VDB=0.0227;AF1=0;AC1=0;DP4=457,310,1,0;MQ=52;FQ=-282;PV4=1,4.5e-08,1,0.013	PL	0
+MT	419	.	A	.	283	.	DP=785;VDB=0.0447;AF1=0;AC1=0;DP4=462,309,0,0;MQ=52;FQ=-282	PL	0
+MT	420	.	C	.	283	.	DP=787;VDB=0.0268;AF1=0;AC1=0;DP4=450,313,3,0;MQ=52;FQ=-282;PV4=0.27,1.3e-11,0.11,1	PL	0
+MT	421	.	T	.	283	.	DP=785;AF1=0;AC1=0;DP4=470,296,0,0;MQ=52;FQ=-282	PL	0
+MT	422	.	T	.	283	.	DP=786;AF1=0;AC1=0;DP4=457,302,0,0;MQ=52;FQ=-282	PL	0
+MT	423	.	T	.	283	.	DP=782;VDB=0.0253;AF1=0;AC1=0;DP4=453,298,1,0;MQ=52;FQ=-282;PV4=1,1.3e-08,0.073,1	PL	0
+MT	424	.	T	.	283	.	DP=780;VDB=0.0210;AF1=0;AC1=0;DP4=453,299,0,2;MQ=52;FQ=-282;PV4=0.16,1.3e-11,1,0.043	PL	0
+MT	425	.	A	.	283	.	DP=781;AF1=0;AC1=0;DP4=449,296,0,0;MQ=52;FQ=-282	PL	0
+MT	426	.	A	.	283	.	DP=782;VDB=0.0067;AF1=0;AC1=0;DP4=455,310,0,0;MQ=53;FQ=-282	PL	0
+MT	427	.	C	.	283	.	DP=778;VDB=0.0342;AF1=0;AC1=0;DP4=447,311,3,0;MQ=53;FQ=-282;PV4=0.27,2.2e-13,0.0044,1	PL	0
+MT	428	.	A	.	283	.	DP=785;VDB=0.0013;AF1=0;AC1=0;DP4=460,311,2,0;MQ=53;FQ=-282;PV4=0.52,0.0039,0.014,1	PL	0
+MT	429	.	G	.	283	.	DP=782;AF1=0;AC1=0;DP4=468,290,0,0;MQ=53;FQ=-282	PL	0
+MT	430	.	T	.	283	.	DP=783;VDB=0.0417;AF1=0;AC1=0;DP4=468,279,0,0;MQ=53;FQ=-282	PL	0
+MT	431	.	C	.	283	.	DP=783;VDB=0.0417;AF1=0;AC1=0;DP4=456,308,3,0;MQ=53;FQ=-282;PV4=0.28,2.7e-07,0.25,0.48	PL	0
+MT	432	.	A	.	283	.	DP=778;VDB=0.0417;AF1=0;AC1=0;DP4=458,293,0,1;MQ=53;FQ=-282;PV4=0.39,0.0053,1,0.074	PL	0
+MT	433	.	C	.	283	.	DP=778;VDB=0.0088;AF1=0;AC1=0;DP4=438,276,2,0;MQ=53;FQ=-282;PV4=0.53,6.9e-09,0.011,1	PL	0
+MT	434	.	C	.	283	.	DP=779;VDB=0.0367;AF1=0;AC1=0;DP4=442,285,3,1;MQ=53;FQ=-282;PV4=1,8.7e-16,1,0.0067	PL	0
+MT	435	.	C	.	283	.	DP=775;AF1=0;AC1=0;DP4=447,282,0,0;MQ=54;FQ=-282	PL	0
+MT	436	.	C	.	283	.	DP=773;VDB=0.0233;AF1=0;AC1=0;DP4=436,286,3,0;MQ=53;FQ=-282;PV4=0.28,1.7e-10,0.06,0.39	PL	0
+MT	437	.	C	.	283	.	DP=773;AF1=0;AC1=0;DP4=444,285,0,0;MQ=54;FQ=-282	PL	0
+MT	438	.	C	.	283	.	DP=772;AF1=0;AC1=0;DP4=449,298,0,0;MQ=54;FQ=-282	PL	0
+MT	439	.	A	.	283	.	DP=773;VDB=0.0253;AF1=0;AC1=0;DP4=448,284,1,0;MQ=54;FQ=-282;PV4=1,0.00018,1,1	PL	0
+MT	440	.	A	.	283	.	DP=772;VDB=0.0324;AF1=0;AC1=0;DP4=449,300,0,2;MQ=54;FQ=-282;PV4=0.16,0.0016,1,0.27	PL	0
+MT	441	.	C	.	283	.	DP=770;AF1=0;AC1=0;DP4=444,299,0,0;MQ=54;FQ=-282	PL	0
+MT	442	.	T	.	283	.	DP=773;VDB=0.0373;AF1=0;AC1=0;DP4=473,275,0,0;MQ=54;FQ=-282	PL	0
+MT	443	.	A	.	283	.	DP=772;VDB=0.0169;AF1=0;AC1=0;DP4=458,273,2,0;MQ=55;FQ=-282;PV4=0.53,3.5e-09,0.18,0.012	PL	0
+MT	444	.	A	.	283	.	DP=758;VDB=0.0417;AF1=0;AC1=0;DP4=451,284,0,0;MQ=55;FQ=-282	PL	0
+MT	445	.	C	.	283	.	DP=765;VDB=0.0124;AF1=0;AC1=0;DP4=454,287,1,0;MQ=55;FQ=-282;PV4=1,0.00013,1,1	PL	0
+MT	446	.	A	.	283	.	DP=763;VDB=0.0233;AF1=0;AC1=0;DP4=465,283,0,1;MQ=55;FQ=-282;PV4=0.38,1,1,1	PL	0
+MT	447	.	C	.	283	.	DP=761;VDB=0.0121;AF1=0;AC1=0;DP4=444,291,1,0;MQ=55;FQ=-282;PV4=1,0.014,0.023,1	PL	0
+MT	448	.	A	.	283	.	DP=768;VDB=0.0445;AF1=0;AC1=0;DP4=459,293,1,0;MQ=55;FQ=-282;PV4=1,0.0033,0.025,1	PL	0
+MT	449	.	T	.	283	.	DP=765;VDB=0.0183;AF1=0;AC1=0;DP4=467,251,0,0;MQ=55;FQ=-282	PL	0
+MT	450	.	T	.	283	.	DP=758;VDB=0.0242;AF1=0;AC1=0;DP4=446,248,1,1;MQ=56;FQ=-282;PV4=1,0.00099,0.031,0.3	PL	0
+MT	451	.	A	.	283	.	DP=766;VDB=0.0166;AF1=0;AC1=0;DP4=458,292,0,0;MQ=56;FQ=-282	PL	0
+MT	452	.	T	.	283	.	DP=761;AF1=0;AC1=0;DP4=467,250,0,1;MQ=56;FQ=-282;PV4=0.35,6.8e-05,0.02,0.13	PL	0
+MT	453	.	T	.	283	.	DP=768;VDB=0.0195;AF1=0;AC1=0;DP4=447,255,0,1;MQ=56;FQ=-282;PV4=0.36,7e-06,1,0.074	PL	0
+MT	454	.	T	.	283	.	DP=757;VDB=0.0227;AF1=0;AC1=0;DP4=440,257,0,1;MQ=56;FQ=-282;PV4=0.37,2.3e-05,1,1	PL	0
+MT	455	.	T	.	283	.	DP=759;VDB=0.0057;AF1=0;AC1=0;DP4=436,201,0,3;MQ=56;FQ=-282;PV4=0.032,3.9e-07,0.22,0.48	PL	0
+MT	456	.	C	.	283	.	DP=765;VDB=0.0018;AF1=0;AC1=0;DP4=435,252,4,0;MQ=56;FQ=-282;PV4=0.3,1.5e-10,0.0092,0.05	PL	0
+MT	457	.	C	.	283	.	DP=765;VDB=0.0089;AF1=0;AC1=0;DP4=437,252,2,0;MQ=56;FQ=-282;PV4=0.54,8.3e-10,1,0.0021	PL	0
+MT	458	.	C	.	283	.	DP=765;VDB=0.0435;AF1=0;AC1=0;DP4=437,251,2,0;MQ=56;FQ=-282;PV4=0.54,6.9e-06,1,1	PL	0
+MT	459	.	C	.	283	.	DP=761;VDB=0.0062;AF1=0;AC1=0;DP4=444,290,1,0;MQ=56;FQ=-282;PV4=1,0.00014,0.00041,0.49	PL	0
+MT	460	.	T	.	283	.	DP=759;VDB=0.0002;AF1=0;AC1=0;DP4=465,242,0,0;MQ=57;FQ=-282	PL	0
+MT	461	.	C	.	283	.	DP=761;VDB=0.0069;AF1=0;AC1=0;DP4=452,250,0,0;MQ=57;FQ=-282	PL	0
+MT	462	.	C	.	283	.	DP=763;AF1=0;AC1=0;DP4=441,252,0,0;MQ=57;FQ=-282	PL	0
+MT	463	.	C	.	283	.	DP=762;VDB=0.0363;AF1=0;AC1=0;DP4=437,283,3,0;MQ=57;FQ=-282;PV4=0.28,6.3e-06,0.16,0.39	PL	0
+MT	464	.	A	.	283	.	DP=763;VDB=0.0367;AF1=0;AC1=0;DP4=444,262,0,1;MQ=57;FQ=-282;PV4=0.37,0.08,1,1	PL	0
+MT	465	.	C	.	283	.	DP=762;VDB=0.0215;AF1=0;AC1=0;DP4=453,290,0,0;MQ=57;FQ=-282	PL	0
+MT	466	.	T	.	283	.	DP=758;VDB=0.0115;AF1=0;AC1=0;DP4=465,244,0,0;MQ=57;FQ=-282	PL	0
+MT	467	.	C	.	283	.	DP=757;VDB=0.0343;AF1=0;AC1=0;DP4=460,246,0,1;MQ=57;FQ=-282;PV4=0.35,2.1e-06,1,1	PL	0
+MT	468	.	C	.	283	.	DP=754;VDB=0.0175;AF1=0;AC1=0;DP4=440,251,0,0;MQ=58;FQ=-282	PL	0
+MT	469	.	C	.	283	.	DP=755;VDB=0.0096;AF1=0;AC1=0;DP4=445,293,1,0;MQ=57;FQ=-282;PV4=1,0.00029,0.0029,0.27	PL	0
+MT	470	.	A	.	283	.	DP=762;VDB=0.0200;AF1=0;AC1=0;DP4=446,296,0,0;MQ=57;FQ=-282	PL	0
+MT	471	.	T	.	283	.	DP=759;VDB=0.0232;AF1=0;AC1=0;DP4=463,256,0,1;MQ=58;FQ=-282;PV4=0.36,0.001,0.0016,1	PL	0
+MT	472	.	A	.	283	.	DP=757;VDB=0.0447;AF1=0;AC1=0;DP4=448,287,1,0;MQ=58;FQ=-282;PV4=1,0.0027,0.002,0.16	PL	0
+MT	473	.	C	.	283	.	DP=757;VDB=0.0193;AF1=0;AC1=0;DP4=451,293,1,1;MQ=58;FQ=-282;PV4=1,2.3e-07,0.033,1	PL	0
+MT	474	.	T	.	283	.	DP=763;VDB=0.0134;AF1=0;AC1=0;DP4=468,251,0,0;MQ=58;FQ=-282	PL	0
+MT	475	.	A	.	283	.	DP=768;VDB=0.0268;AF1=0;AC1=0;DP4=460,285,0,1;MQ=58;FQ=-282;PV4=0.38,0.0041,0.0013,1	PL	0
+MT	476	.	C	.	283	.	DP=768;VDB=0.0200;AF1=0;AC1=0;DP4=462,292,0,2;MQ=58;FQ=-282;PV4=0.15,1.3e-06,1.1e-05,1	PL	0
+MT	477	.	T	.	283	.	DP=772;VDB=0.0242;AF1=0;AC1=0;DP4=474,257,0,1;MQ=58;FQ=-282;PV4=0.35,0.00014,1,0.11	PL	0
+MT	478	.	A	.	283	.	DP=772;VDB=0.0054;AF1=0;AC1=0;DP4=462,253,2,0;MQ=58;FQ=-282;PV4=0.54,8.5e-10,0.015,0.19	PL	0
+MT	479	.	A	.	283	.	DP=773;VDB=0.0281;AF1=0;AC1=0;DP4=458,298,1,1;MQ=58;FQ=-282;PV4=1,0.0012,1,0.038	PL	0
+MT	480	.	T	.	283	.	DP=783;VDB=0.0025;AF1=0;AC1=0;DP4=471,231,0,0;MQ=58;FQ=-282	PL	0
+MT	481	.	C	.	283	.	DP=784;VDB=0.0217;AF1=0;AC1=0;DP4=458,309,1,0;MQ=58;FQ=-282;PV4=1,0.048,1,0.13	PL	0
+MT	482	.	T	.	283	.	DP=783;VDB=0.0335;AF1=0;AC1=0;DP4=460,259,2,2;MQ=58;FQ=-282;PV4=0.62,0.0001,1,1	PL	0
+MT	483	.	C	.	283	.	DP=791;VDB=0.0077;AF1=0;AC1=0;DP4=460,322,0,0;MQ=58;FQ=-282	PL	0
+MT	484	.	A	.	283	.	DP=792;VDB=0.0225;AF1=0;AC1=0;DP4=457,324,0,0;MQ=58;FQ=-282	PL	0
+MT	485	.	T	.	283	.	DP=799;VDB=0.0169;AF1=0;AC1=0;DP4=467,258,0,1;MQ=58;FQ=-282;PV4=0.36,0.064,1,1	PL	0
+MT	486	.	C	.	283	.	DP=799;AF1=0;AC1=0;DP4=456,333,0,0;MQ=58;FQ=-282	PL	0
+MT	487	.	A	.	283	.	DP=803;AF1=0;AC1=0;DP4=458,267,0,0;MQ=58;FQ=-282	PL	0
+MT	488	.	A	.	283	.	DP=798;VDB=0.0207;AF1=0;AC1=0;DP4=447,334,1,0;MQ=58;FQ=-282;PV4=1,0.064,0.00075,1	PL	0
+MT	489	.	T	.	283	.	DP=803;VDB=0.0044;AF1=0;AC1=0;DP4=468,264,0,3;MQ=58;FQ=-282;PV4=0.048,4.9e-06,0.042,0.021	PL	0
+MT	490	.	A	.	283	.	DP=797;VDB=0.0044;AF1=0;AC1=0;DP4=451,317,1,0;MQ=58;FQ=-282;PV4=1,0.007,0.00036,0.4	PL	0
+MT	491	.	C	.	283	.	DP=791;AF1=0;AC1=0;DP4=448,324,0,0;MQ=58;FQ=-282	PL	0
+MT	492	.	A	.	283	.	DP=797;VDB=0.0156;AF1=0;AC1=0;DP4=456,298,0,1;MQ=58;FQ=-282;PV4=0.4,0.00027,0.0004,1	PL	0
+MT	493	.	A	.	283	.	DP=798;VDB=0.0115;AF1=0;AC1=0;DP4=457,282,0,3;MQ=58;FQ=-282;PV4=0.056,0.00012,0.064,0.3	PL	0
+MT	494	.	C	.	283	.	DP=804;VDB=0.0156;AF1=0;AC1=0;DP4=444,277,0,0;MQ=58;FQ=-282	PL	0
+MT	495	.	C	.	283	.	DP=814;VDB=0.0174;AF1=0;AC1=0;DP4=460,288,1,0;MQ=58;FQ=-282;PV4=1,2e-05,1,0.27	PL	0
+MT	496	.	C	.	283	.	DP=821;VDB=0.0372;AF1=0;AC1=0;DP4=448,292,2,0;MQ=58;FQ=-282;PV4=0.52,2e-06,1,0.11	PL	0
+MT	497	.	C	.	283	.	DP=825;VDB=0.0207;AF1=0;AC1=0;DP4=457,296,2,0;MQ=58;FQ=-282;PV4=0.52,0.048,1,1	PL	0
+MT	498	.	C	.	283	.	DP=828;VDB=0.0253;AF1=0;AC1=0;DP4=460,304,0,0;MQ=58;FQ=-282	PL	0
+MT	499	.	G	.	283	.	DP=831;VDB=0.0394;AF1=0;AC1=0;DP4=469,285,1,0;MQ=58;FQ=-282;PV4=1,0.0037,1,0.015	PL	0
+MT	500	.	C	.	283	.	DP=843;VDB=0.0190;AF1=0;AC1=0;DP4=477,292,0,0;MQ=58;FQ=-282	PL	0
+MT	501	.	C	.	283	.	DP=846;AF1=0;AC1=0;DP4=477,302,0,0;MQ=58;FQ=-282	PL	0
+MT	502	.	C	.	283	.	DP=843;VDB=0.0198;AF1=0;AC1=0;DP4=475,338,0,0;MQ=58;FQ=-282	PL	0
+MT	503	.	A	.	283	.	DP=843;VDB=0.0076;AF1=0;AC1=0;DP4=486,336,0,0;MQ=58;FQ=-282	PL	0
+MT	504	.	T	.	283	.	DP=844;VDB=0.0115;AF1=0;AC1=0;DP4=501,279,1,3;MQ=58;FQ=-282;PV4=0.14,4.7e-06,3.5e-06,1	PL	0
+MT	505	.	C	.	283	.	DP=836;VDB=0.0119;AF1=0;AC1=0;DP4=481,308,0,0;MQ=58;FQ=-282	PL	0
+MT	506	.	C	.	283	.	DP=835;VDB=0.0089;AF1=0;AC1=0;DP4=479,332,1,0;MQ=58;FQ=-282;PV4=1,1.5e-05,1,0.021	PL	0
+MT	507	.	T	.	283	.	DP=841;VDB=0.0324;AF1=0;AC1=0;DP4=498,307,1,3;MQ=58;FQ=-282;PV4=0.16,1.7e-08,0.16,0.086	PL	0
+MT	508	.	A	.	283	.	DP=847;VDB=0.0440;AF1=0;AC1=0;DP4=483,322,2,1;MQ=58;FQ=-282;PV4=1,8.7e-05,0.082,1	PL	0
+MT	509	.	C	.	283	.	DP=854;VDB=0.0394;AF1=0;AC1=0;DP4=471,319,4,0;MQ=58;FQ=-282;PV4=0.15,1.2e-09,0.0011,0.28	PL	0
+MT	510	.	C	.	283	.	DP=853;VDB=0.0180;AF1=0;AC1=0;DP4=463,322,1,0;MQ=58;FQ=-282;PV4=1,1.4e-06,1,0.045	PL	0
+MT	511	.	C	.	283	.	DP=855;VDB=0.0146;AF1=0;AC1=0;DP4=470,358,1,0;MQ=58;FQ=-282;PV4=1,2.7e-05,0.0014,0.053	PL	0
+MT	512	.	A	.	283	.	DP=857;VDB=0.0166;AF1=0;AC1=0;DP4=488,355,0,1;MQ=58;FQ=-282;PV4=0.42,0.00018,0.0016,1	PL	0
+MT	513	.	G	.	283	.	DP=857;VDB=0.0417;AF1=0;AC1=0;DP4=496,312,3,0;MQ=58;FQ=-282;PV4=0.29,2.2e-11,0.00027,1	PL	0
+MT	514	.	C	.	283	.	DP=851;AF1=0;AC1=0;DP4=471,346,1,0;MQ=58;FQ=-282;PV4=1,0.18,0.011,1	PL	0
+MT	515	.	A	.	283	.	DP=843;VDB=0.0445;AF1=0;AC1=0;DP4=479,344,1,0;MQ=58;FQ=-282;PV4=1,0.0019,1,0.017	PL	0
+MT	516	.	C	.	283	.	DP=839;AF1=0;AC1=0;DP4=472,342,0,0;MQ=58;FQ=-282	PL	0
+MT	517	.	A	.	283	.	DP=850;VDB=0.0367;AF1=0;AC1=0;DP4=475,350,0,0;MQ=58;FQ=-282	PL	0
+MT	518	.	C	.	283	.	DP=841;VDB=0.0155;AF1=0;AC1=0;DP4=457,349,0,1;MQ=58;FQ=-282;PV4=0.43,0.00018,1,0.063	PL	0
+MT	519	.	A	.	283	.	DP=839;VDB=0.0394;AF1=0;AC1=0;DP4=470,343,0,0;MQ=58;FQ=-282	PL	0
+MT	520	.	C	.	283	.	DP=833;VDB=0.0145;AF1=0;AC1=0;DP4=457,341,2,0;MQ=58;FQ=-282;PV4=0.51,1e-06,0.02,0.46	PL	0
+MT	521	.	A	.	283	.	DP=831;VDB=0.0394;AF1=0;AC1=0;DP4=463,335,1,1;MQ=58;FQ=-282;PV4=1,0.0021,1,0.0088	PL	0
+MT	522	.	C	.	283	.	DP=835;VDB=0.0118;AF1=0;AC1=0;DP4=462,345,0,0;MQ=58;FQ=-282	PL	0
+MT	523	.	A	.	283	.	DP=833;VDB=0.0335;AF1=0;AC1=0;DP4=463,329,0,4;MQ=58;FQ=-282;PV4=0.03,5.1e-08,0.11,0.026	PL	0
+MT	524	.	C	.	283	.	DP=828;AF1=0;AC1=0;DP4=454,324,0,0;MQ=58;FQ=-282	PL	0
+MT	525	.	C	.	283	.	DP=828;VDB=0.0101;AF1=0;AC1=0;DP4=448,333,0,0;MQ=58;FQ=-282	PL	0
+MT	526	.	G	.	283	.	DP=829;VDB=0.0206;AF1=0;AC1=0;DP4=449,327,0,0;MQ=58;FQ=-282	PL	0
+MT	527	.	C	.	283	.	DP=832;VDB=0.0074;AF1=0;AC1=0;DP4=458,353,2,0;MQ=58;FQ=-282;PV4=0.51,4.6e-09,0.089,0.31	PL	0
+MT	528	.	T	.	283	.	DP=828;VDB=0.0417;AF1=0;AC1=0;DP4=470,345,0,1;MQ=58;FQ=-282;PV4=0.42,0.017,1,1	PL	0
+MT	529	.	G	.	283	.	DP=819;VDB=0.0074;AF1=0;AC1=0;DP4=465,322,0,1;MQ=58;FQ=-282;PV4=0.41,9.5e-07,0.00067,1	PL	0
+MT	530	.	C	.	283	.	DP=822;VDB=0.0074;AF1=0;AC1=0;DP4=451,348,0,0;MQ=58;FQ=-282	PL	0
+MT	531	.	T	.	283	.	DP=828;VDB=0.0093;AF1=0;AC1=0;DP4=471,331,1,2;MQ=58;FQ=-282;PV4=0.57,2e-10,0.065,1	PL	0
+MT	532	.	A	.	283	.	DP=830;VDB=0.0200;AF1=0;AC1=0;DP4=433,335,2,0;MQ=58;FQ=-282;PV4=0.51,5e-06,1,0.15	PL	0
+MT	533	.	A	.	283	.	DP=825;VDB=0.0374;AF1=0;AC1=0;DP4=431,343,2,0;MQ=58;FQ=-282;PV4=0.51,5.8e-06,0.017,1	PL	0
+MT	534	.	C	.	283	.	DP=828;AF1=0;AC1=0;DP4=452,322,0,0;MQ=58;FQ=-282	PL	0
+MT	535	.	C	.	283	.	DP=827;VDB=0.0253;AF1=0;AC1=0;DP4=441,333,1,0;MQ=58;FQ=-282;PV4=1,0.00017,1.1e-06,1	PL	0
+MT	536	.	C	.	283	.	DP=830;VDB=0.0040;AF1=0;AC1=0;DP4=446,328,0,0;MQ=58;FQ=-282	PL	0
+MT	537	.	C	.	283	.	DP=830;VDB=0.0212;AF1=0;AC1=0;DP4=436,361,0,0;MQ=58;FQ=-282	PL	0
+MT	538	.	A	.	283	.	DP=830;VDB=0.0245;AF1=0;AC1=0;DP4=461,358,0,0;MQ=58;FQ=-282	PL	0
+MT	539	.	T	.	283	.	DP=832;VDB=0.0445;AF1=0;AC1=0;DP4=474,330,1,2;MQ=58;FQ=-282;PV4=0.57,8.2e-07,1.5e-05,1	PL	0
+MT	540	.	A	.	283	.	DP=834;VDB=0.0445;AF1=0;AC1=0;DP4=456,327,3,0;MQ=58;FQ=-282;PV4=0.27,2.4e-05,1,0.078	PL	0
+MT	541	.	C	.	283	.	DP=828;VDB=0.0435;AF1=0;AC1=0;DP4=442,326,2,0;MQ=58;FQ=-282;PV4=0.51,0.00044,0.01,0.18	PL	0
+MT	542	.	C	.	283	.	DP=832;VDB=0.0447;AF1=0;AC1=0;DP4=437,327,4,1;MQ=58;FQ=-282;PV4=0.4,1.7e-12,8e-07,1	PL	0
+MT	543	.	C	.	283	.	DP=829;VDB=0.0429;AF1=0;AC1=0;DP4=448,323,3,0;MQ=58;FQ=-282;PV4=0.27,5.3e-09,1,0.3	PL	0
+MT	544	.	C	.	283	.	DP=833;VDB=0.0153;AF1=0;AC1=0;DP4=459,326,1,0;MQ=58;FQ=-282;PV4=1,0.27,4e-07,1	PL	0
+MT	545	.	G	.	283	.	DP=831;VDB=0.0373;AF1=0;AC1=0;DP4=453,338,0,0;MQ=58;FQ=-282	PL	0
+MT	546	.	A	.	283	.	DP=831;VDB=0.0354;AF1=0;AC1=0;DP4=460,323,0,0;MQ=58;FQ=-282	PL	0
+MT	547	.	A	.	283	.	DP=826;VDB=0.0268;AF1=0;AC1=0;DP4=461,331,0,1;MQ=58;FQ=-282;PV4=0.42,2.8e-05,0.00042,0.027	PL	0
+MT	548	.	C	.	283	.	DP=827;AF1=0;AC1=0;DP4=460,317,0,0;MQ=59;FQ=-282	PL	0
+MT	549	.	C	.	283	.	DP=839;VDB=0.0051;AF1=0;AC1=0;DP4=461,350,3,0;MQ=58;FQ=-282;PV4=0.26,2e-08,1,0.01	PL	0
+MT	550	.	A	.	283	.	DP=840;VDB=0.0417;AF1=0;AC1=0;DP4=469,331,0,0;MQ=58;FQ=-282	PL	0
+MT	551	.	A	.	283	.	DP=837;VDB=0.0367;AF1=0;AC1=0;DP4=468,342,1,0;MQ=58;FQ=-282;PV4=1,0.017,1,1	PL	0
+MT	552	.	C	.	283	.	DP=834;VDB=0.0183;AF1=0;AC1=0;DP4=457,322,2,0;MQ=59;FQ=-282;PV4=0.51,3.6e-05,1,0.34	PL	0
+MT	553	.	C	.	283	.	DP=838;VDB=0.0367;AF1=0;AC1=0;DP4=459,345,4,0;MQ=58;FQ=-282;PV4=0.14,2.1e-13,0.00082,1	PL	0
+MT	554	.	A	.	283	.	DP=842;VDB=0.0123;AF1=0;AC1=0;DP4=482,321,1,0;MQ=58;FQ=-282;PV4=1,0.00051,0.17,0.24	PL	0
+MT	555	.	A	.	283	.	DP=842;VDB=0.0165;AF1=0;AC1=0;DP4=478,326,0,1;MQ=58;FQ=-282;PV4=0.41,3.8e-08,0.00018,1	PL	0
+MT	556	.	A	.	283	.	DP=843;VDB=0.0429;AF1=0;AC1=0;DP4=473,331,0,2;MQ=58;FQ=-282;PV4=0.17,5.5e-08,1,0.31	PL	0
+MT	557	.	C	.	283	.	DP=843;VDB=0.0435;AF1=0;AC1=0;DP4=463,321,1,0;MQ=59;FQ=-282;PV4=1,3.7e-05,1,1	PL	0
+MT	558	.	C	.	283	.	DP=839;VDB=0.0447;AF1=0;AC1=0;DP4=462,321,2,1;MQ=59;FQ=-282;PV4=1,1.4e-12,5.7e-15,1	PL	0
+MT	559	.	C	.	283	.	DP=827;VDB=0.0073;AF1=0;AC1=0;DP4=454,315,4,0;MQ=59;FQ=-282;PV4=0.15,6.5e-16,0.007,0.31	PL	0
+MT	560	.	C	.	283	.	DP=816;AF1=0;AC1=0;DP4=450,334,1,0;MQ=58;FQ=-282;PV4=1,1.9e-05,9.4e-08,1	PL	0
+MT	561	.	A	.	283	.	DP=821;VDB=0.0074;AF1=0;AC1=0;DP4=470,317,0,1;MQ=58;FQ=-282;PV4=0.4,0.049,1,1	PL	0
+MT	562	.	A	.	283	.	DP=827;VDB=0.0002;AF1=0;AC1=0;DP4=457,322,0,0;MQ=59;FQ=-282	PL	0
+MT	563	.	A	.	283	.	DP=834;AF1=0;AC1=0;DP4=457,340,0,0;MQ=59;FQ=-282	PL	0
+MT	564	.	G	.	283	.	DP=828;VDB=0.0025;AF1=0;AC1=0;DP4=478,331,1,0;MQ=58;FQ=-282;PV4=1,0.011,1,1	PL	0
+MT	565	.	A	.	283	.	DP=824;VDB=0.0429;AF1=0;AC1=0;DP4=452,331,2,0;MQ=59;FQ=-282;PV4=0.51,0.00016,0.0075,0.14	PL	0
+MT	566	.	C	.	283	.	DP=827;VDB=0.0123;AF1=0;AC1=0;DP4=451,332,1,0;MQ=59;FQ=-282;PV4=1,0.00033,2.7e-05,1	PL	0
+MT	567	.	A	.	283	.	DP=827;VDB=0.0367;AF1=0;AC1=0;DP4=472,315,0,1;MQ=59;FQ=-282;PV4=0.4,0.29,1,1	PL	0
+MT	568	.	C	.	283	.	DP=827;VDB=0.0116;AF1=0;AC1=0;DP4=449,310,0,0;MQ=59;FQ=-282	PL	0
+MT	569	.	C	.	283	.	DP=826;VDB=0.0141;AF1=0;AC1=0;DP4=444,307,6,0;MQ=59;FQ=-282;PV4=0.086,3.2e-15,2.2e-08,1	PL	0
+MT	570	.	C	.	283	.	DP=819;VDB=0.0241;AF1=0;AC1=0;DP4=436,301,2,0;MQ=59;FQ=-282;PV4=0.52,0.0003,1,1	PL	0
+MT	571	.	C	.	283	.	DP=822;VDB=0.0025;AF1=0;AC1=0;DP4=459,302,0,0;MQ=59;FQ=-282	PL	0
+MT	572	.	C	.	283	.	DP=822;AF1=0;AC1=0;DP4=459,305,0,0;MQ=59;FQ=-282	PL	0
+MT	573	.	C	.	283	.	DP=823;VDB=0.0133;AF1=0;AC1=0;DP4=466,317,0,0;MQ=59;FQ=-282	PL	0
+MT	574	.	A	.	283	.	DP=826;VDB=0.0440;AF1=0;AC1=0;DP4=488,315,1,2;MQ=59;FQ=-282;PV4=0.56,4.9e-06,0.019,1	PL	0
+MT	575	.	C	.	283	.	DP=827;VDB=0.0128;AF1=0;AC1=0;DP4=479,314,0,0;MQ=59;FQ=-282	PL	0
+MT	576	.	A	.	283	.	DP=831;VDB=0.0169;AF1=0;AC1=0;DP4=495,313,1,0;MQ=59;FQ=-282;PV4=1,0.0028,1.6e-05,0.36	PL	0
+MT	577	.	G	.	283	.	DP=830;VDB=0.0195;AF1=0;AC1=0;DP4=516,300,0,0;MQ=59;FQ=-282	PL	0
+MT	578	.	T	.	283	.	DP=837;VDB=0.0302;AF1=0;AC1=0;DP4=519,299,0,0;MQ=59;FQ=-282	PL	0
+MT	579	.	T	.	283	.	DP=833;AF1=0;AC1=0;DP4=495,295,0,0;MQ=59;FQ=-282	PL	0
+MT	580	.	T	.	283	.	DP=839;VDB=0.0042;AF1=0;AC1=0;DP4=497,302,1,1;MQ=59;FQ=-282;PV4=1,4.3e-06,0.00033,0.061	PL	0
+MT	581	.	A	.	283	.	DP=848;VDB=0.0088;AF1=0;AC1=0;DP4=509,313,1,0;MQ=59;FQ=-282;PV4=1,8e-05,1,0.29	PL	0
+MT	582	.	T	.	283	.	DP=848;VDB=0.0184;AF1=0;AC1=0;DP4=531,308,1,0;MQ=59;FQ=-282;PV4=1,8e-07,1,0.33	PL	0
+MT	583	.	G	.	283	.	DP=842;AF1=0;AC1=0;DP4=524,304,1,0;MQ=59;FQ=-282;PV4=1,2.5e-07,2.9e-06,0.24	PL	0
+MT	584	.	T	.	283	.	DP=848;AF1=0;AC1=0;DP4=530,310,0,0;MQ=59;FQ=-282	PL	0
+MT	585	.	A	.	283	.	DP=844;VDB=0.0210;AF1=0;AC1=0;DP4=499,317,0,0;MQ=59;FQ=-282	PL	0
+MT	586	.	G	.	283	.	DP=835;VDB=0.0440;AF1=0;AC1=0;DP4=516,304,0,1;MQ=59;FQ=-282;PV4=0.37,4.9e-06,1,0.035	PL	0
+MT	587	.	C	.	283	.	DP=847;AF1=0;AC1=0;DP4=503,324,0,0;MQ=59;FQ=-282	PL	0
+MT	588	.	T	.	283	.	DP=847;VDB=0.0051;AF1=0;AC1=0;DP4=521,309,0,1;MQ=59;FQ=-282;PV4=0.37,2.3e-05,2.5e-12,1	PL	0
+MT	589	.	T	.	283	.	DP=846;VDB=0.0227;AF1=0;AC1=0;DP4=502,310,0,2;MQ=59;FQ=-282;PV4=0.15,2.1e-14,0.0001,0.29	PL	0
+MT	590	.	A	.	283	.	DP=843;VDB=0.0200;AF1=0;AC1=0;DP4=504,320,0,0;MQ=59;FQ=-282	PL	0
+MT	591	.	C	.	283	.	DP=847;VDB=0.0263;AF1=0;AC1=0;DP4=497,316,2,0;MQ=59;FQ=-282;PV4=0.52,1.3e-11,0.00017,0.43	PL	0
+MT	592	.	C	.	283	.	DP=853;VDB=0.0169;AF1=0;AC1=0;DP4=492,335,3,1;MQ=59;FQ=-282;PV4=0.65,1.8e-12,1.2e-33,1	PL	0
+MT	593	.	T	.	283	.	DP=853;VDB=0.0073;AF1=0;AC1=0;DP4=511,317,3,0;MQ=59;FQ=-282;PV4=0.29,6e-10,0.005,0.47	PL	0
+MT	594	.	C	.	283	.	DP=853;VDB=0.0121;AF1=0;AC1=0;DP4=507,323,1,0;MQ=59;FQ=-282;PV4=1,0.0017,1,1	PL	0
+MT	595	.	C	.	283	.	DP=855;VDB=0.0215;AF1=0;AC1=0;DP4=495,333,1,1;MQ=59;FQ=-282;PV4=1,6.9e-14,0.00031,0.29	PL	0
+MT	596	.	T	.	283	.	DP=859;VDB=0.0032;AF1=0;AC1=0;DP4=513,329,0,0;MQ=59;FQ=-282	PL	0
+MT	597	.	C	.	283	.	DP=861;VDB=0.0195;AF1=0;AC1=0;DP4=509,338,0,0;MQ=59;FQ=-282	PL	0
+MT	598	.	A	.	283	.	DP=853;AF1=0;AC1=0;DP4=513,318,0,0;MQ=59;FQ=-282	PL	0
+MT	599	.	A	.	283	.	DP=845;VDB=0.0000;AF1=0;AC1=0;DP4=507,310,1,0;MQ=59;FQ=-282;PV4=1,1.7e-06,1,0.021	PL	0
+MT	600	.	A	.	283	.	DP=847;VDB=0.0101;AF1=0;AC1=0;DP4=509,316,1,0;MQ=59;FQ=-282;PV4=1,0.023,1,0.036	PL	0
+MT	601	.	G	.	283	.	DP=846;VDB=0.0242;AF1=0;AC1=0;DP4=525,302,0,1;MQ=59;FQ=-282;PV4=0.37,1.6e-07,1.1e-06,1	PL	0
+MT	602	.	C	.	283	.	DP=847;VDB=0.0013;AF1=0;AC1=0;DP4=508,317,3,0;MQ=59;FQ=-282;PV4=0.29,7.8e-13,0.0041,0.07	PL	0
+MT	603	.	A	.	283	.	DP=861;VDB=0.0215;AF1=0;AC1=0;DP4=534,303,2,0;MQ=59;FQ=-282;PV4=0.54,7.4e-14,0.00014,0.5	PL	0
+MT	604	.	A	.	283	.	DP=866;VDB=0.0205;AF1=0;AC1=0;DP4=528,319,1,0;MQ=59;FQ=-282;PV4=1,7.1e-07,1,0.036	PL	0
+MT	605	.	T	.	283	.	DP=873;VDB=0.0099;AF1=0;AC1=0;DP4=547,316,0,0;MQ=59;FQ=-282	PL	0
+MT	606	.	A	.	283	.	DP=884;VDB=0.0356;AF1=0;AC1=0;DP4=540,326,1,0;MQ=59;FQ=-282;PV4=1,0.18,1,1	PL	0
+MT	607	.	C	.	283	.	DP=880;VDB=0.0086;AF1=0;AC1=0;DP4=540,323,0,0;MQ=59;FQ=-282	PL	0
+MT	608	.	A	.	283	.	DP=883;VDB=0.0374;AF1=0;AC1=0;DP4=542,324,1,0;MQ=59;FQ=-282;PV4=1,3.8e-06,1,1	PL	0
+MT	609	.	C	.	283	.	DP=890;VDB=0.0163;AF1=0;AC1=0;DP4=548,326,0,0;MQ=59;FQ=-282	PL	0
+MT	610	.	T	.	283	.	DP=900;VDB=0.0242;AF1=0;AC1=0;DP4=572,322,0,0;MQ=59;FQ=-282	PL	0
+MT	611	.	G	.	283	.	DP=905;VDB=0.0394;AF1=0;AC1=0;DP4=577,314,0,1;MQ=59;FQ=-282;PV4=0.35,0.04,1,1	PL	0
+MT	612	.	A	.	283	.	DP=904;AF1=0;AC1=0;DP4=568,314,1,0;MQ=59;FQ=-282;PV4=1,0.0049,1,0.18	PL	0
+MT	613	.	A	.	283	.	DP=913;VDB=0.0064;AF1=0;AC1=0;DP4=571,316,1,0;MQ=59;FQ=-282;PV4=1,0.00039,1,0.49	PL	0
+MT	614	.	A	.	283	.	DP=918;VDB=0.0180;AF1=0;AC1=0;DP4=571,314,1,0;MQ=59;FQ=-282;PV4=1,0.0029,1,1	PL	0
+MT	615	.	A	.	283	.	DP=924;VDB=0.0144;AF1=0;AC1=0;DP4=570,328,0,0;MQ=59;FQ=-282	PL	0
+MT	616	.	T	.	283	.	DP=926;VDB=0.0324;AF1=0;AC1=0;DP4=593,318,0,0;MQ=58;FQ=-282	PL	0
+MT	617	.	G	.	283	.	DP=926;AF1=0;AC1=0;DP4=592,325,0,0;MQ=58;FQ=-282	PL	0
+MT	618	.	T	.	283	.	DP=932;VDB=0.0440;AF1=0;AC1=0;DP4=591,320,0,0;MQ=58;FQ=-282	PL	0
+MT	619	.	T	.	283	.	DP=936;VDB=0.0207;AF1=0;AC1=0;DP4=586,317,0,2;MQ=58;FQ=-282;PV4=0.12,9.1e-09,0.06,1	PL	0
+MT	620	.	T	.	283	.	DP=933;VDB=0.0245;AF1=0;AC1=0;DP4=581,315,1,0;MQ=58;FQ=-282;PV4=1,1.4e-06,1,0.057	PL	0
+MT	621	.	A	.	283	.	DP=930;AF1=0;AC1=0;DP4=585,327,0,0;MQ=57;FQ=-282	PL	0
+MT	622	.	G	.	283	.	DP=925;AF1=0;AC1=0;DP4=600,317,0,0;MQ=57;FQ=-282	PL	0
+MT	623	.	A	.	283	.	DP=925;VDB=0.0414;AF1=0;AC1=0;DP4=584,317,1,1;MQ=57;FQ=-282;PV4=1,6.9e-13,0.017,0.03	PL	0
+MT	624	.	C	.	283	.	DP=928;VDB=0.0116;AF1=0;AC1=0;DP4=584,303,0,0;MQ=57;FQ=-282	PL	0
+MT	625	.	G	.	283	.	DP=930;VDB=0.0143;AF1=0;AC1=0;DP4=593,301,2,0;MQ=57;FQ=-282;PV4=0.55,0.0069,1,0.24	PL	0
+MT	626	.	G	.	283	.	DP=920;VDB=0.0435;AF1=0;AC1=0;DP4=583,289,1,2;MQ=57;FQ=-282;PV4=0.26,3e-08,0.011,0.15	PL	0
+MT	627	.	G	.	283	.	DP=922;VDB=0.0429;AF1=0;AC1=0;DP4=583,290,0,1;MQ=57;FQ=-282;PV4=0.33,1.1e-06,1,1	PL	0
+MT	628	.	C	.	283	.	DP=921;VDB=0.0111;AF1=0;AC1=0;DP4=584,303,0,0;MQ=56;FQ=-282	PL	0
+MT	629	.	T	.	283	.	DP=926;VDB=0.0090;AF1=0;AC1=0;DP4=613,293,2,0;MQ=56;FQ=-282;PV4=1,6.5e-08,1,0.1	PL	0
+MT	630	.	C	.	283	.	DP=927;VDB=0.0363;AF1=0;AC1=0;DP4=604,308,0,0;MQ=56;FQ=-282	PL	0
+MT	631	.	A	.	283	.	DP=925;VDB=0.0343;AF1=0;AC1=0;DP4=609,306,0,0;MQ=56;FQ=-282	PL	0
+MT	632	.	C	.	283	.	DP=923;VDB=0.0335;AF1=0;AC1=0;DP4=595,309,3,0;MQ=56;FQ=-282;PV4=0.55,5.8e-20,0.15,1	PL	0
+MT	633	.	A	.	283	.	DP=926;AF1=0;AC1=0;DP4=606,312,0,0;MQ=55;FQ=-282	PL	0
+MT	634	.	T	.	283	.	DP=926;VDB=0.0125;AF1=0;AC1=0;DP4=614,282,0,1;MQ=55;FQ=-282;PV4=0.32,0.0078,1,1	PL	0
+MT	635	.	C	.	283	.	DP=925;VDB=0.0447;AF1=0;AC1=0;DP4=597,304,6,0;MQ=55;FQ=-282;PV4=0.19,2.3e-19,0.00018,0.23	PL	0
+MT	636	.	A	.	283	.	DP=926;VDB=0.0435;AF1=0;AC1=0;DP4=607,302,1,0;MQ=55;FQ=-282;PV4=1,0.0009,0.048,1	PL	0
+MT	637	.	C	.	283	.	DP=933;VDB=0.0207;AF1=0;AC1=0;DP4=589,289,1,0;MQ=55;FQ=-282;PV4=1,0.0029,1,1	PL	0
+MT	638	.	C	.	283	.	DP=935;AF1=0;AC1=0;DP4=597,290,0,0;MQ=54;FQ=-282	PL	0
+MT	639	.	C	.	283	.	DP=928;AF1=0;AC1=0;DP4=594,289,0,0;MQ=54;FQ=-282	PL	0
+MT	640	.	C	.	283	.	DP=932;VDB=0.0077;AF1=0;AC1=0;DP4=591,309,0,0;MQ=54;FQ=-282	PL	0
+MT	641	.	A	.	283	.	DP=935;AF1=0;AC1=0;DP4=603,314,0,0;MQ=54;FQ=-282	PL	0
+MT	642	.	T	.	283	.	DP=935;VDB=0.0268;AF1=0;AC1=0;DP4=620,289,0,3;MQ=53;FQ=-282;PV4=0.033,4.4e-10,0.44,1	PL	0
+MT	643	.	A	.	283	.	DP=931;VDB=0.0173;AF1=0;AC1=0;DP4=599,299,2,0;MQ=53;FQ=-282;PV4=1,1.1e-09,0.29,0.0039	PL	0
+MT	644	.	A	.	283	.	DP=927;VDB=0.0192;AF1=0;AC1=0;DP4=593,298,0,0;MQ=53;FQ=-282	PL	0
+MT	645	.	A	.	283	.	DP=928;VDB=0.0335;AF1=0;AC1=0;DP4=593,318,1,0;MQ=53;FQ=-282;PV4=1,1.5e-05,0.094,1	PL	0
+MT	646	.	C	.	283	.	DP=927;VDB=0.0237;AF1=0;AC1=0;DP4=591,319,1,0;MQ=53;FQ=-282;PV4=1,2.1e-06,1,0.054	PL	0
+MT	647	.	A	.	283	.	DP=932;AF1=0;AC1=0;DP4=602,303,0,1;MQ=52;FQ=-282;PV4=0.34,1.5e-08,0.02,0.02	PL	0
+MT	648	.	A	.	283	.	DP=931;AF1=0;AC1=0;DP4=591,304,0,0;MQ=52;FQ=-282	PL	0
+MT	649	.	A	.	283	.	DP=937;AF1=0;AC1=0;DP4=596,317,0,0;MQ=52;FQ=-282	PL	0
+MT	650	.	T	.	283	.	DP=948;VDB=0.0299;AF1=0;AC1=0;DP4=625,303,0,0;MQ=52;FQ=-282	PL	0
+MT	651	.	A	.	283	.	DP=940;VDB=0.0215;AF1=0;AC1=0;DP4=604,317,3,0;MQ=51;FQ=-282;PV4=0.56,4.4e-09,1,1	PL	0
+MT	652	.	G	.	283	.	DP=931;AF1=0;AC1=0;DP4=610,301,0,0;MQ=51;FQ=-282	PL	0
+MT	653	.	G	.	283	.	DP=929;VDB=0.0145;AF1=0;AC1=0;DP4=592,300,0,0;MQ=51;FQ=-282	PL	0
+MT	654	.	T	.	283	.	DP=935;VDB=0.0445;AF1=0;AC1=0;DP4=609,309,1,0;MQ=51;FQ=-282;PV4=1,0.039,0.079,0.099	PL	0
+MT	655	.	T	.	283	.	DP=940;VDB=0.0215;AF1=0;AC1=0;DP4=601,309,1,0;MQ=51;FQ=-282;PV4=1,0.00025,1,0.33	PL	0
+MT	656	.	T	.	283	.	DP=938;VDB=0.0227;AF1=0;AC1=0;DP4=594,314,0,0;MQ=50;FQ=-282	PL	0
+MT	657	.	G	.	283	.	DP=938;VDB=0.0414;AF1=0;AC1=0;DP4=613,300,0,5;MQ=50;FQ=-282;PV4=0.004,1.5e-13,0.083,0.12	PL	0
+MT	658	.	G	.	283	.	DP=938;VDB=0.0414;AF1=0;AC1=0;DP4=592,300,1,2;MQ=50;FQ=-282;PV4=0.26,2.3e-11,1,1	PL	0
+MT	659	.	T	.	283	.	DP=934;VDB=0.0445;AF1=0;AC1=0;DP4=608,290,1,4;MQ=50;FQ=-282;PV4=0.041,6.2e-12,1,0.46	PL	0
+MT	660	.	C	.	283	.	DP=931;VDB=0.0302;AF1=0;AC1=0;DP4=594,302,2,1;MQ=50;FQ=-282;PV4=1,2.2e-19,0.056,0.13	PL	0
+MT	661	.	C	.	283	.	DP=928;VDB=0.0156;AF1=0;AC1=0;DP4=586,312,0,0;MQ=49;FQ=-282	PL	0
+MT	662	.	T	.	283	.	DP=925;VDB=0.0233;AF1=0;AC1=0;DP4=614,298,0,1;MQ=49;FQ=-282;PV4=0.33,7.3e-06,1,0.33	PL	0
+MT	663	.	A	.	283	.	DP=922;VDB=0.0200;AF1=0;AC1=0;DP4=592,311,0,1;MQ=49;FQ=-282;PV4=0.35,1e-07,0.17,0.016	PL	0
+MT	664	.	G	.	283	.	DP=915;VDB=0.0248;AF1=0;AC1=0;DP4=600,298,1,0;MQ=49;FQ=-282;PV4=1,0.054,0.0044,1	PL	0
+MT	665	.	C	.	283	.	DP=911;VDB=0.0367;AF1=0;AC1=0;DP4=567,292,4,0;MQ=49;FQ=-282;PV4=0.31,8.9e-10,1,1	PL	0
+MT	666	.	C	.	283	.	DP=906;VDB=0.0238;AF1=0;AC1=0;DP4=576,308,2,0;MQ=48;FQ=-282;PV4=0.55,5.6e-11,0.48,0.28	PL	0
+MT	667	.	T	.	283	.	DP=908;AF1=0;AC1=0;DP4=595,299,0,0;MQ=48;FQ=-282	PL	0
+MT	668	.	T	.	283	.	DP=906;AF1=0;AC1=0;DP4=582,298,0,0;MQ=48;FQ=-282	PL	0
+MT	669	.	T	.	283	.	DP=905;VDB=0.0252;AF1=0;AC1=0;DP4=574,303,2,0;MQ=48;FQ=-282;PV4=0.55,2.6e-10,0.26,0.22	PL	0
+MT	670	.	C	.	283	.	DP=901;AF1=0;AC1=0;DP4=582,310,0,0;MQ=47;FQ=-282	PL	0
+MT	671	.	T	.	283	.	DP=900;AF1=0;AC1=0;DP4=590,304,0,0;MQ=47;FQ=-282	PL	0
+MT	672	.	A	.	283	.	DP=899;AF1=0;AC1=0;DP4=573,307,0,0;MQ=47;FQ=-282	PL	0
+MT	673	.	T	.	283	.	DP=902;VDB=0.0200;AF1=0;AC1=0;DP4=591,301,1,0;MQ=47;FQ=-282;PV4=1,8.7e-08,0.05,1	PL	0
+MT	674	.	T	.	283	.	DP=898;AF1=0;AC1=0;DP4=576,300,1,0;MQ=47;FQ=-282;PV4=1,9.9e-12,1,0.03	PL	0
+MT	675	.	A	.	283	.	DP=893;VDB=0.0100;AF1=0;AC1=0;DP4=576,301,2,0;MQ=46;FQ=-282;PV4=0.55,7.1e-10,0.36,1	PL	0
+MT	676	.	G	.	283	.	DP=888;VDB=0.0135;AF1=0;AC1=0;DP4=586,290,2,0;MQ=46;FQ=-282;PV4=1,4.6e-14,1,0.34	PL	0
+MT	677	.	C	.	283	.	DP=879;VDB=0.0202;AF1=0;AC1=0;DP4=562,290,2,0;MQ=46;FQ=-282;PV4=0.55,0.0012,1,0.11	PL	0
+MT	678	.	T	.	283	.	DP=875;VDB=0.0367;AF1=0;AC1=0;DP4=585,279,0,0;MQ=46;FQ=-282	PL	0
+MT	679	.	C	.	283	.	DP=872;VDB=0.0175;AF1=0;AC1=0;DP4=571,284,1,1;MQ=46;FQ=-282;PV4=0.55,9.3e-10,0.38,0.06	PL	0
+MT	680	.	T	.	283	.	DP=874;AF1=0;AC1=0;DP4=583,283,0,0;MQ=45;FQ=-282	PL	0
+MT	681	.	T	.	283	.	DP=870;AF1=0;AC1=0;DP4=569,275,0,0;MQ=45;FQ=-282	PL	0
+MT	682	.	A	.	283	.	DP=860;VDB=0.0252;AF1=0;AC1=0;DP4=568,276,2,0;MQ=45;FQ=-282;PV4=1,1e-11,0.15,1	PL	0
+MT	683	.	G	.	283	.	DP=858;AF1=0;AC1=0;DP4=584,270,0,0;MQ=45;FQ=-282	PL	0
+MT	684	.	T	.	283	.	DP=855;AF1=0;AC1=0;DP4=584,262,0,0;MQ=45;FQ=-282	PL	0
+MT	685	.	A	.	283	.	DP=853;AF1=0;AC1=0;DP4=571,262,1,0;MQ=44;FQ=-282;PV4=1,5.3e-08,1,0.23	PL	0
+MT	686	.	A	.	283	.	DP=848;AF1=0;AC1=0;DP4=571,262,0,0;MQ=44;FQ=-282	PL	0
+MT	687	.	G	.	283	.	DP=847;AF1=0;AC1=0;DP4=585,257,0,0;MQ=44;FQ=-282	PL	0
+MT	688	.	A	.	283	.	DP=845;VDB=0.0253;AF1=0;AC1=0;DP4=569,262,1,0;MQ=43;FQ=-282;PV4=1,6.5e-07,0.15,1	PL	0
+MT	689	.	T	.	283	.	DP=845;VDB=0.0250;AF1=0;AC1=0;DP4=580,257,0,0;MQ=43;FQ=-282	PL	0
+MT	690	.	T	.	283	.	DP=852;AF1=0;AC1=0;DP4=569,264,0,1;MQ=43;FQ=-282;PV4=0.32,8.9e-09,0.26,1	PL	0
+MT	691	.	A	.	283	.	DP=846;VDB=0.0078;AF1=0;AC1=0;DP4=568,263,1,0;MQ=43;FQ=-282;PV4=1,1.6e-05,0.085,0.031	PL	0
+MT	692	.	C	.	283	.	DP=843;AF1=0;AC1=0;DP4=554,266,0,0;MQ=43;FQ=-282	PL	0
+MT	693	.	A	.	283	.	DP=835;VDB=0.0168;AF1=0;AC1=0;DP4=566,262,0,2;MQ=42;FQ=-282;PV4=0.1,2.1e-10,0.086,0.023	PL	0
+MT	694	.	C	.	283	.	DP=833;VDB=0.0000;AF1=0;AC1=0;DP4=556,263,1,0;MQ=42;FQ=-282;PV4=1,1.8e-08,0.073,0.12	PL	0
+MT	695	.	A	.	283	.	DP=838;VDB=0.0207;AF1=0;AC1=0;DP4=569,262,0,0;MQ=42;FQ=-282	PL	0
+MT	696	.	T	.	283	.	DP=837;AF1=0;AC1=0;DP4=577,253,0,0;MQ=41;FQ=-282	PL	0
+MT	697	.	G	.	283	.	DP=836;VDB=0.0245;AF1=0;AC1=0;DP4=575,249,1,2;MQ=41;FQ=-282;PV4=0.22,3.7e-16,1,1	PL	0
+MT	698	.	C	.	283	.	DP=836;VDB=0.0106;AF1=0;AC1=0;DP4=559,256,1,0;MQ=41;FQ=-282;PV4=1,1,0.18,1	PL	0
+MT	699	.	A	.	283	.	DP=833;AF1=0;AC1=0;DP4=571,253,0,0;MQ=40;FQ=-282	PL	0
+MT	700	.	A	.	283	.	DP=830;AF1=0;AC1=0;DP4=558,258,0,0;MQ=40;FQ=-282	PL	0
+MT	701	.	G	.	283	.	DP=826;VDB=0.0062;AF1=0;AC1=0;DP4=565,248,0,0;MQ=40;FQ=-282	PL	0
+MT	702	.	C	.	283	.	DP=834;VDB=0.0190;AF1=0;AC1=0;DP4=554,266,0,0;MQ=40;FQ=-282	PL	0
+MT	703	.	A	.	283	.	DP=828;AF1=0;AC1=0;DP4=563,260,0,1;MQ=40;FQ=-282;PV4=0.32,2.7e-05,1,1	PL	0
+MT	704	.	T	.	283	.	DP=828;VDB=0.0330;AF1=0;AC1=0;DP4=567,239,0,1;MQ=39;FQ=-282;PV4=0.3,0.054,0.098,1	PL	0
+MT	705	.	C	.	283	.	DP=825;VDB=0.0394;AF1=0;AC1=0;DP4=558,247,0,0;MQ=40;FQ=-282	PL	0
+MT	706	.	C	.	283	.	DP=827;VDB=0.0268;AF1=0;AC1=0;DP4=551,253,3,0;MQ=40;FQ=-282;PV4=0.56,2.9e-10,0.045,1	PL	0
+MT	707	.	C	.	283	.	DP=825;VDB=0.0123;AF1=0;AC1=0;DP4=556,248,0,0;MQ=40;FQ=-282	PL	0
+MT	708	.	C	.	283	.	DP=820;VDB=0.0193;AF1=0;AC1=0;DP4=553,250,1,1;MQ=40;FQ=-282;PV4=0.53,3.1e-06,1,0.16	PL	0
+MT	709	.	G	.	283	.	DP=833;AF1=0;AC1=0;DP4=566,256,0,0;MQ=41;FQ=-282	PL	0
+MT	710	.	T	.	283	.	DP=834;VDB=0.0193;AF1=0;AC1=0;DP4=567,260,0,0;MQ=40;FQ=-282	PL	0
+MT	711	.	T	.	283	.	DP=833;AF1=0;AC1=0;DP4=557,256,0,0;MQ=41;FQ=-282	PL	0
+MT	712	.	C	.	283	.	DP=838;AF1=0;AC1=0;DP4=566,256,0,0;MQ=40;FQ=-282	PL	0
+MT	713	.	C	.	283	.	DP=839;VDB=0.0158;AF1=0;AC1=0;DP4=559,268,1,0;MQ=41;FQ=-282;PV4=1,7.3e-06,0.48,1	PL	0
+MT	714	.	A	.	283	.	DP=861;VDB=0.0188;AF1=0;AC1=0;DP4=560,296,0,0;MQ=41;FQ=-282	PL	0
+MT	715	.	G	.	283	.	DP=856;AF1=0;AC1=0;DP4=560,279,0,0;MQ=41;FQ=-282	PL	0
+MT	716	.	T	.	283	.	DP=856;VDB=0.0073;AF1=0;AC1=0;DP4=557,290,1,0;MQ=41;FQ=-282;PV4=1,0.019,0.47,1	PL	0
+MT	717	.	G	.	283	.	DP=853;VDB=0.0111;AF1=0;AC1=0;DP4=554,288,1,0;MQ=41;FQ=-282;PV4=1,1.1e-06,0.15,0.12	PL	0
+MT	718	.	A	.	283	.	DP=854;AF1=0;AC1=0;DP4=546,300,0,1;MQ=41;FQ=-282;PV4=0.36,0.028,1,1	PL	0
+MT	719	.	G	.	283	.	DP=851;VDB=0.0435;AF1=0;AC1=0;DP4=547,279,0,2;MQ=41;FQ=-282;PV4=0.11,0.00011,1,0.1	PL	0
+MT	720	.	T	.	283	.	DP=859;VDB=0.0350;AF1=0;AC1=0;DP4=545,281,2,0;MQ=41;FQ=-282;PV4=0.55,0.001,0.21,0.32	PL	0
+MT	721	.	T	.	283	.	DP=860;VDB=0.0057;AF1=0;AC1=0;DP4=543,276,1,1;MQ=41;FQ=-282;PV4=1,4.4e-10,0.18,1	PL	0
+MT	722	.	C	.	283	.	DP=862;AF1=0;AC1=0;DP4=540,307,1,0;MQ=42;FQ=-282;PV4=1,1.2e-05,0.14,0.46	PL	0
+MT	723	.	A	.	283	.	DP=857;VDB=0.0394;AF1=0;AC1=0;DP4=545,297,1,0;MQ=41;FQ=-282;PV4=1,0.14,0.25,0.036	PL	0
+MT	724	.	C	.	283	.	DP=862;VDB=0.0094;AF1=0;AC1=0;DP4=535,283,1,0;MQ=41;FQ=-282;PV4=1,0.0038,0.45,1	PL	0
+MT	725	.	C	.	283	.	DP=864;VDB=0.0417;AF1=0;AC1=0;DP4=532,286,1,2;MQ=41;FQ=-282;PV4=0.28,4.9e-14,0.34,1	PL	0
+MT	726	.	C	.	283	.	DP=861;VDB=0.0042;AF1=0;AC1=0;DP4=537,308,0,1;MQ=42;FQ=-282;PV4=0.37,2.3e-06,1,0.14	PL	0
+MT	727	.	T	.	283	.	DP=861;VDB=0.0325;AF1=0;AC1=0;DP4=548,290,0,0;MQ=42;FQ=-282	PL	0
+MT	728	.	C	.	283	.	DP=860;AF1=0;AC1=0;DP4=541,312,0,0;MQ=42;FQ=-282	PL	0
+MT	729	.	T	.	283	.	DP=863;VDB=0.0025;AF1=0;AC1=0;DP4=547,283,0,1;MQ=42;FQ=-282;PV4=0.34,7.1e-05,0.24,0.39	PL	0
+MT	730	.	A	.	283	.	DP=865;AF1=0;AC1=0;DP4=543,282,0,0;MQ=42;FQ=-282	PL	0
+MT	731	.	A	.	283	.	DP=867;AF1=0;AC1=0;DP4=542,280,0,0;MQ=42;FQ=-282	PL	0
+MT	732	.	A	.	283	.	DP=868;VDB=0.0049;AF1=0;AC1=0;DP4=542,317,1,0;MQ=43;FQ=-282;PV4=1,0.0024,0.22,0.44	PL	0
+MT	733	.	T	.	283	.	DP=872;VDB=0.0268;AF1=0;AC1=0;DP4=546,269,1,2;MQ=42;FQ=-282;PV4=0.26,8.1e-05,0.31,0.14	PL	0
+MT	734	.	C	.	283	.	DP=874;VDB=0.0220;AF1=0;AC1=0;DP4=540,316,0,0;MQ=43;FQ=-282	PL	0
+MT	735	.	A	.	283	.	DP=876;VDB=0.0073;AF1=0;AC1=0;DP4=545,313,0,0;MQ=43;FQ=-282	PL	0
+MT	736	.	C	.	283	.	DP=877;VDB=0.0215;AF1=0;AC1=0;DP4=537,280,1,1;MQ=42;FQ=-282;PV4=1,9.7e-05,0.096,1	PL	0
+MT	737	.	C	.	283	.	DP=874;AF1=0;AC1=0;DP4=522,330,0,0;MQ=44;FQ=-282	PL	0
+MT	738	.	A	.	283	.	DP=875;VDB=0.0057;AF1=0;AC1=0;DP4=533,331,0,0;MQ=43;FQ=-282	PL	0
+MT	739	.	C	.	283	.	DP=880;VDB=0.0225;AF1=0;AC1=0;DP4=533,293,0,1;MQ=43;FQ=-282;PV4=0.36,0.00013,0.043,1	PL	0
+MT	740	.	G	.	283	.	DP=879;VDB=0.0074;AF1=0;AC1=0;DP4=529,324,0,2;MQ=44;FQ=-282;PV4=0.15,0.00048,0.21,1	PL	0
+MT	741	.	A	.	283	.	DP=886;VDB=0.0210;AF1=0;AC1=0;DP4=531,345,0,0;MQ=44;FQ=-282	PL	0
+MT	742	.	T	.	283	.	DP=888;VDB=0.0006;AF1=0;AC1=0;DP4=539,306,0,3;MQ=43;FQ=-282;PV4=0.048,1.5e-08,1,1	PL	0
+MT	743	.	C	.	283	.	DP=887;VDB=0.0350;AF1=0;AC1=0;DP4=533,344,1,1;MQ=44;FQ=-282;PV4=1,4.4e-08,1,0.048	PL	0
+MT	744	.	A	.	283	.	DP=888;AF1=0;AC1=0;DP4=538,316,0,0;MQ=44;FQ=-282	PL	0
+MT	745	.	A	.	283	.	DP=891;AF1=0;AC1=0;DP4=532,320,0,0;MQ=44;FQ=-282	PL	0
+MT	746	.	A	.	283	.	DP=887;VDB=0.0123;AF1=0;AC1=0;DP4=528,317,1,0;MQ=44;FQ=-282;PV4=1,6.3e-06,0.17,0.46	PL	0
+MT	747	.	A	.	283	.	DP=884;AF1=0;AC1=0;DP4=524,347,0,0;MQ=44;FQ=-282	PL	0
+MT	748	.	G	.	283	.	DP=883;VDB=0.0302;AF1=0;AC1=0;DP4=520,311,1,0;MQ=44;FQ=-282;PV4=1,8.1e-05,0.035,1	PL	0
+MT	749	.	G	.	283	.	DP=888;VDB=0.0440;AF1=0;AC1=0;DP4=503,316,0,1;MQ=44;FQ=-282;PV4=0.39,0.027,0.035,1	PL	0
+MT	750	.	A	G	222	.	DP=890;VDB=0.0435;AF1=1;AC1=2;DP4=0,3,483,315;MQ=45;FQ=-282;PV4=0.062,1,0.18,1	GT:PL:GQ	1/1:255,255,0:99
diff --git a/vcf/test/contig_idonly.vcf b/vcf/test/contig_idonly.vcf
new file mode 100644
index 0000000..5e5a6ad
--- /dev/null
+++ b/vcf/test/contig_idonly.vcf
@@ -0,0 +1,5 @@
+##fileformat=VCFv4.2
+##contig=<ID=1>
+##contig=<ID=2,length=2000>
+##contig=<ID=3,assembly=b37,length=3000>
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
diff --git a/vcf/test/example-4.0.vcf b/vcf/test/example-4.0.vcf
new file mode 100644
index 0000000..27803a1
--- /dev/null
+++ b/vcf/test/example-4.0.vcf
@@ -0,0 +1,23 @@
+##fileformat=VCFv4.0
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=1000GenomesPilot-NCBI36
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+20	14370	rs6054257	G	A	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5:.,.
+20	17330	.	T	A	3.0	q10	NS=3;DP=11;AF=0.017	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3
+20	1110696	rs6040355	A	G,T	1e+03	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	1|2:21:6:23,27	2|1:2:0:18,2	2/2:35:4
+20	1230237	.	T	.	47	PASS	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2
+20	1234567	microsat1	GTCT	G,GTACT	.	PASS	NS=3;DP=9;AA=G	GT:GQ:DP	./.:35:4	0/2:17:2	1/1:40:3
diff --git a/vcf/test/example-4.1-bnd.vcf b/vcf/test/example-4.1-bnd.vcf
new file mode 100644
index 0000000..6523255
--- /dev/null
+++ b/vcf/test/example-4.1-bnd.vcf
@@ -0,0 +1,34 @@
+##fileformat=VCFv4.1
+##fileDate=20110603
+##source=myImputationProgramV4.1
+##reference=file:/seq/references/reference.fasta
+##phasing=partial
+##INFO=<ID=SVTYPE,Number=1,Type=String,Description="Type of structural variant">
+##INFO=<ID=MATEID,Number=1,Type=String,Description="ID of the mate breakend">
+##INFO=<ID=REVERSE,Number=0,Type=Flag,Description="Indicates a breakend on the 5' end of a reference segment">
+##INFO=<ID=MATEPOS,Number=1,Type=Integer,Description="Position of the mate breakend">
+##INFO=<ID=MATECHR,Number=1,Type=String,Description="Chromosome containing the mate breakend">
+##INFO=<ID=SVLEN,Number=-1,Type=Integer,Description="Length of ALT alleles">
+##INFO=<ID=CN,Number=-1,Type=Integer,Description="Copy number of segment containing breakend">
+##INFO=<ID=CNADJ,Number=-1,Type=Integer,Description="Copy number of adjacency">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=G,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=G,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=G,Type=Integer,Description="Haplotype Quality">
+##FORMAT=<ID=BHAP,Number=G,Type=String,Description="Bundle Phase Set ">
+##FORMAT=<ID=BCN,Number=G,Type=String,Description="Bundle copy number">
+##PEDIGREE=<Derived="Tumor",Original="Germline">
+##SAMPLE=<SampleName=<GermlineS>,Genomes=<Germline>,Mixture=<1.0>,Description=<"Germline genome"> >
+##SAMPLE=<SampleName=<TumorS>,Genomes=<Germline,Tumor>,Mixture=<0.1,0.9>,Description=<"Germline contamination","Tumor genome"> >
+#CHROM POS ID	REF ALT	QUAL FILTER INFO	FORMAT	Germline	Tumor
+1	2	snp1	A	T	40	PASS		GT:MQ:HAP	0|1:0,40:35,46	0|1:0,0:35,46
+1	2	bnd1	T	T[2:3[	40	PASS	SVTYPE=BND;MATEID=bnd4	GT:MQ:BHAP	0|0:0,0:35>35,46>46	0|1:0,40:35>35,46>17
+1	3	bnd2	A	]2:2]A	40	PASS	SVTYPE=BND;MATEID=bnd3	GT:MQ:BHAP	0|0:0,0:35>35,46>46	0|1:0,40:35>35,46>17
+2	1	snp2	G	T	40	PASS		GT:MQ:HAP	1|0:0,40:17,23	1|0:0,0:17,23
+2	2	bnd3	G	G[1:3[	40	PASS	SVTYPE=BND;MATEID=bnd2	GT:MQ:BHAP:BCN	0|0:0,0:17>17,23>23:1,1	0|1:0,40:23>23,17>46:2,1
+2	3	bnd4	G	]1:2]G	40	PASS	SVTYPE=BND;MATEID=bnd1	GT:MQ:BHAP:BCN	0|0:0,0:17>17,23>23:1,1	0|1:0,40:23>23,17>46:2,1
+2	4	bnd5	G	]2:6]G	40	PASS	SVTYPE=BND;MATEID=bnd6	GT:MQ:BHAP:AHAP:BCN	0|0:0,0:17>17,23>23:17,23:1,1	0|0|1:0,0,40:17>17,23>23,24>23:17,23,23:1,2,2
+2	6	bnd6	T	T[2:4[	40	PASS	SVTYPE=BND;MATEID=bnd5	GT:MQ:BHAP:AHAP:BCN	0|0:0,0:17>17,23>23:17,23:1,1	0|1|0:0,40,0:17>17,23>24,24>24:17,23,23:1,2,2
+2	6	snp3	T	A	40	PASS		GT:MQ:HAP:AHAP	0|1:0,40:23,17:23,17	0|1|1:0,0,0:17,23,24:17,23,23
+2	8	snp4	T	A	40	PASS		GT:MQ:HAP:AHAP	0|0:0,0:23,17:23,17	0|1|1:0,40,40:17,23,24:17,23,23
diff --git a/vcf/test/example-4.1-info-multiple-values.vcf b/vcf/test/example-4.1-info-multiple-values.vcf
new file mode 100644
index 0000000..6faf95e
--- /dev/null
+++ b/vcf/test/example-4.1-info-multiple-values.vcf
@@ -0,0 +1,7 @@
+##fileformat=VCFv4.1
+##contig=<ID=Pf3D7_01_v3,length=640851>
+##INFO=<ID=RepeatCopies,Number=.,Type=Float,Description="Number of copies aligned with the consensus pattern">
+##INFO=<ID=RepeatSize,Number=.,Type=Integer,Description="Size of consensus pattern (may differ slightly from the period size)">
+##INFO=<ID=RepeatConsensus,Number=.,Type=String,Description="Repeat consensus sequence">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT
+Pf3D7_01_v3	401	.	C	T	53.99	PASS	RepeatCopies=19.3,47.4,14.0;RepeatSize=42,14,56;RepeatConsensus=TCTTATCTTCTTACTTTTCATTCCTTACTCTTACTTACTTAC,TTACTCTTACTTAC,TTACTCTTACTTACTTACTCTTACTTACTTACTCTTACTTACTTACTCTTATCTTC	
diff --git a/vcf/test/example-4.1-ploidy.vcf b/vcf/test/example-4.1-ploidy.vcf
new file mode 100644
index 0000000..6704048
--- /dev/null
+++ b/vcf/test/example-4.1-ploidy.vcf
@@ -0,0 +1,21 @@
+##fileformat=VCFv4.1
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
+##contig=<ID=X,length=155270560,assembly=B36,species="Homo sapiens",taxonomy=x>
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+X	60034	rs186434315	T	A	100	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0:48:1:51,51	1|0:48:8:51,51	1/1/1:43:5:.,.
+X	60378	rs185512268	C	A	100	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0:48:1:51,51	1:48:8:51,51	0:43:5:.,.
\ No newline at end of file
diff --git a/vcf/test/example-4.1-sv.vcf b/vcf/test/example-4.1-sv.vcf
new file mode 100644
index 0000000..c56530a
--- /dev/null
+++ b/vcf/test/example-4.1-sv.vcf
@@ -0,0 +1,35 @@
+##fileformat=VCFv4.1
+##fileDate=20100501
+##reference=1000GenomesPilot-NCBI36
+##assembly=ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/sv/breakpoint_assemblies.fasta
+##INFO=<ID=BKPTID,Number=.,Type=String,Description="ID of the assembled alternate allele in the assembly file">
+##INFO=<ID=CIEND,Number=2,Type=Integer,Description="Confidence interval around END for imprecise variants">
+##INFO=<ID=CIPOS,Number=2,Type=Integer,Description="Confidence interval around POS for imprecise variants">
+##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
+##INFO=<ID=HOMLEN,Number=.,Type=Integer,Description="Length of base pair identical micro-homology at event breakpoints">
+##INFO=<ID=HOMSEQ,Number=.,Type=String,Description="Sequence of base pair identical micro-homology at event breakpoints">
+##INFO=<ID=IMPRECISE,Number=0,Type=Flag,Description="Imprecise structural variation">
+##INFO=<ID=MEINFO,Number=4,Type=String,Description="Mobile element info of the form NAME,START,END,POLARITY">
+##INFO=<ID=SVLEN,Number=.,Type=Integer,Description="Difference in length between REF and ALT alleles">
+##INFO=<ID=SVTYPE,Number=1,Type=String,Description="Type of structural variant">
+##ALT=<ID=DEL,Description="Deletion">
+##ALT=<ID=DEL:ME:ALU,Description="Deletion of ALU element">
+##ALT=<ID=DEL:ME:L1,Description="Deletion of L1 element">
+##ALT=<ID=DUP,Description="Duplication">
+##ALT=<ID=DUP:TANDEM,Description="Tandem Duplication">
+##ALT=<ID=INS,Description="Insertion of novel sequence">
+##ALT=<ID=INS:ME:ALU,Description="Insertion of ALU element">
+##ALT=<ID=INS:ME:L1,Description="Insertion of L1 element">
+##ALT=<ID=INV,Description="Inversion">
+##ALT=<ID=CNV,Description="Copy number variable region">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype quality">
+##FORMAT=<ID=CN,Number=1,Type=Integer,Description="Copy number genotype for imprecise events">
+##FORMAT=<ID=CNQ,Number=1,Type=Float,Description="Copy number genotype quality for imprecise events">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001
+1	2827693	.	CCGTGGATGCGGGGACCCGCATCCCCTCTCCCTTCACAGCTGAGTGACCCACATCCCCTCTCCCCTCGCA	C	.	PASS	SVTYPE=DEL;END=2827680;BKPTID=Pindel_LCS_D1099159;HOMLEN=1;HOMSEQ=C;SVLEN=-66	GT:GQ	1/1:13.9
+2	321682	.	T	<DEL>	6	PASS	IMPRECISE;SVTYPE=DEL;END=321887;SVLEN=-105;CIPOS=-56,20;CIEND=-10,62	GT:GQ	0/1:12
+2	14477084	.	C	<DEL:ME:ALU>	12	PASS	IMPRECISE;SVTYPE=DEL;END=14477381;SVLEN=-297;MEINFO=AluYa5,5,307,+;CIPOS=-22,18;CIEND=-12,32	GT:GQ	0/1:12
+3	9425916	.	C	<INS:ME:L1>	23	PASS	IMPRECISE;SVTYPE=INS;END=9425916;SVLEN=6027;CIPOS=-16,22;MIINFO=L1HS,1,6025,-	GT:GQ	1/1:15
+3	12665100	.	A	<DUP>	14	PASS	IMPRECISE;SVTYPE=DUP;END=12686200;SVLEN=21100;CIPOS=-500,500;CIEND=-500,500	GT:GQ:CN:CNQ	./.:0:3:16.2
+4	18665128	.	T	<DUP:TANDEM>	11	PASS	IMPRECISE;SVTYPE=DUP;END=18665204;SVLEN=76;CIPOS=-10,10;CIEND=-10,10	GT:GQ:CN:CNQ	./.:0:5:8.3
diff --git a/vcf/test/example-4.1.vcf b/vcf/test/example-4.1.vcf
new file mode 100644
index 0000000..27d4500
--- /dev/null
+++ b/vcf/test/example-4.1.vcf
@@ -0,0 +1,24 @@
+##fileformat=VCFv4.1
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
+##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+20	14370	rs6054257	G	A	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5:.,.
+20	17330	.	T	A	3	q10	NS=3;DP=11;AF=0.017	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3
+20	1110696	rs6040355	A	G,T	67	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	1|2:21:6:23,27	2|1:2:0:18,2	2/2:35:4
+20	1230237	.	T	.	47	PASS	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2
+20	1234567	microsat1	GTC	G,GTCT	50	PASS	NS=3;DP=9;AA=G	GT:GQ:DP	0/1:35:4	0/2:17:2	1/1:40:3
diff --git a/vcf/test/example-4.2.vcf b/vcf/test/example-4.2.vcf
new file mode 100644
index 0000000..d649fc3
--- /dev/null
+++ b/vcf/test/example-4.2.vcf
@@ -0,0 +1,56 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##samtoolsVersion=1.0-17-gfaf4dd6+htslib-1.0-11-g830ea73
+##samtoolsCommand=samtools mpileup -u -t DP,DPR,DV,DP4,INFO/DPR,SP -f /data/archive/reference/Anopheles-arabiensis-Dongola_SCAFFOLDS_AaraD1.fa -r KB704451:0004153102-0004172483 huge_list_of_bam_files_removed
+##reference=file:///data/archive/reference/Anopheles-arabiensis-Dongola_SCAFFOLDS_AaraD1.fa
+##contig=<ID=KB704451,length=13998812>
+##ALT=<ID=X,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)">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="List of Phred-scaled genotype likelihoods">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Number of high-quality bases">
+##FORMAT=<ID=DV,Number=1,Type=Integer,Description="Number of high-quality non-reference bases">
+##FORMAT=<ID=DPR,Number=R,Type=Integer,Description="Number of high-quality bases observed for each allele">
+##INFO=<ID=DPR,Number=R,Type=Integer,Description="Number of high-quality bases observed for each allele">
+##FORMAT=<ID=DP4,Number=4,Type=Integer,Description="Number of high-quality ref-fwd, ref-reverse, alt-fwd and alt-reverse bases">
+##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Phred-scaled Genotype Quality">
+##FORMAT=<ID=GP,Number=G,Type=Float,Description="Phred-scaled genotype posterior probabilities">
+##INFO=<ID=ICB,Number=1,Type=Float,Description="Inbreeding Coefficient Binomial test (bigger is better)">
+##INFO=<ID=HOB,Number=1,Type=Float,Description="Bias in the number of HOMs number (smaller is better)">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DP4,Number=4,Type=Integer,Description="Number of high-quality ref-forward , ref-reverse, alt-forward and alt-reverse bases">
+##INFO=<ID=MQ,Number=1,Type=Integer,Description="Average mapping quality">
+##bcftools_callVersion=1.0-55-gc661821+htslib-1.0-11-g830ea73
+##bcftools_callCommand=call -m -vM -f GQ,GP
+##SnpSiftVersion="SnpSift 3.6c (build 2014-05-20), by Pablo Cingolani"
+##SnpSiftCmd="SnpSift varType - "
+##INFO=<ID=VARTYPE,Number=A,Type=Flag,Description="Variant types {SNP,MNP,INS,DEL,Mixed}">
+##INFO=<ID=SNP,Number=0,Type=Flag,Description="Variant is a SNP">
+##INFO=<ID=MNP,Number=0,Type=Flag,Description="Variant is an MNP">
+##INFO=<ID=INS,Number=0,Type=Flag,Description="Variant is an insertion">
+##INFO=<ID=DEL,Number=0,Type=Flag,Description="Variant is an deletion">
+##INFO=<ID=MIXED,Number=0,Type=Flag,Description="Variant is mixture of INS/DEL/SNP/MNP">
+##INFO=<ID=HOM,Number=0,Type=Flag,Description="Variant is homozygous">
+##INFO=<ID=HET,Number=0,Type=Flag,Description="Variant is heterozygous">
+##INFO=<ID=VARTYPE,Number=A,Type=String,Description="Comma separated list of variant types. One per allele">
+#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  LUPI059 MINE001 OKJ042  LUPI001 LUPI007 LUPI024 LUPI056 LUPI071 LUPI074 LUPI082 MINE040 MINE100 MINE101 MINE105 MINE111 OKJ017  OKJ045  OKJ070  SAGA066 SAGA107 SAGA131 SAGA133 SAGA134 SAGA141 2012L_LUPI_002  2012L_LUPI_015  2012L_LUPI_017  2012L_LUPI_018  2012L_LUPI_035  2012L_LUPI_062  2012L_LUPI_065  2012L_LUPI_077  2012L_LUPI_083  2012L_LUPI_116  2012L_LUPI_013  2012L_LUPI_041  2012L_LUPI_068  2012L_LUPI_096  2012L_LUPI_098  2012 [...]
+KB704451    4157846 .   N   A,C 167.0   .   DP=10;VDB=1.17174e-06;SGB=1.26353;MQ0F=0;DPR=0,6,4;AC=10,4;AN=14;DP4=0,0,10,0;MQ=60;SNP;VARTYPE=SNP,SNP GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    1/2:74,23,14,57,0,54:4:4:0:0,0,4,0:0,3,1:144,56,16,90,0,57:16   1/2:26,26,26,3,3,0:1:1:0:0,0,1,0:0,0,1:95,58,28,36,2,3:3    ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0,0,0:0,0,0,0,0,0:0   ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0,0,0:0,0,0,0,0,0:0   ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0,0,0:0,0,0,0,0,0:0   ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0, [...]
+KB704451    4157870 .   T   C   275.0   .   DP=243;VDB=0.00023935;SGB=29.4468;RPB=0.0368658;MQB=0.979612;MQSB=0.268441;BQB=0.99223;MQ0F=0;DPR=213,19;ICB=0.85092;HOB=0.0287274;AC=6;AN=118;DP4=201,12,19,1;MQ=53;SNP;VARTYPE=SNP    GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,66,255:22:0:0:20,2,0,0:22,0:0,75,279:75   0/0:0,12,120:4:0:0:4,0,0,0:4,0:0,21,144:21  1/1:193,36,0:12:12:0:0,0,12,0:0,12:168,20,0:20  0/0:0,9,95:3:0:0:3,0,0,0:3,0:0,18,119:18    0/1:78,0,110:7:3:0:3,1,3,0:4,3:68,0,125:68  0/0: [...]
+KB704451    4157877 .   G   A   999.0   .   DP=250;VDB=6.58963e-09;SGB=31.659;RPB=0.0227135;MQB=0.410318;MQSB=0.139343;BQB=0.0767891;MQ0F=0;DPR=188,48;ICB=0.990841;HOB=0.00761276;AC=17;AN=118;DP4=176,12,45,3;MQ=55;SNP;VARTYPE=SNP   GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/1:159,0,202:22:9:0:12,1,8,1:13,9:154,0,212:127    0/0:0,12,120:4:0:0:4,0,0,0:4,0:0,16,134:16  0/0:0,51,207:17:0:0:17,0,0,0:17,0:0,55,221:55   0/0:0,9,98:3:0:0:3,0,0,0:3,0:0,13,112:13    0/1:123,0,61:8:5:0:3,0,4,1:3,5:118,0,71: [...]
+KB704451    4157907 .   A   C   278.0   .   DP=295;VDB=0.241276;SGB=26.7514;RPB=0.676983;MQB=0.997838;MQSB=0.136536;BQB=0.45683;MQ0F=0;DPR=264,15;ICB=0.00518819;HOB=0.00237812;AC=4;AN=116;DP4=233,31,14,1;MQ=59;SNP;VARTYPE=SNP   GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,90,255:30:0:0:25,5,0,0:30,0:0,101,283:101 0/0:0,30,201:10:0:0:9,1,0,0:10,0:0,41,229:41    0/1:157,0,188:18:8:0:10,0,7,1:10,8:145,0,205:127    0/1:75,0,90:5:2:0:2,1,2,0:3,2:63,0,107:63   0/0:0,30,201:10:0:0:9,1,0,0:10,0:0,41,22 [...]
+KB704451    4157909 .   T   G   278.0   .   DP=295;VDB=0.184881;SGB=22.7413;RPB=0.646301;MQB=0.998034;MQSB=0.200514;BQB=0.321842;MQ0F=0;DPR=247,15;ICB=0.00558284;HOB=0.00255102;AC=4;AN=112;DP4=218,29,15,1;MQ=59;SNP;VARTYPE=SNP  GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,87,255:29:0:0:24,5,0,0:29,0:0,97,282:97   0/0:0,27,183:9:0:0:9,0,0,0:9,0:0,37,210:37  0/1:156,0,167:19:8:0:11,0,7,1:11,8:145,0,183:127    0/1:75,0,107:5:2:0:2,1,2,0:3,2:64,0,123:64  0/0:0,27,191:9:0:0:8,1,0,0:9,0:0,37,218:37   [...]
+KB704451    4157927 .   G   A   4.88727 .   DP=334;VDB=0.38;SGB=3.29913;RPB=0.454248;MQB=0.970588;MQSB=0.546099;BQB=0.215686;MQ0F=0;DPR=306,2;ICB=0.000310486;HOB=0.000153894;AC=1;AN=114;DP4=265,41,2,0;MQ=59;SNP;VARTYPE=SNP  GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,105,255:35:0:0:31,4,0,0:35,0:0,122,295:122    0/0:0,45,255:15:0:0:14,1,0,0:15,0:0,62,295:62   0/0:0,60,255:20:0:0:17,3,0,0:20,0:0,77,295:77   0/0:0,21,242:7:0:0:6,1,0,0:7,0:0,38,282:38  0/0:0,24,207:8:0:0:6,2,0,0:8,0:0,41,247:41   [...]
+KB704451    4157938 .   ATTT    ATTTT   650.0   .   INDEL;IDV=18;IMF=0.428571;DP=361;VDB=0.773794;SGB=32.6744;MQSB=0.993251;MQ0F=0.00831025;DPR=115,60;ICB=0.929833;HOB=0.0258;AC=23;AN=100;DP4=98,17,48,12;MQ=59;INS;VARTYPE=INS   GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/1:124,0,7:19:16:0:3,0,13,3:3,16:123,0,13:13   0/1:14,3,0:1:1:0:0,0,1,0:0,1:12,1,5:4   0/0:0,9,55:3:0:0:3,0,0,0:3,0:0,9,62:9   0/0:0,21,146:7:0:0:5,2,0,0:7,0:0,21,153:21  0/0:0,18,126:6:0:0:4,2,0,0:6,0:0,18,133:18  0/0:0,6,56:2:0:0 [...]
+KB704451    4157940 .   TTGTGTGTGTGTGT  TTGTGTGTGTGTGTGTGT,TTTCTGTGTGTGTGTGT    999.0   .   INDEL;IDV=7;IMF=0.5;DP=366;VDB=0.0431342;SGB=14.7456;MQSB=0.996953;MQ0F=0.010929;DPR=86,41,8;ICB=0.963728;HOB=0.02;AC=21,6;AN=90;DP4=70,16,39,10;MQ=58;INS;VARTYPE=INS,INS  GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/2:60,60,60,3,3,0:1:1:0:0,0,1,0:0,0,1:54,55,61,2,5,9:4 1/1:255,18,0,255,18,255:6:6:0:0,0,3,3:0,6,0:248,11,0,252,19,263:11  0/0:0,6,62,6,62,62:2:0:0:2,0,0,0:2,0,0:1,7,70,11,71,78:6    0/1:9,0,238, [...]
diff --git a/vcf/test/freebayes.vcf b/vcf/test/freebayes.vcf
new file mode 100644
index 0000000..ae0be2d
--- /dev/null
+++ b/vcf/test/freebayes.vcf
@@ -0,0 +1,159 @@
+##fileformat=VCFv4.1
+##FORMAT=<ID=AO,Number=A,Type=Integer,Description="Alternate allele observation count">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=GL,Number=G,Type=Float,Description="Genotype Likelihood, log10-scaled likelihoods of the data given the called genotype for each possible genotype generated from the reference and alternate alleles given the sample ploidy">
+##FORMAT=<ID=GLE,Number=1,Type=String,Description="Genotype Likelihood Explicit, same as GL, but with tags to indicate the specific genotype.  For instance, 0^-75.22|1^-223.42|0/0^-323.03|1/0^-99.29|1/1^-802.53 represents both haploid and diploid genotype likilehoods in a biallelic context">
+##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality, the Phred-scaled marginal (or unconditional) probability of the called genotype">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=QA,Number=A,Type=Integer,Description="Sum of quality of the alternate observations">
+##FORMAT=<ID=QR,Number=1,Type=Integer,Description="Sum of quality of the reference observations">
+##FORMAT=<ID=RO,Number=1,Type=Integer,Description="Reference allele observation count">
+##INFO=<ID=AB,Number=A,Type=Float,Description="Allele balance at heterozygous sites: a number between 0 and 1 representing the ratio of reads showing the reference allele to all reads, considering only reads from individuals called as heterozygous">
+##INFO=<ID=ABP,Number=A,Type=Float,Description="Allele balance probability at heterozygous sites: Phred-scaled upper-bounds estimate of the probability of observing the deviation between ABR and ABA given E(ABR/ABA) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Estimated allele frequency in the range (0,1]">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=AO,Number=A,Type=Integer,Description="Alternate allele observations">
+##INFO=<ID=BVAR,Number=0,Type=Flag,Description="The best genotype combination in the posterior is variant (non homozygous).">
+##INFO=<ID=CIGAR,Number=A,Type=String,Description="The extended CIGAR representation of each alternate allele, with the exception that '=' is replaced by 'M' to ease VCF parsing.  Note that INDEL alleles do not have the first matched base (which is provided by default, per the spec) referred to by the CIGAR.">
+##INFO=<ID=CpG,Number=0,Type=Flag,Description="CpG site (either CpG, TpG or CpA)">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total read depth at the locus">
+##INFO=<ID=DPRA,Number=A,Type=Float,Description="Alternate allele depth ratio.  Ratio between depth in samples with each called alternate allele and those without.">
+##INFO=<ID=EPP,Number=A,Type=Float,Description="End Placement Probability: Phred-scaled upper-bounds estimate of the probability of observing the deviation between EL and ER given E(EL/ER) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=EPPR,Number=1,Type=Float,Description="End Placement Probability for reference observations: Phred-scaled upper-bounds estimate of the probability of observing the deviation between EL and ER given E(EL/ER) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=HWE,Number=1,Type=Float,Description="Phred-scaled discrete HWE prior probability of the genotyping across all samples.">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=MEANALT,Number=A,Type=Float,Description="Mean number of unique non-reference allele observations per sample with the corresponding alternate alleles.">
+##INFO=<ID=MQM,Number=A,Type=Float,Description="Mean mapping quality of observed alternate alleles">
+##INFO=<ID=MQMR,Number=1,Type=Float,Description="Mean mapping quality of observed reference alleles">
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of samples with data">
+##INFO=<ID=NUMALT,Number=1,Type=Integer,Description="Number of unique non-reference alleles in called genotypes at this position.">
+##INFO=<ID=ODDS,Number=1,Type=Float,Description="The log odds ratio of the best genotype combination to the second-best.">
+##INFO=<ID=PAIRED,Number=A,Type=Float,Description="Proportion of observed alternate alleles which are supported by properly paired read fragments">
+##INFO=<ID=PAIREDR,Number=1,Type=Float,Description="Proportion of observed reference alleles which are supported by properly paired read fragments">
+##INFO=<ID=REPEAT,Number=1,Type=String,Description="Description of the local repeat structures flanking the current position">
+##INFO=<ID=RO,Number=1,Type=Integer,Description="Reference allele observations">
+##INFO=<ID=RPP,Number=A,Type=Float,Description="Read Placement Probability: Phred-scaled upper-bounds estimate of the probability of observing the deviation between RPL and RPR given E(RPL/RPR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=RPPR,Number=1,Type=Float,Description="Read Placement Probability for reference observations: Phred-scaled upper-bounds estimate of the probability of observing the deviation between RPL and RPR given E(RPL/RPR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=RUN,Number=A,Type=Integer,Description="Run length: the number of consecutive repeats of the alternate allele in the reference genome">
+##INFO=<ID=SAP,Number=A,Type=Float,Description="Strand balance probability for the alternate allele: Phred-scaled upper-bounds estimate of the probability of observing the deviation between SAF and SAR given E(SAF/SAR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=SRP,Number=1,Type=Float,Description="Strand balance probability for the reference allele: Phred-scaled upper-bounds estimate of the probability of observing the deviation between SRF and SRR given E(SRF/SRR) ~ 0.5, derived using Hoeffding's inequality">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=XAI,Number=A,Type=Float,Description="Alternate allele read INDEL rate: The rate of INDELs (gaps) in reads supporting the alternate allele, excluding the called variant.">
+##INFO=<ID=XAM,Number=A,Type=Float,Description="Alternate allele read mismatch rate: The rate of SNPs + MNPs + INDELs in reads supporting the alternate allele, excluding the called variant.">
+##INFO=<ID=XAS,Number=A,Type=Float,Description="Alternate allele read SNP rate: The rate of per-base mismatches (SNPs + MNPs) in reads supporting the alternate allele, excluding the called variant.">
+##INFO=<ID=XRI,Number=1,Type=Float,Description="Reference allele read INDEL rate: The rate of INDELs (gaps) in reads supporting the reference allele.">
+##INFO=<ID=XRM,Number=1,Type=Float,Description="Reference allele read mismatch rate: The rate of SNPs + MNPs + INDELs in reads supporting the reference allele.">
+##INFO=<ID=XRS,Number=1,Type=Float,Description="Reference allele read SNP rate: The rate of per-base mismatches (SNPs + MNPs) in reads supporting the reference allele.">
+##VariantAnnotator="analysis_type=VariantAnnotator input_file=[] sample_metadata=[] read_buffer_size=null phone_home=STANDARD read_filter=[] intervals=null excludeIntervals=null reference_sequence=/data/reference/ucsc/hg19/ucsc.hg19.fasta rodBind=[/data/reference/dbSNP_132/dbsnp_132.hg19.vcf, freebayes.vcf.raw] rodToIntervalTrackName=variant BTI_merge_rule=UNION nonDeterministicRandomSeed=false DBSNP=null downsampling_type=null downsample_to_fraction=null downsample_to_coverage=null baq= [...]
+##commandline="freebayes -f /data/reference/ucsc/hg19/ucsc.hg19.fasta -r chr22:42522301..42527953 -F 0.3 -_ -E0 reads.bam"
+##fileDate=20120116
+##phasing=none
+##reference=/data/reference/ucsc/hg19/ucsc.hg19.fasta
+##source=freeBayes version 0.9.4
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	BLANK	NA12878	NA12891	NA12892	NA19238	NA19239	NA19240
+chr22	42522347	.	C	CG	49314.70	.	AB=0.323285;ABP=2684.52;AC=7;AF=0.5;AN=14;AO=3196;BVAR;CIGAR=1M1I;DP=9886;DPRA=0;EPP=6943.04;EPPR=12096.8;HWE=32.3452;LEN=1;MEANALT=2.42857;MQM=253.864;MQMR=253.934;NS=7;NUMALT=1;ODDS=14.6885;PAIRED=0;PAIREDR=0;RO=6668;RPP=6943.04;RPPR=12096.8;RUN=1;SAP=6943.04;SRP=14482.4;TYPE=ins;XAI=0.00985694;XAM=0.0142524;XAS=0.00439544;XRI=0.00449157;XRM=0.00877419;XRS=0.00428262	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:4:-14.345,-0.425969,-6.27:63.79:151:66:2	0/1:312:923:-186 [...]
+chr22	42522392	rs28371738	G	A	43456.30	.	AB=0.329255;ABP=1348.16;AC=2;AF=0.142857;AN=14;AO=1762;BVAR;CIGAR=1X;DB;DP=14230;DPRA=474.167;EPP=3829.14;EPPR=17879.7;HWE=-23.8382;LEN=1;MEANALT=3;MQM=254;MQMR=253.948;NS=7;NUMALT=1;ODDS=4.47734;PAIRED=0;PAIREDR=0;RO=12423;RPP=3829.14;RPPR=17879.7;RUN=1;SAP=3829.14;SRP=26979.2;TYPE=snp;XAI=0.00617283;XAM=0.00958286;XAS=0.00341003;XRI=0.00656323;XRM=0.0107744;XRS=0.00421113	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:5:0,-1.50515,-15.456:19.49:0:168:5	0/1:597:1 [...]
+chr22	42522398	.	C	CC	49314.70	.	AB=0.244269;ABP=6346.9;AC=7;AF=0.5;AN=14;AO=2728;BVAR;CIGAR=1M1I;DP=11168;DPRA=0;EPP=5926.79;EPPR=9594.88;HWE=32.3452;LEN=1;MEANALT=4;MQM=253.766;MQMR=254;NS=7;NUMALT=1;ODDS=17.2616;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=8188;RPP=5926.79;RPPR=9594.88;RUN=1;SAP=5926.79;SRP=17783;TYPE=ins;XAI=0.0106905;XAM=0.0164587;XAS=0.00576816;XRI=0.00487639;XRM=0.00890377;XRS=0.00402737	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:5:-9.69,-0.50515,-7.46667:74.94:102:80:3	0/1:319:996:-1378. [...]
+chr22	42522445	.	GG	G	49314.70	.	AB=0.763267;ABP=6106.23;AC=8;AF=0.571429;AN=14;AO=7742;BVAR;CIGAR=1M1D;DP=10142;DPRA=0;EPP=16814.5;EPPR=5.74435;HWE=27.36;LEN=1;MEANALT=5.28571;MQM=253.943;MQMR=253.997;NS=7;NUMALT=1;ODDS=1.54045;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=2231;RPP=16814.5;RPPR=5.74435;RUN=1;SAP=16814.5;SRP=4847.57;TYPE=del;XAI=0.00589821;XAM=0.00994331;XAS=0.0040451;XRI=0.00484959;XRM=0.00960629;XRS=0.0047567	GT:AO:DP:GL:GQ:QA:QR:RO	1/1:4:4:-23.31,-1.20412,0:7.53:252:0:0	0/1:780:97 [...]
+chr22	42522450	.	GG	G	49314.70	.	AB=0.204125;ABP=7117.88;AC=6;AF=0.428571;AN=14;AO=1910;BVAR;CIGAR=1M1D;DP=9360;DPRA=519.833;EPP=4150.52;EPPR=56.2176;HWE=27.36;LEN=1;MEANALT=7.83333;MQM=253.996;MQMR=253.934;NS=7;NUMALT=1;ODDS=0.847298;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=6827;RPP=4150.52;RPPR=56.2176;RUN=1;SAP=4150.52;SRP=14827.7;TYPE=del;XAI=0.0040096;XAM=0.00831852;XAS=0.00430893;XRI=0.00611378;XRM=0.010441;XRS=0.00432722	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:3:0,-0.90309,-8.30667:5.23:0:89:3	0/1: [...]
+chr22	42522481	.	G	GG	49314.70	.	AB=0.275316;ABP=7147.74;AC=7;AF=0.5;AN=14;AO=4486;BVAR;CIGAR=1M1I;DP=16294;DPRA=0;EPP=9744.24;EPPR=3051.34;HWE=32.3452;LEN=1;MEANALT=5.42857;MQM=253.3;MQMR=253.61;NS=7;NUMALT=1;ODDS=29.2938;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=11667;RPP=9744.24;RPPR=3051.34;RUN=1;SAP=9744.24;SRP=25337.6;TYPE=ins;XAI=0.0099545;XAM=0.0149437;XAS=0.00498925;XRI=0.00773094;XRM=0.0121752;XRS=0.00444426	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:7:-16.055,-0.784991,-12.972:99:169:141:5	0/1:439: [...]
+chr22	42522493	.	G	GG	49314.70	.	AB=0.267346;ABP=6697.96;AC=6;AF=0.428571;AN=14;AO=3807;BVAR;CIGAR=1M1I;DP=14245;DPRA=474.667;EPP=8269.81;EPPR=9535.75;HWE=27.36;LEN=1;MEANALT=4.33333;MQM=253.418;MQMR=253.78;NS=7;NUMALT=1;ODDS=2.23359;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=10348;RPP=8269.81;RPPR=9535.75;RUN=1;SAP=8269.81;SRP=22473.4;TYPE=ins;XAI=0.0087646;XAM=0.0139561;XAS=0.00519154;XRI=0.00736916;XRM=0.0116904;XRS=0.00432124	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:5:0,-1.50515,-13.8:10.14:0:150:5	0/1:1 [...]
+chr22	42522597	.	C	T	96.33	.	AB=0.307692;ABP=7.18621;AC=1;AF=0.0714286;AN=14;AO=38;BVAR;CIGAR=1X;DP=32021;DPRA=0;EPP=11.239;EPPR=6737.36;HWE=-19.2686;LEN=1;MEANALT=3.42857;MQM=253.526;MQMR=251.934;NS=7;NUMALT=1;ODDS=22.1808;PAIRED=0;PAIREDR=0;RO=31891;RPP=11.239;RPPR=6737.36;RUN=1;SAP=85.5263;SRP=69253.4;TYPE=snp;XAI=0.0148461;XAM=0.0190344;XAS=0.00418822;XRI=0.0105127;XRM=0.0154331;XRS=0.00492039	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:4:13:-13.505,-1.05908,-28.5178:96.33:146:313:9	0/0:1:3217:-44.2 [...]
+chr22	42522613	rs1135840	G	C	49314.70	.	AB=0.523755;ABP=102.362;AC=6;AF=0.428571;AN=14;AO=10639;BVAR;CIGAR=1X;DB;DP=26168;DPRA=0;EPP=20.2941;EPPR=15968.8;HWE=27.36;LEN=1;MEANALT=7.71429;MQM=251.192;MQMR=253.005;NS=7;NUMALT=1;ODDS=18.9397;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=15052;RPP=20.2941;RPPR=15968.8;RUN=1;SAP=23105.3;SRP=32688;TYPE=snp;XAI=0.0103845;XAM=0.0142063;XAS=0.00382179;XRI=0.00770109;XRM=0.01166;XRS=0.00395894	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:4:14:-9.3425,-1.21399,-26.936:82.25:101: [...]
+chr22	42522653	.	G	GG	49314.70	.	AB=0.356697;ABP=5746.74;AC=7;AF=0.5;AN=14;AO=11486;BVAR;CIGAR=1M1I;DP=32201;DPRA=0;EPP=24109.1;EPPR=37710.6;HWE=32.3452;LEN=1;MEANALT=8.85714;MQM=252.974;MQMR=250.797;NS=7;NUMALT=1;ODDS=54.8531;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=19298;RPP=24109.1;RPPR=37710.6;RUN=1;SAP=24944.5;SRP=41908.1;TYPE=ins;XAI=0.00769831;XAM=0.012125;XAS=0.00442665;XRI=0.0102852;XRM=0.0150902;XRS=0.00480498	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:8:18:-52.7533,-4.83172,-28.119:8.45:538:268:9	0/ [...]
+chr22	42522665	.	G	GG	49314.70	.	AB=0.339765;ABP=7654.34;AC=7;AF=0.5;AN=14;AO=11657;BVAR;CIGAR=1M1I;DP=34309;DPRA=0;EPP=25107.8;EPPR=41318;HWE=32.3452;LEN=1;MEANALT=6.28571;MQM=253.063;MQMR=249.938;NS=7;NUMALT=1;ODDS=60.2651;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=22103;RPP=25107.8;RPPR=41318;RUN=1;SAP=25315.9;SRP=47999.1;TYPE=ins;XAI=0.00786963;XAM=0.0126117;XAS=0.00474208;XRI=0.0111531;XRM=0.0160688;XRS=0.00491569	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:6:17:-51.5689,-10.8169,-36.4545:99:458:293:8	0/1:15 [...]
+chr22	42522761	.	GG	G	49314.70	.	AB=0.204235;ABP=20420;AC=7;AF=0.5;AN=14;AO=5488;BVAR;CIGAR=1M1D;DP=26871;DPRA=0;EPP=2628.63;EPPR=38224.7;HWE=32.3452;LEN=1;MEANALT=5.57143;MQM=242.051;MQMR=246.545;NS=7;NUMALT=1;ODDS=41.4976;PAIRED=0;PAIREDR=0;REPEAT=G:4|GGAGG:2;RO=20804;RPP=2628.63;RPPR=38224.7;RUN=1;SAP=11920.1;SRP=45178.3;TYPE=del;XAI=0.0140584;XAM=0.019722;XAS=0.00566356;XRI=0.00767435;XRM=0.0123147;XRS=0.00464034	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:5:14:-18.4,-0.912956,-24.2356:99:200:266:9	 [...]
+chr22	42522766	.	GG	G	49314.70	.	AB=0.188312;ABP=20709.7;AC=7;AF=0.5;AN=14;AO=4621;BVAR;CIGAR=1M1D;DP=24539;DPRA=0;EPP=683.074;EPPR=36600.1;HWE=32.3452;LEN=1;MEANALT=7;MQM=199.42;MQMR=246.176;NS=7;NUMALT=1;ODDS=29.82;PAIRED=0;PAIREDR=0;REPEAT=G:4|GGAGG:2;RO=19039;RPP=683.074;RPPR=36600.1;RUN=1;SAP=10037.4;SRP=41345.7;TYPE=del;XAI=0.0164268;XAM=0.025017;XAS=0.00859015;XRI=0.00804322;XRM=0.0126973;XRS=0.00465405	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:3:10:-13.3467,-0.931119,-20.48:99:143:224:7	0/1:51 [...]
+chr22	42522804	.	C	CC	49314.70	.	AB=0.436269;ABP=945.17;AC=7;AF=0.5;AN=14;AO=11651;BVAR;CIGAR=1M1I;DP=26706;DPRA=0;EPP=24827.4;EPPR=29210.9;HWE=32.3452;LEN=1;MEANALT=6.85714;MQM=166.646;MQMR=250.486;NS=7;NUMALT=1;ODDS=66.1659;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=14852;RPP=24827.4;RPPR=29210.9;RUN=1;SAP=25302.8;SRP=32253.7;TYPE=ins;XAI=0.00729807;XAM=0.0121265;XAS=0.00482838;XRI=0.0100055;XRM=0.0150513;XRS=0.00504574	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:7:17:-40.96,-0.828635,-29.029:99:448:319:10	0/1: [...]
+chr22	42523003	rs116917064	A	G	49314.70	.	AB=0.468531;ABP=212.109;AC=8;AF=0.571429;AN=14;AO=14108;BVAR;CIGAR=1X;DB;DP=27088;DPRA=0;EPP=652.377;EPPR=1855.41;HWE=27.36;LEN=1;MEANALT=4.14286;MQM=156.904;MQMR=253.368;NS=7;NUMALT=1;ODDS=1.29358;PAIRED=0;PAIREDR=0;REPEAT=A:2;RO=12789;RPP=652.377;RPPR=1855.41;RUN=1;SAP=30638.1;SRP=27774;TYPE=snp;XAI=0.00965842;XAM=0.0142266;XAS=0.0045682;XRI=0.00999007;XRM=0.0136964;XRS=0.00370629	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:8:-2,-1.50515,-24.1371:6.67:20:264 [...]
+chr22	42523024	.	G	GG	49314.70	.	AB=0.483312;ABP=67.2233;AC=7;AF=0.5;AN=14;AO=12830;BVAR;CIGAR=1M1I;DP=26546;DPRA=0;EPP=25392.7;EPPR=27073.2;HWE=32.3452;LEN=1;MEANALT=6.71429;MQM=251.049;MQMR=166.263;NS=7;NUMALT=1;ODDS=38.6958;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=13355;RPP=25392.7;RPPR=27073.2;RUN=1;SAP=27863;SRP=29003;TYPE=ins;XAI=0.00784045;XAM=0.0135446;XAS=0.00570417;XRI=0.00883571;XRM=0.0139225;XRS=0.00508683	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:4:10:-25.9925,-0.688081,-16.9583:99:281:185:6	0/1: [...]
+chr22	42523063	.	C	CG	49314.70	.	AB=0.135326;ABP=37560.2;AC=7;AF=0.5;AN=14;AO=4400;BVAR;CIGAR=1M1I;DP=32514;DPRA=0;EPP=8808.42;EPPR=43500.8;HWE=32.3452;LEN=1;MEANALT=5.42857;MQM=151.564;MQMR=201.235;NS=7;NUMALT=1;ODDS=51.8508;PAIRED=0;PAIREDR=0;REPEAT=CA:2;RO=27776;RPP=8808.42;RPPR=43500.8;RUN=1;SAP=9557.49;SRP=60317.8;TYPE=ins;XAI=0.0122678;XAM=0.0192223;XAS=0.00695447;XRI=0.00950941;XRM=0.014938;XRS=0.00542861	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:6:17:-23.0083,-1.02493,-36.8182:8.45:251:405:11	 [...]
+chr22	42523185	.	C	CC	49314.70	.	AB=0.128841;ABP=26211.3;AC=7;AF=0.5;AN=14;AO=2822;BVAR;CIGAR=1M1I;DP=21903;DPRA=0;EPP=6052.98;EPPR=7788.88;HWE=32.3452;LEN=1;MEANALT=6.71429;MQM=253.731;MQMR=252.855;NS=7;NUMALT=1;ODDS=29.2813;PAIRED=0;PAIREDR=0;REPEAT=C:3|CA:2;RO=18639;RPP=6052.98;RPPR=7788.88;RUN=1;SAP=6130.91;SRP=40477.1;TYPE=ins;XAI=0.00972057;XAM=0.0158303;XAS=0.0061097;XRI=0.0100021;XRM=0.0159483;XRS=0.00594616	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:3:9:-26.085,-6.06005,-18.2417:99:228:145:5	0 [...]
+chr22	42523196	.	C	CC	49314.70	.	AB=0.460186;ABP=247.332;AC=7;AF=0.5;AN=14;AO=8166;BVAR;CIGAR=1M1I;DP=17745;DPRA=0;EPP=9884.78;EPPR=14169.1;HWE=32.3452;LEN=1;MEANALT=8.71429;MQM=253.592;MQMR=252.804;NS=7;NUMALT=1;ODDS=5.2249;PAIRED=0;PAIREDR=0;REPEAT=C:5;RO=8565;RPP=9884.78;RPPR=14169.1;RUN=1;SAP=17735.3;SRP=18601.7;TYPE=ins;XAI=0.00805591;XAM=0.0142255;XAS=0.00616964;XRI=0.0093278;XRM=0.0151086;XRS=0.0057808	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:4:-15.68,-6.62597,-8.36:22.71:106:26:1	0/1:994:18 [...]
+chr22	42523209	rs28371730	T	C	49314.70	.	AB=0.443371;ABP=608.264;AC=8;AF=0.571429;AN=14;AO=11957;BVAR;CIGAR=1X;DB;DP=24131;DPRA=0;EPP=4.14371;EPPR=8892.97;HWE=27.36;LEN=1;MEANALT=7;MQM=252.829;MQMR=252.315;NS=7;NUMALT=1;ODDS=24.4923;PAIRED=0;PAIREDR=0;RO=12027;RPP=4.14371;RPPR=8892.97;RUN=1;SAP=25967.3;SRP=26119.3;TYPE=snp;XAI=0.00930025;XAM=0.0151585;XAS=0.00585823;XRI=0.0111776;XRM=0.0150637;XRS=0.00388618	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:5:8:-14.72,-0.660052,-11.2:99:160:120:3	1/1:2323:240 [...]
+chr22	42523211	rs2004511	T	C	49314.70	.	AB=0.392278;ABP=686.977;AC=2;AF=0.142857;AN=14;AO=2813;BVAR;CIGAR=1X;DB;DP=23200;DPRA=552.214;EPP=1120.17;EPPR=8964.97;HWE=-23.8382;LEN=1;MEANALT=4;MQM=253.316;MQMR=252.359;NS=7;NUMALT=1;ODDS=5.86363;PAIRED=0;PAIREDR=0;REPEAT=T:2;RO=20348;RPP=1120.17;RPPR=8964.97;RUN=1;SAP=6111.36;SRP=44188.1;TYPE=snp;XAI=0.00921625;XAM=0.0154942;XAS=0.00627795;XRI=0.0102368;XRM=0.015941;XRS=0.00570418	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:7:0,-2.10721,-22.2171:25.48:0:243 [...]
+chr22	42523306	.	CC	C	49314.70	.	AB=0.670466;ABP=5206.75;AC=7;AF=0.5;AN=14;AO=13823;BVAR;CIGAR=1M1D;DP=20617;DPRA=0;EPP=15235.1;EPPR=14118.1;HWE=32.3452;LEN=1;MEANALT=6.42857;MQM=252.336;MQMR=251.475;NS=7;NUMALT=1;ODDS=9.07713;PAIRED=0;PAIREDR=0;REPEAT=C:6;RO=6580;RPP=15235.1;RPPR=14118.1;RUN=1;SAP=30019.3;SRP=14291.3;TYPE=del;XAI=0.0103599;XAM=0.0164589;XAS=0.00609902;XRI=0.00627356;XRM=0.012286;XRS=0.00601247	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:7:9:-40.4114,-1.15297,-4.56:39.42:442:48:2	0/1:16 [...]
+chr22	42523409	rs1985842	G	T	49314.70	.	AB=0.500283;ABP=3.01768;AC=6;AF=0.428571;AN=14;AO=5332;BVAR;CIGAR=1X;DB;DP=13316;DPRA=0;EPP=9214.88;EPPR=15872.5;HWE=27.36;LEN=1;MEANALT=5.14286;MQM=251.425;MQMR=251.591;NS=7;NUMALT=1;ODDS=6.59665;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=7835;RPP=9214.88;RPPR=15872.5;RUN=1;SAP=11581.3;SRP=17016.5;TYPE=snp;XAI=0.0116405;XAM=0.0175057;XAS=0.00586523;XRI=0.0107482;XRM=0.0156757;XRS=0.00492748	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:3:4:-11.2,-0.60206,-3.4:28.65:120:34:1	 [...]
+chr22	42523491	.	C	T	42.82	.	AB=0.4;ABP=3.44459;AC=1;AF=0.0714286;AN=14;AO=40;BVAR;CIGAR=1X;DP=24032;DPRA=0;EPP=3.87889;EPPR=2107.06;HWE=-19.2686;LEN=1;MEANALT=3.71429;MQM=251.675;MQMR=250.58;NS=7;NUMALT=1;ODDS=9.85952;PAIRED=0;PAIREDR=0;RO=23947;RPP=3.87889;RPPR=2107.06;RUN=1;SAP=89.8692;SRP=52003.3;TYPE=snp;XAI=0.00950034;XAM=0.0156976;XAS=0.00619727;XRI=0.0104341;XRM=0.0159446;XRS=0.0055105	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:5:-7.6,-0.50515,-10.08:42.82:80:108:3	0/0:6:2916:-51.3754,-892.60 [...]
+chr22	42523507	.	A	G	15.11	.	AB=0.333333;ABP=4.45795;AC=1;AF=0.0714286;AN=14;AO=16;BVAR;CIGAR=1X;DP=18969;DPRA=0;EPP=22.5536;EPPR=4590.81;HWE=-19.2686;LEN=1;MEANALT=5.14286;MQM=254;MQMR=251.143;NS=7;NUMALT=1;ODDS=3.44697;PAIRED=0;PAIREDR=0;RO=18762;RPP=22.5536;RPPR=4590.81;RUN=1;SAP=37.7539;SRP=40744.2;TYPE=snp;XAI=0.00640924;XAM=0.0136914;XAS=0.0072822;XRI=0.00854323;XRM=0.013902;XRS=0.00535874	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:6:-4.94,-0.630089,-12.3025:15.11:52:133:4	0/0:1:2288:-84.8712,- [...]
+chr22	42523523	.	C	CC	49314.70	.	AB=0.422182;ABP=1257.85;AC=7;AF=0.5;AN=14;AO=10072;BVAR;CIGAR=1M1I;DP=23857;DPRA=0;EPP=20021.5;EPPR=26154.3;HWE=32.3452;LEN=1;MEANALT=9;MQM=253.268;MQMR=248.843;NS=7;NUMALT=1;ODDS=22.9683;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=13562;RPP=20021.5;RPPR=26154.3;RUN=1;SAP=21874.1;SRP=29452.5;TYPE=ins;XAI=0.00682993;XAM=0.0109511;XAS=0.00412119;XRI=0.0113604;XRM=0.0177437;XRS=0.00638338	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:6:-10.07,-0.630089,-11.84:99:106:128:4	0/1:1134:289 [...]
+chr22	42523562	.	G	GG,GGG	49314.70	.	AB=0.614797,0.149956;ABP=1440.34,13367.3;AC=7,4;AF=0.5,0.285714;AN=14;AO=7720,1883;BVAR;CIGAR=1M1I,1M2I;DP=12557;DPRA=0,0;EPP=16766.8,4091.89;EPPR=337.212;HWE=26.0206;LEN=1,2;MEANALT=6,6;MQM=253.984,253.971;MQMR=253.984;NS=7;NUMALT=2;ODDS=2.30259;PAIRED=0,0;PAIREDR=0;REPEAT=G:3;RO=2882;RPP=16766.8,4091.89;RPPR=337.212;RUN=1,1;SAP=16766.8,4091.89;SRP=6261.19;TYPE=ins,ins;XAI=0.00633177,0.00852945;XAM=0.0107965,0.0123093;XAS=0.0044647,0.00377989;XRI=0.0 [...]
+chr22	42523765	.	GG	G	49314.70	.	AB=0.209644;ABP=25864.9;AC=7;AF=0.5;AN=14;AO=7404;BVAR;CIGAR=1M1D;DP=35317;DPRA=0;EPP=15538;EPPR=43222.2;HWE=32.3452;LEN=1;MEANALT=5.71429;MQM=253.504;MQMR=244.529;NS=7;NUMALT=1;ODDS=30.5173;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=27735;RPP=15538;RPPR=43222.2;RUN=1;SAP=16080.6;SRP=60228.8;TYPE=del;XAI=0.00361575;XAM=0.00855302;XAS=0.00493727;XRI=0.00838546;XRM=0.0135256;XRS=0.00514013	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:7:12:-49.1886,-0.713635,-13.432:99:538:146:5	0/1:1 [...]
+chr22	42523805	rs28371725	C	T	49314.70	.	AB=0.490053;ABP=9.96529;AC=1;AF=0.0714286;AN=14;AO=4049;BVAR;CIGAR=1X;DB;DP=39296;DPRA=545.611;EPP=43.5679;EPPR=70030.6;HWE=-19.2686;LEN=1;MEANALT=3;MQM=241.321;MQMR=240.745;NS=7;NUMALT=1;ODDS=10.1095;PAIRED=0;PAIREDR=0;REPEAT=C:2|CCTC:2;RO=34673;RPP=43.5679;RPPR=70030.6;RUN=1;SAP=8795.3;SRP=75294.5;TYPE=snp;XAI=0.00796587;XAM=0.0123204;XAS=0.00435452;XRI=0.00808879;XRM=0.0131576;XRS=0.00506879	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:12:0,-3.61236,-37.8775: [...]
+chr22	42523943	rs16947	A	G	49314.70	.	AB=0.498768;ABP=3.30997;AC=8;AF=0.571429;AN=14;AO=14312;BVAR;CIGAR=1X;DB;DP=25739;DPRA=0;EPP=20419;EPPR=18782.2;HWE=27.36;LEN=1;MEANALT=4.57143;MQM=250.554;MQMR=249.993;NS=7;NUMALT=1;ODDS=39.6117;PAIRED=0;PAIREDR=0;RO=11356;RPP=20419;RPPR=18782.2;RUN=1;SAP=31081.1;SRP=24662.3;TYPE=snp;XAI=0.00694555;XAM=0.010946;XAS=0.00400042;XRI=0.00718971;XRM=0.0117448;XRS=0.00455509	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:5:13:-17.94,-0.803811,-27.5575:99:195:302:8	1/1:2978: [...]
+chr22	42524125	.	T	TC	1922.92	.	AB=0.0643815;ABP=5532.94;AC=6;AF=0.428571;AN=14;AO=256;BVAR;CIGAR=1M1I;DP=4258;DPRA=0;EPP=541.671;EPPR=916.312;HWE=27.36;LEN=1;MEANALT=3.14286;MQM=250.219;MQMR=252.402;NS=7;NUMALT=1;ODDS=4.50814;PAIRED=0;PAIREDR=0;RO=3975;RPP=541.671;RPPR=916.312;RUN=1;SAP=558.907;SRP=8634.61;TYPE=ins;XAI=0.0114249;XAM=0.0189039;XAS=0.00747896;XRI=0.00845069;XRM=0.0142448;XRS=0.00579416	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-3.9,-0.30103,-2.3:20.64:39:23:1	0/1:28:522:-136.59,-13 [...]
+chr22	42524134	.	C	CC	662.48	.	AB=0.0684444;ABP=1822.88;AC=3;AF=0.214286;AN=14;AO=192;BVAR;CIGAR=1M1I;DP=3714;DPRA=0;EPP=257.48;EPPR=1554.36;HWE=-21.3394;LEN=1;MEANALT=1.71429;MQM=249.286;MQMR=251.184;NS=7;NUMALT=1;ODDS=1.20397;PAIRED=0;PAIREDR=0;RO=3512;RPP=257.48;RPPR=1554.36;RUN=1;SAP=419.933;SRP=7629.22;TYPE=ins;XAI=0.015472;XAM=0.0233643;XAS=0.00789225;XRI=0.00824063;XRM=0.0138378;XRS=0.00559712	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:1:-4.9,-0.30103,0:1.14:49:0:0	0/0:19:455:-67.3516,-103.717 [...]
+chr22	42524154	.	CC	C	49314.70	.	AB=0.783933;ABP=2164.64;AC=8;AF=0.571429;AN=14;AO=2423;BVAR;CIGAR=1M1D;DP=3090;DPRA=0;EPP=1304.3;EPPR=644.489;HWE=27.36;LEN=1;MEANALT=4;MQM=244.278;MQMR=251.367;NS=7;NUMALT=1;ODDS=0.847298;PAIRED=0;PAIREDR=0;REPEAT=C:6;RO=583;RPP=1304.3;RPPR=644.489;RUN=1;SAP=5264.49;SRP=1268.98;TYPE=del;XAI=0.00632062;XAM=0.0109849;XAS=0.00466423;XRI=0.00660059;XRM=0.0128321;XRS=0.00623154	GT:AO:DP:GL:GQ:QA:QR:RO	1/1:3:3:-17.64,-0.90309,0:5.23:189:0:0	0/1:291:409:-1689.4 [...]
+chr22	42524220	.	G	GG	37790.70	.	AB=0.237258;ABP=2661.72;AC=7;AF=0.5;AN=14;AO=1052;BVAR;CIGAR=1M1I;DP=4434;DPRA=0;EPP=1002.91;EPPR=1209.82;HWE=32.3452;LEN=1;MEANALT=9;MQM=243.04;MQMR=246.215;NS=7;NUMALT=1;ODDS=9.43863;PAIRED=0;PAIREDR=0;REPEAT=G:7|GGCTG:2;RO=2480;RPP=1002.91;RPPR=1209.82;RUN=1;SAP=2287.4;SRP=5388.26;TYPE=ins;XAI=0.00843152;XAM=0.0141226;XAS=0.00569112;XRI=0.00475483;XRM=0.0098892;XRS=0.00513437	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:4:-7.695,-0.425969,-3.99:40.99:81:42:2	0/1:170: [...]
+chr22	42524225	.	G	GG	50000	.	AB=0.124393;ABP=17173.4;AC=7;AF=0.5;AN=14;AO=1743;BVAR;CIGAR=1M1I;DP=14012;DPRA=0;EPP=3180.37;EPPR=2781.27;HWE=32.3452;LEN=1;MEANALT=4.14286;MQM=251.594;MQMR=245.506;NS=7;NUMALT=1;ODDS=25.0682;PAIRED=0;PAIREDR=0;REPEAT=G:3|GCTGG:2;RO=12201;RPP=3180.37;RPPR=2781.27;RUN=1;SAP=3787.89;SRP=26497.1;TYPE=ins;XAI=0.00477562;XAM=0.00926508;XAS=0.00448945;XRI=0.00536601;XRM=0.0103327;XRS=0.00496664	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:3:7:-14.4667,-0.563142,-10.915:99:155:118 [...]
+chr22	42524243	rs35742686	CT	C	49314.70	.	AB=0.526007;ABP=57.1122;AC=2;AF=0.142857;AN=14;AO=4893;BVAR;CIGAR=1M1D;DB;DP=25972;DPRA=216.267;EPP=4874.05;EPPR=6888.19;HWE=-23.8382;LEN=1;MEANALT=8.16667;MQM=242.968;MQMR=248.576;NS=7;NUMALT=1;ODDS=14.8745;PAIRED=0;PAIREDR=0;REPEAT=C:2;RO=20851;RPP=4874.05;RPPR=6888.19;RUN=1;SAP=10628;SRP=45280.4;TYPE=del;XAI=0.00482024;XAM=0.0093771;XAS=0.00455685;XRI=0.00466854;XRM=0.0095398;XRS=0.00487126	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:20:0,-6.0206,-58.3725:6 [...]
+chr22	42524331	.	GG	G	49314.70	.	AB=0.218956;ABP=20169.1;AC=6;AF=0.428571;AN=14;AO=6436;BVAR;CIGAR=1M1D;DP=29409;DPRA=326.6;EPP=11204.7;EPPR=26976;HWE=27.36;LEN=1;MEANALT=7.16667;MQM=249.563;MQMR=247.755;NS=7;NUMALT=1;ODDS=8.47192;PAIRED=0;PAIREDR=0;REPEAT=G:2|GGA:2;RO=22684;RPP=11204.7;RPPR=26976;RUN=1;SAP=13978.6;SRP=49260.7;TYPE=del;XAI=0.00766115;XAM=0.0116377;XAS=0.00397653;XRI=0.00510003;XRM=0.00998322;XRS=0.0048832	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:15:-2.2,-6.41442,-35.4507:36.79:0:36 [...]
+chr22	42524372	.	G	GG	49314.70	.	AB=0.265532;ABP=12738.7;AC=7;AF=0.5;AN=14;AO=7082;BVAR;CIGAR=1M1I;DP=26671;DPRA=0;EPP=8641.95;EPPR=15220.2;HWE=32.3452;LEN=1;MEANALT=6.14286;MQM=253.632;MQMR=253.662;NS=7;NUMALT=1;ODDS=44.887;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=19434;RPP=8641.95;RPPR=15220.2;RUN=1;SAP=15381.4;SRP=42203.4;TYPE=ins;XAI=0.00872115;XAM=0.0131603;XAS=0.00443912;XRI=0.00377633;XRM=0.00840894;XRS=0.00463262	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:5:14:-19.872,-0.912956,-24.3267:99:216:267:9	0/ [...]
+chr22	42524435	rs1807313	T	A	49314.70	.	AB=0.479859;ABP=48.8463;AC=3;AF=0.214286;AN=14;AO=6305;BVAR;CIGAR=1X;DB;DP=41439;DPRA=0;EPP=109.862;EPPR=13682;HWE=-21.3394;LEN=1;MEANALT=4.71429;MQM=252.852;MQMR=252.696;NS=7;NUMALT=1;ODDS=51.6265;PAIRED=0;PAIREDR=0;RO=34828;RPP=109.862;RPPR=13682;RUN=1;SAP=13694.1;SRP=75631.1;TYPE=snp;XAI=0.0056246;XAM=0.00955321;XAS=0.00392861;XRI=0.00593171;XRM=0.0101544;XRS=0.00422268	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:16:23:-53.5594,-1.53425,-23.1314:99:591:253:7	0/ [...]
+chr22	42524445	.	G	GG	49314.70	.	AB=0.379303;ABP=5277.84;AC=7;AF=0.5;AN=14;AO=15812;BVAR;CIGAR=1M1I;DP=41687;DPRA=0;EPP=34078.2;EPPR=46753.2;HWE=32.3452;LEN=1;MEANALT=9.71429;MQM=253.91;MQMR=251.322;NS=7;NUMALT=1;ODDS=40.6431;PAIRED=0;PAIREDR=0;REPEAT=G:3|GCCT:2;RO=24505;RPP=34078.2;RPPR=46753.2;RUN=1;SAP=34338.3;SRP=53214.9;TYPE=ins;XAI=0.00628566;XAM=0.0106844;XAS=0.00439872;XRI=0.00458619;XRM=0.00933889;XRS=0.0047527	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:3:25:-21.28,-4.16402,-65.2177:99:228:721 [...]
+chr22	42524696	rs58440431	T	C	49314.70	.	AB=0.48713;ABP=24.4184;AC=2;AF=0.142857;AN=14;AO=7488;BVAR;CIGAR=1X;DB;DP=46275;DPRA=856.778;EPP=187.679;EPPR=39404.3;HWE=-23.8382;LEN=1;MEANALT=7;MQM=248.314;MQMR=247.047;NS=7;NUMALT=1;ODDS=7.24993;PAIRED=0;PAIREDR=0;RO=38638;RPP=187.679;RPPR=39404.3;RUN=1;SAP=16263;SRP=83904.4;TYPE=snp;XAI=0.00819389;XAM=0.013411;XAS=0.00521709;XRI=0.00903367;XRM=0.0138483;XRS=0.00481465	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:9:0,-2.70927,-29.8844:31.49:0:328:9	0/1:2783: [...]
+chr22	42524768	.	C	T	9.39	.	AB=0.5;ABP=3.0103;AC=1;AF=0.0714286;AN=14;AO=48;BVAR;CIGAR=1X;DP=22984;DPRA=0;EPP=4.6389;EPPR=12109.5;HWE=-19.2686;LEN=1;MEANALT=2.85714;MQM=253.438;MQMR=252.043;NS=7;NUMALT=1;ODDS=2.04022;PAIRED=0;PAIREDR=0;RO=22899;RPP=4.6389;RPPR=12109.5;RUN=1;SAP=107.241;SRP=49727.6;TYPE=snp;XAI=0.00658074;XAM=0.011627;XAS=0.00504627;XRI=0.00777981;XRM=0.0128159;XRS=0.00503609	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-4,-0.30103,-3:9.39:40:30:1	0/0:5:2707:-42.3636,-823.672,-8680.23 [...]
+chr22	42524941	.	GG	G	25077.30	.	AB=0.0745004;ABP=26367.3;AC=7;AF=0.5;AN=14;AO=1249;BVAR;CIGAR=1M1D;DP=16765;DPRA=0;EPP=962.785;EPPR=31681.6;HWE=32.3452;LEN=1;MEANALT=8.42857;MQM=245.153;MQMR=251.042;NS=7;NUMALT=1;ODDS=8.36779;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=15343;RPP=962.785;RPPR=31681.6;RUN=1;SAP=2715.18;SRP=33319.9;TYPE=del;XAI=0.0177436;XAM=0.026387;XAS=0.00864343;XRI=0.00476137;XRM=0.00965079;XRS=0.00488941	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-4.4,-0.30103,-3.4:35.93:44:34:1	0/1:162:19 [...]
+chr22	42524947	rs3892097	C	T	49314.70	.	AB=0.459977;ABP=86.6172;AC=2;AF=0.142857;AN=14;AO=2801;BVAR;CIGAR=1X;DB;DP=19689;DPRA=1640.58;EPP=5175.39;EPPR=33587.5;HWE=-23.8382;LEN=1;MEANALT=7.33333;MQM=250.725;MQMR=250.786;NS=7;NUMALT=1;ODDS=2.3979;PAIRED=0;PAIREDR=0;REPEAT=C:2;RO=16272;RPP=5175.39;RPPR=33587.5;RUN=1;SAP=6085.3;SRP=35337.2;TYPE=snp;XAI=0.00513308;XAM=0.0107355;XAS=0.00560246;XRI=0.00544547;XRM=0.00976638;XRS=0.00432091	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:2:0,-0.60206,-5.7:10.79:0: [...]
+chr22	42524965	.	GG	G	49314.70	.	AB=0.409009;ABP=523.446;AC=7;AF=0.5;AN=14;AO=2960;BVAR;CIGAR=1M1D;DP=7237;DPRA=0;EPP=3067.97;EPPR=5962.58;HWE=32.3452;LEN=1;MEANALT=4;MQM=249.276;MQMR=246.491;NS=7;NUMALT=1;ODDS=9.74934;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=4222;RPP=3067.97;RPPR=5962.58;RUN=1;SAP=6430.57;SRP=9170.97;TYPE=del;XAI=0.0114242;XAM=0.017162;XAS=0.00573776;XRI=0.00639741;XRM=0.0125077;XRS=0.00611032	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-5.2,-0.30103,-4:42.08:52:40:1	0/1:383:871:-1926.73,- [...]
+chr22	42524972	.	GG	G	49314.70	.	AB=0.248782;ABP=5403.59;AC=7;AF=0.5;AN=14;AO=2451;BVAR;CIGAR=1M1D;DP=9853;DPRA=0;EPP=249.065;EPPR=13651.1;HWE=32.3452;LEN=1;MEANALT=4.83333;MQM=231.95;MQMR=250.585;NS=7;NUMALT=1;ODDS=0.538997;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=7344;RPP=249.065;RPPR=13651.1;RUN=1;SAP=5325.29;SRP=15950.3;TYPE=del;XAI=0.0124679;XAM=0.0193205;XAS=0.00685267;XRI=0.00528277;XRM=0.0110049;XRS=0.00572215	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:0:1:0,-0.30103,-3.4:2:0:34:1	0/1:93:1262:-447.769, [...]
+chr22	42524983	.	CC	C	49314.70	.	AB=0.457204;ABP=129.209;AC=7;AF=0.5;AN=14;AO=3627;BVAR;CIGAR=1M1D;DP=7933;DPRA=0;EPP=368.192;EPPR=8636.77;HWE=32.3452;LEN=1;MEANALT=4.42857;MQM=228.596;MQMR=252.293;NS=7;NUMALT=1;ODDS=8.36779;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=4232;RPP=368.192;RPPR=8636.77;RUN=1;SAP=7878.94;SRP=9192.68;TYPE=del;XAI=0.0125058;XAM=0.0192024;XAS=0.00669657;XRI=0.00343157;XRM=0.00866831;XRS=0.00523675	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-3.6,-0.30103,-3.4:34.22:36:34:1	0/1:592:1016 [...]
+chr22	42524990	.	CC	C	49314.70	.	AB=0.342402;ABP=2548.44;AC=7;AF=0.5;AN=14;AO=4040;BVAR;CIGAR=1M1D;DP=11799;DPRA=0;EPP=894.681;EPPR=14976.8;HWE=32.3452;LEN=1;MEANALT=4.28571;MQM=205.035;MQMR=245.649;NS=7;NUMALT=1;ODDS=6.98623;PAIRED=0;PAIREDR=0;REPEAT=C:5;RO=7652;RPP=894.681;RPPR=14976.8;RUN=1;SAP=8775.76;SRP=16619.1;TYPE=del;XAI=0.0104144;XAM=0.0171794;XAS=0.00676494;XRI=0.00371427;XRM=0.00906809;XRS=0.00535382	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-4.2,-0.30103,-2.8:30.18:42:28:1	0/1:356:130 [...]
+chr22	42525126	.	G	T	71.67	.	AB=0.375;ABP=4.09604;AC=1;AF=0.0714286;AN=14;AO=18;BVAR;CIGAR=1X;DP=32571;DPRA=0.895662;EPP=3.49285;EPPR=16183.4;HWE=-19.2686;LEN=1;MEANALT=2.66667;MQM=234.889;MQMR=229.973;NS=7;NUMALT=1;ODDS=16.5027;PAIRED=0;PAIREDR=0;REPEAT=G:2;RO=32476;RPP=3.49285;RPPR=16183.4;RUN=1;SAP=42.0968;SRP=70523.7;TYPE=snp;XAI=0.00437732;XAM=0.00953285;XAS=0.00515554;XRI=0.00609047;XRM=0.0119027;XRS=0.00581226	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:3:8:-10.64,-0.660052,-15.824:71.67:114:172: [...]
+chr22	42525132	rs1058164	G	C	49314.70	.	AB=0.487091;ABP=41.8074;AC=5;AF=0.357143;AN=14;AO=13090;BVAR;CIGAR=1X;DB;DP=33870;DPRA=806.262;EPP=1840.32;EPPR=15069.3;HWE=3.0103;LEN=1;MEANALT=6.5;MQM=233.472;MQMR=228.746;NS=7;NUMALT=1;ODDS=4.62889;PAIRED=0;PAIREDR=0;REPEAT=GA:2;RO=20537;RPP=1840.32;RPPR=15069.3;RUN=1;SAP=28427.6;SRP=44598.5;TYPE=snp;XAI=0.00622685;XAM=0.0105876;XAS=0.00436075;XRI=0.00634881;XRM=0.0110669;XRS=0.00471811	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:7:0,-2.10721,-24.8686:20.15:0 [...]
+chr22	42525194	.	G	GG	49314.70	.	AB=0.863495;ABP=11411.8;AC=8;AF=0.571429;AN=14;AO=8587;BVAR;CIGAR=1M1I;DP=9944;DPRA=0;EPP=18649.4;EPPR=82.0485;HWE=27.36;LEN=1;MEANALT=4.85714;MQM=253.157;MQMR=253.974;NS=7;NUMALT=1;ODDS=0.847298;PAIRED=0;PAIREDR=0;REPEAT=G:5;RO=1034;RPP=18649.4;RPPR=82.0485;RUN=1;SAP=18649.4;SRP=2248.31;TYPE=ins;XAI=0.0092712;XAM=0.0142014;XAS=0.00493025;XRI=0.00279276;XRM=0.0107418;XRS=0.00794905	GT:AO:DP:GL:GQ:QA:QR:RO	1/1:3:3:-16.0533,-0.90309,0:5.31:172:0:0	0/1:1087: [...]
+chr22	42525197	.	GG	G	23022.80	.	AB=0.0995978;ABP=7273.45;AC=7;AF=0.5;AN=14;AO=520;BVAR;CIGAR=1M1D;DP=5221;DPRA=0;EPP=1123.51;EPPR=506.409;HWE=32.3452;LEN=1;MEANALT=6.28571;MQM=253.763;MQMR=253.784;NS=7;NUMALT=1;ODDS=7.44675;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=4305;RPP=1123.51;RPPR=506.409;RUN=1;SAP=1132.18;SRP=9351.2;TYPE=del;XAI=0.00898714;XAM=0.0170326;XAS=0.00804546;XRI=0.00641878;XRM=0.0121688;XRS=0.00575	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:2:-11.5,-0.30103,-3:32.34:115:30:1	0/1:68:683:-499. [...]
+chr22	42525244	.	CC	C	153.81	.	AB=0.5;ABP=3.0103;AC=1;AF=0.0714286;AN=14;AO=179;BVAR;CIGAR=1M1D;DP=20257;DPRA=0;EPP=391.704;EPPR=1121.61;HWE=-19.2686;LEN=1;MEANALT=5.57143;MQM=253.782;MQMR=253.794;NS=7;NUMALT=1;ODDS=16.1969;PAIRED=0;PAIREDR=0;REPEAT=C:2|CCA:2|CCAC:2;RO=19606;RPP=391.704;RPPR=1121.61;RUN=1;SAP=391.704;SRP=42576.9;TYPE=del;XAI=0.0132774;XAM=0.0192844;XAS=0.00600703;XRI=0.00689978;XRM=0.0118897;XRS=0.00498992	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:4:-18.62,-0.425969,-6.08:70.34:196: [...]
+chr22	42525351	.	G	GG	49314.70	.	AB=0.588484;ABP=2284.88;AC=7;AF=0.5;AN=14;AO=19746;BVAR;CIGAR=1M1I;DP=33554;DPRA=0;EPP=41451.2;EPPR=22703.2;HWE=32.3452;LEN=1;MEANALT=8;MQM=253.763;MQMR=248.291;NS=7;NUMALT=1;ODDS=11.3493;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=13144;RPP=41451.2;RPPR=22703.2;RUN=1;SAP=42880.9;SRP=28544.8;TYPE=ins;XAI=0.00982964;XAM=0.0136368;XAS=0.0038072;XRI=0.010348;XRM=0.0161958;XRS=0.00584775	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:5:-5.2,-0.80618,-12.025:49.29:52:130:4	0/1:2516:4182: [...]
+chr22	42525356	.	G	GG	49314.70	.	AB=0.316695;ABP=9860.92;AC=7;AF=0.5;AN=14;AO=10697;BVAR;CIGAR=1M1I;DP=33777;DPRA=0;EPP=22260.1;EPPR=16696.5;HWE=32.3452;LEN=1;MEANALT=9.71429;MQM=253.687;MQMR=252.72;NS=7;NUMALT=1;ODDS=10.198;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=18797;RPP=22260.1;RPPR=16696.5;RUN=1;SAP=23231.3;SRP=40820.2;TYPE=ins;XAI=0.00761128;XAM=0.0112169;XAS=0.00360561;XRI=0.00693026;XRM=0.0120364;XRS=0.00510618	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:5:-4.7,-0.80618,-13.32:6.28:47:144:4	0/1:1258: [...]
+chr22	42525418	.	G	T	27.33	.	AB=0.333333;ABP=4.45795;AC=1;AF=0.0714286;AN=14;AO=2;BVAR;CIGAR=1X;DP=35864;DPRA=0.00100396;EPP=7.35324;EPPR=34354.7;HWE=-19.2686;LEN=1;MEANALT=1;MQM=254;MQMR=248.729;NS=7;NUMALT=1;ODDS=6.29066;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=35629;RPP=7.35324;RPPR=34354.7;RUN=1;SAP=7.35324;SRP=77370.4;TYPE=snp;XAI=0.00842813;XAM=0.00842813;XAS=0;XRI=0.0109442;XRM=0.0155782;XRS=0.00463398	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:6:-6.175,-0.630089,-12.6725:27.33:65:137:4	0/0:0:4534:-11 [...]
+chr22	42525455	.	C	CC	49314.70	.	AB=0.303027;ABP=14051.1;AC=7;AF=0.5;AN=14;AO=12632;BVAR;CIGAR=1M1I;DP=41686;DPRA=0;EPP=60.4402;EPPR=25491.5;HWE=32.3452;LEN=1;MEANALT=6.57143;MQM=220.658;MQMR=251.903;NS=7;NUMALT=1;ODDS=13.8318;PAIRED=0;PAIREDR=0;RO=28765;RPP=60.4402;RPPR=25491.5;RUN=1;SAP=27433;SRP=62465.4;TYPE=ins;XAI=0.0337375;XAM=0.0412115;XAS=0.00747399;XRI=0.00638066;XRM=0.0110039;XRS=0.00462327	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:6:-6.5,-1.02803,-13.892:60.07:65:151:5	0/1:1526:5167:-6537 [...]
+chr22	42525461	.	CC	C	49314.70	.	AB=0.590029;ABP=1697.57;AC=7;AF=0.5;AN=14;AO=14202;BVAR;CIGAR=1M1D;DP=24070;DPRA=0;EPP=12737;EPPR=18860.8;HWE=32.3452;LEN=1;MEANALT=9;MQM=249.671;MQMR=245.185;NS=7;NUMALT=1;ODDS=12.4686;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=9294;RPP=12737;RPPR=18860.8;RUN=1;SAP=30842.3;SRP=20184.7;TYPE=del;XAI=0.00975033;XAM=0.0149798;XAS=0.00522945;XRI=0.00927598;XRM=0.0149942;XRS=0.00571821	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:4:6:-12.21,-0.630089,-5.51:54.15:132:58:2	0/1:1784:2943:- [...]
+chr22	42525468	.	CC	C	49314.70	.	AB=0.574154;ABP=1687.65;AC=6;AF=0.428571;AN=14;AO=20251;BVAR;CIGAR=1M1D;DP=35275;DPRA=1469.62;EPP=1750.54;EPPR=24792.3;HWE=27.36;LEN=1;MEANALT=11.6667;MQM=233.651;MQMR=239.818;NS=7;NUMALT=1;ODDS=1.54045;PAIRED=0;PAIREDR=0;REPEAT=C:6;RO=13843;RPP=1750.54;RPPR=24792.3;RUN=1;SAP=43977.5;SRP=30062.7;TYPE=del;XAI=0.0194357;XAM=0.0253129;XAS=0.00587726;XRI=0.00584761;XRM=0.0108135;XRS=0.00496586	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:4:0,-1.20412,-8.7875:7.53:0:95:4	0/1 [...]
+chr22	42525513	.	C	CC	49314.70	.	AB=0.206594;ABP=33771.8;AC=7;AF=0.5;AN=14;AO=9330;BVAR;CIGAR=1M1I;DP=45161;DPRA=0;EPP=19813.7;EPPR=39132.6;HWE=32.3452;LEN=1;MEANALT=8.28571;MQM=253.79;MQMR=250.76;NS=7;NUMALT=1;ODDS=11.4556;PAIRED=0;PAIREDR=0;REPEAT=C:3;RO=34562;RPP=19813.7;RPPR=39132.6;RUN=1;SAP=20262.8;SRP=75053.4;TYPE=ins;XAI=0.00498178;XAM=0.00975723;XAS=0.00477545;XRI=0.0111556;XRM=0.0157294;XRS=0.00457385	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:5:7:-33.488,-0.784991,-5.225:6.28:364:55:2	0/1:10 [...]
+chr22	42525772	rs28371706	G	A	49314.70	.	AB=0.516246;ABP=41.4639;AC=4;AF=0.285714;AN=14;AO=8718;BVAR;CIGAR=1X;DB;DP=36411;DPRA=0;EPP=2256.69;EPPR=45790.1;HWE=-12.5527;LEN=1;MEANALT=4.28571;MQM=251.436;MQMR=251.588;NS=7;NUMALT=1;ODDS=15.538;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=27536;RPP=2256.69;RPPR=45790.1;RUN=1;SAP=18933.9;SRP=59796.7;TYPE=snp;XAI=0.00870035;XAM=0.0128199;XAS=0.00411958;XRI=0.00766392;XRM=0.0131876;XRS=0.00552367	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:6:-7.6,-0.630089,-14.43:67.48:8 [...]
+chr22	42525798	rs28371705	G	C	49314.70	.	AB=0.446311;ABP=296.568;AC=2;AF=0.142857;AN=14;AO=5266;BVAR;CIGAR=1X;DB;DP=39879;DPRA=738.333;EPP=1884.39;EPPR=51306.4;HWE=-23.8382;LEN=1;MEANALT=4.66667;MQM=251.771;MQMR=250.474;NS=7;NUMALT=1;ODDS=7.24993;PAIRED=0;PAIREDR=0;REPEAT=G:2;RO=34418;RPP=1884.39;RPPR=51306.4;RUN=1;SAP=11438;SRP=74740.7;TYPE=snp;XAI=0.00757556;XAM=0.0158367;XAS=0.00826114;XRI=0.00839166;XRM=0.0134937;XRS=0.00510199	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:9:0,-2.70927,-28.8822:31.4 [...]
+chr22	42525811	rs28371704	T	C	49314.70	.	AB=0.440145;ABP=372.917;AC=2;AF=0.142857;AN=14;AO=5326;BVAR;CIGAR=1X;DB;DP=40392;DPRA=841.333;EPP=1863.19;EPPR=52237.8;HWE=-23.8382;LEN=1;MEANALT=7.16667;MQM=251.788;MQMR=250.169;NS=7;NUMALT=1;ODDS=6.55678;PAIRED=0;PAIREDR=0;RO=34870;RPP=1863.19;RPPR=52237.8;RUN=1;SAP=11568.3;SRP=75722.3;TYPE=snp;XAI=0.00761474;XAM=0.0158167;XAS=0.00820192;XRI=0.00847482;XRM=0.0135879;XRS=0.00511305	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:8:0,-2.40824,-26.4625:28.48:0:290:8 [...]
+chr22	42525821	rs28371703	G	T	49314.70	.	AB=0.430211;ABP=526.447;AC=2;AF=0.142857;AN=14;AO=5356;BVAR;CIGAR=1X;DB;DP=42468;DPRA=884.583;EPP=2234.37;EPPR=48344.8;HWE=-23.8382;LEN=1;MEANALT=6.33333;MQM=251.326;MQMR=249.903;NS=7;NUMALT=1;ODDS=6.55678;PAIRED=0;PAIREDR=0;REPEAT=GC:2;RO=36935;RPP=2234.37;RPPR=48344.8;RUN=1;SAP=11633.4;SRP=80206.3;TYPE=snp;XAI=0.00792717;XAM=0.016185;XAS=0.00825781;XRI=0.00875497;XRM=0.0139492;XRS=0.00519421	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:8:0,-2.40824,-27.1925:28 [...]
+chr22	42525889	.	AC	A	819.44	.	AB=0.0376186;ABP=5679.9;AC=2;AF=0.142857;AN=14;AO=605;BVAR;CIGAR=1M1D;DP=18424;DPRA=0;EPP=19.1223;EPPR=7660.07;HWE=-23.8382;LEN=1;MEANALT=6.28571;MQM=208.195;MQMR=236.841;NS=7;NUMALT=1;ODDS=5.51672;PAIRED=0;PAIREDR=0;REPEAT=AC:2;RO=17360;RPP=19.1223;RPPR=7660.07;RUN=1;SAP=1316.75;SRP=37699.8;TYPE=del;XAI=0.0134462;XAM=0.0212868;XAS=0.0078406;XRI=0.0108217;XRM=0.017876;XRS=0.00705427	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:3:-3.6,-0.425969,-5.51:9.03:36:58:2	0/0:67:19 [...]
+chr22	42525895	.	CC	C	49314.70	.	AB=0.135925;ABP=19196.7;AC=7;AF=0.5;AN=14;AO=2266;BVAR;CIGAR=1M1D;DP=16671;DPRA=0;EPP=4590.65;EPPR=18703.8;HWE=32.3452;LEN=1;MEANALT=5.14286;MQM=202.108;MQMR=245.728;NS=7;NUMALT=1;ODDS=0.538997;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=12758;RPP=4590.65;RPPR=18703.8;RUN=1;SAP=4923.57;SRP=27706.7;TYPE=del;XAI=0.0129141;XAM=0.0205811;XAS=0.00766697;XRI=0.0103281;XRM=0.0171763;XRS=0.00684816	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:1:-4.7,-0.30103,0:0.54:47:0:0	0/1:202:1774:-13 [...]
+chr22	42525920	.	GG	G,GGG	11254.60	.	AB=0.0450071,0.0479375;ABP=23934.5,23627.2;AC=4,4;AF=0.285714,0.285714;AN=14;AO=599,638;BVAR;CIGAR=1M1D,2M1I;DP=13309;DPRA=0,0;EPP=92.3669,1269.48;EPPR=14554.2;HWE=2.9073;LEN=1,1;MEANALT=6.71429,6.71429;MQM=189.593,207.154;MQMR=245.266;NS=7;NUMALT=2;ODDS=1.61181;PAIRED=0,0;PAIREDR=0;REPEAT=G:3;RO=11733;RPP=92.3669,1269.48;RPPR=14554.2;RUN=1,1;SAP=1303.72,1388.41;SRP=25480.9;TYPE=del,ins;XAI=0.0141233,0.0209738;XAM=0.022054,0.0293882;XAS=0.00793068,0.0 [...]
+chr22	42525925	.	G	GG	49314.70	.	AB=0.125029;ABP=21130.9;AC=7;AF=0.5;AN=14;AO=2163;BVAR;CIGAR=1M1I;DP=17300;DPRA=0;EPP=4226.09;EPPR=14555.3;HWE=32.3452;LEN=1;MEANALT=4.71429;MQM=184.983;MQMR=241.036;NS=7;NUMALT=1;ODDS=15.3448;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=14889;RPP=4226.09;RPPR=14555.3;RUN=1;SAP=4699.91;SRP=32334.1;TYPE=ins;XAI=0.012058;XAM=0.0201676;XAS=0.00810955;XRI=0.0108463;XRM=0.017858;XRS=0.0070117	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:3:-8.2,-0.425969,-6.555:66.54:82:69:2	0/1:235:1855 [...]
+chr22	42525931	.	G	GG	49314.70	.	AB=0.183216;ABP=16154.6;AC=7;AF=0.5;AN=14;AO=3395;BVAR;CIGAR=1M1I;DP=18530;DPRA=0;EPP=6491.35;EPPR=17237.7;HWE=32.3452;LEN=1;MEANALT=6;MQM=199.949;MQMR=239.883;NS=7;NUMALT=1;ODDS=9.21988;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=14775;RPP=6491.35;RPPR=17237.7;RUN=1;SAP=7375.16;SRP=32086.5;TYPE=ins;XAI=0.00999677;XAM=0.0177495;XAS=0.00775271;XRI=0.0111993;XRM=0.0182877;XRS=0.00708839	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:4:-13.11,-0.425969,-3.895:40.04:138:41:2	0/1:304:197 [...]
+chr22	42525952	.	C	A,CA	49314.70	.	AB=0.559845,0.118057;ABP=364.797,14739.4;AC=6,2;AF=0.428571,0.142857;AN=14;AO=6525,1375;BVAR;CIGAR=1X,1M1I;DP=13198;DPRA=0,0;EPP=1707.3,9.68264;EPPR=8724.46;HWE=2.1114;LEN=1,1;MEANALT=5.71429,5.71429;MQM=228.39,217.375;MQMR=244.33;NS=7;NUMALT=2;ODDS=9.2056;PAIRED=0,0;PAIREDR=0;REPEAT=C:6;RO=5225;RPP=1707.3,9.68264;RPPR=8724.46;RUN=1,1;SAP=14171.9,2988.78;SRP=11349;TYPE=snp,ins;XAI=0.00893313,0.0259017;XAM=0.0149697,0.032822;XAS=0.00603657,0.0069203;XRI= [...]
+chr22	42525991	.	C	CC	49314.70	.	AB=0.224727;ABP=8909.47;AC=8;AF=0.571429;AN=14;AO=3043;BVAR;CIGAR=1M1I;DP=13534;DPRA=0;EPP=278.202;EPPR=15321.2;HWE=27.36;LEN=1;MEANALT=6.14286;MQM=223.177;MQMR=241.436;NS=7;NUMALT=1;ODDS=0.154151;PAIRED=0;PAIREDR=0;RO=8270;RPP=278.202;RPPR=15321.2;RUN=1;SAP=6610.8;SRP=17961.1;TYPE=ins;XAI=0.0191029;XAM=0.0270395;XAS=0.00793664;XRI=0.00558292;XRM=0.0126992;XRS=0.00711625	GT:AO:DP:GL:GQ:QA:QR:RO	1/1:2:2:-4.845,-0.60206,0:11.46:51:0:0	0/1:316:1462:-1588.27, [...]
+chr22	42525997	.	CC	C	49314.70	.	AB=0.262036;ABP=5795.57;AC=8;AF=0.571429;AN=14;AO=3090;BVAR;CIGAR=1M1D;DP=11781;DPRA=0;EPP=2691.66;EPPR=13934.4;HWE=27.36;LEN=1;MEANALT=8.42857;MQM=168.911;MQMR=234.45;NS=7;NUMALT=1;ODDS=1.54045;PAIRED=0;PAIREDR=0;REPEAT=C:5;RO=7935;RPP=2691.66;RPPR=13934.4;RUN=1;SAP=6712.86;SRP=17233.6;TYPE=del;XAI=0.0123671;XAM=0.0200087;XAS=0.00764155;XRI=0.00686281;XRM=0.0141274;XRS=0.00726456	GT:AO:DP:GL:GQ:QA:QR:RO	1/1:4:4:-11.655,-1.20412,0:7.53:126:0:0	0/1:379:138 [...]
+chr22	42526049	.	C	G,CG	49314.70	.	AB=0.18002,0.266554;ABP=9982.14,5314.54;AC=9,2;AF=0.642857,0.142857;AN=14;AO=6950,3008;BVAR;CIGAR=1X,1M1I;DP=16504;DPRA=0,2750.5;EPP=6969.62,841.918;EPPR=2089.02;HWE=-16.5861;LEN=1,1;MEANALT=9.71429,11.1667;MQM=218.319,196.558;MQMR=189.054;NS=7;NUMALT=2;ODDS=0.693147;PAIRED=0,0;PAIREDR=0;REPEAT=C:2;RO=6026;RPP=6969.62,841.918;RPPR=2089.02;RUN=1,1;SAP=15094.7,6534.8;SRP=13088.3;TYPE=snp,ins;XAI=0.00683168,0.0140063;XAM=0.01264,0.0201596;XAS=0.00580837,0. [...]
+chr22	42526053	.	GG	G	49314.70	.	AB=0.190012;ABP=12069.6;AC=7;AF=0.5;AN=14;AO=2747;BVAR;CIGAR=1M1D;DP=14457;DPRA=0;EPP=3.58657;EPPR=17743.3;HWE=32.3452;LEN=1;MEANALT=7;MQM=148.241;MQMR=231.765;NS=7;NUMALT=1;ODDS=0.538997;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=10230;RPP=3.58657;RPPR=17743.3;RUN=1;SAP=5968.05;SRP=22217.2;TYPE=del;XAI=0.0110832;XAM=0.0196616;XAS=0.00857839;XRI=0.0106842;XRM=0.0179001;XRS=0.00721585	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:1:-3.5,-0.30103,0:0.35:35:0:0	0/1:327:1655:-1790.03, [...]
+chr22	42526059	.	GG	G	49314.70	.	AB=0.556962;ABP=437.167;AC=8;AF=0.571429;AN=14;AO=8583;BVAR;CIGAR=1M1D;DP=15408;DPRA=0;EPP=7592.29;EPPR=10201.2;HWE=27.36;LEN=1;MEANALT=9.57143;MQM=174.355;MQMR=244.374;NS=7;NUMALT=1;ODDS=0.847298;PAIRED=0;PAIREDR=0;REPEAT=G:5;RO=4788;RPP=7592.29;RPPR=10201.2;RUN=1;SAP=18640.8;SRP=10400;TYPE=del;XAI=0.0146977;XAM=0.0207481;XAS=0.00605041;XRI=0.00555405;XRM=0.0128069;XRS=0.00725289	GT:AO:DP:GL:GQ:QA:QR:RO	1/1:3:3:-10.2667,-0.90309,0:10.79:110:0:0	0/1:926:1 [...]
+chr22	42526066	.	G	GG	49314.70	.	AB=0.406965;ABP=1702.02;AC=7;AF=0.5;AN=14;AO=9197;BVAR;CIGAR=1M1I;DP=22599;DPRA=0;EPP=13586.7;EPPR=21120.1;HWE=32.3452;LEN=1;MEANALT=6.71429;MQM=106.782;MQMR=206.993;NS=7;NUMALT=1;ODDS=0.538997;PAIRED=0;PAIREDR=0;REPEAT=G:5;RO=12395;RPP=13586.7;RPPR=21120.1;RUN=1;SAP=19974;SRP=26918.4;TYPE=ins;XAI=0.00729778;XAM=0.013013;XAS=0.0057152;XRI=0.0154455;XRM=0.0223881;XRS=0.00694266	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:1:-5.4,-0.30103,0:2:54:0:0	0/1:1062:2629:-4511.95 [...]
+chr22	42526250	.	C	CC	49314.70	.	AB=0.317466;ABP=12715.3;AC=7;AF=0.5;AN=14;AO=13945;BVAR;CIGAR=1M1I;DP=43926;DPRA=0;EPP=29046.3;EPPR=46118.3;HWE=32.3452;LEN=1;MEANALT=8.85714;MQM=252.266;MQMR=128.955;NS=7;NUMALT=1;ODDS=29.4654;PAIRED=0;PAIREDR=0;REPEAT=C:5;RO=22253;RPP=29046.3;RPPR=46118.3;RUN=1;SAP=30284.2;SRP=48324.8;TYPE=ins;XAI=0.00248386;XAM=0.0154268;XAS=0.0129429;XRI=0.00849148;XRM=0.0183022;XRS=0.00981067	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:10:20:-73.4786,-30.2355,-42.497:6.28:493:150:6	 [...]
+chr22	42526484	rs28371699	A	C	49314.70	.	AB=0.391599;ABP=2082.92;AC=6;AF=0.428571;AN=14;AO=7986;BVAR;CIGAR=1X;DB;DP=26630;DPRA=0;EPP=3422.04;EPPR=24049;HWE=27.36;LEN=1;MEANALT=6.28571;MQM=253.352;MQMR=253.375;NS=7;NUMALT=1;ODDS=54.6541;PAIRED=0;PAIREDR=0;REPEAT=A:2;RO=17275;RPP=3422.04;RPPR=24049;RUN=1;SAP=17344.4;SRP=37515.2;TYPE=snp;XAI=0.00341635;XAM=0.0226821;XAS=0.0192658;XRI=0.00367721;XRM=0.0122153;XRS=0.00853807	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:9:23:-28.665,-5.02594,-43.6336:8.45:274: [...]
+chr22	42526549	rs56011157	C	T	49314.70	.	AB=0.522195;ABP=143.452;AC=8;AF=0.571429;AN=14;AO=22421;BVAR;CIGAR=1X;DB;DP=38229;DPRA=0;EPP=963.394;EPPR=13740.4;HWE=27.36;LEN=1;MEANALT=4.85714;MQM=252.703;MQMR=252.215;NS=7;NUMALT=1;ODDS=56.0633;PAIRED=0;PAIREDR=0;REPEAT=C:3;RO=15480;RPP=963.394;RPPR=13740.4;RUN=1;SAP=48689.6;SRP=33617.4;TYPE=snp;XAI=0.00528337;XAM=0.0245001;XAS=0.0192167;XRI=0.00487068;XRM=0.00904391;XRS=0.00417323	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:13:23:-50.165,-7.32594,-31.577:99: [...]
+chr22	42526561	.	GG	TC	49314.70	.	AB=0.476755;ABP=174.53;AC=8;AF=0.571429;AN=14;AO=22811;BVAR;CIGAR=2X;DP=42014;DPRA=0;EPP=921.962;EPPR=14455;HWE=27.36;LEN=2;MEANALT=10;MQM=251.716;MQMR=241.731;NS=7;NUMALT=1;ODDS=97.1201;PAIRED=0;PAIREDR=0;REPEAT=G:2|GGT:2;RO=18680;RPP=921.962;RPPR=14455;RUN=1;SAP=49536.5;SRP=40566.1;TYPE=mnp;XAI=0.00560446;XAM=0.022837;XAS=0.0172325;XRI=0.00510954;XRM=0.00892883;XRS=0.00381928	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:13:32:-45.6293,-3.51753,-53.7726:99:478:569:18	1/ [...]
+chr22	42526567	rs76312385	G	A	49314.70	.	AB=0.512704;ABP=49.0248;AC=8;AF=0.571429;AN=14;AO=21967;BVAR;CIGAR=1X;DB;DP=38053;DPRA=0;EPP=597.821;EPPR=16171.7;HWE=27.36;LEN=1;MEANALT=4.71429;MQM=246.71;MQMR=241.719;NS=7;NUMALT=1;ODDS=76.1081;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=15968;RPP=597.821;RPPR=16171.7;RUN=1;SAP=47703.7;SRP=34677.1;TYPE=snp;XAI=0.00550218;XAM=0.0262124;XAS=0.0207102;XRI=0.00457904;XRM=0.00863553;XRS=0.00405649	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:13:26:-43.8415,-0.809721,-33.7662:9 [...]
+chr22	42526571	rs74644586	C	G	49314.70	.	AB=0.423296;ABP=1892.13;AC=8;AF=0.571429;AN=14;AO=20400;BVAR;CIGAR=1X;DB;DP=41756;DPRA=0;EPP=8.83879;EPPR=13875.4;HWE=27.36;LEN=1;MEANALT=7.14286;MQM=243.96;MQMR=238.317;NS=7;NUMALT=1;ODDS=76.1468;PAIRED=0;PAIREDR=0;RO=21023;RPP=8.83879;RPPR=13875.4;RUN=1;SAP=44301;SRP=45653.9;TYPE=snp;XAI=0.00502957;XAM=0.026329;XAS=0.0212994;XRI=0.00550538;XRM=0.00933165;XRS=0.00382628	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:13:32:-36.9207,-3.91753,-60.9242:99:378:644:18	1/ [...]
+chr22	42526573	rs1080996	T	G	49314.70	.	AB=0.478935;ABP=164.665;AC=8;AF=0.571429;AN=14;AO=26268;BVAR;CIGAR=1X;DB;DP=48153;DPRA=0;EPP=364.104;EPPR=12603.5;HWE=27.36;LEN=1;MEANALT=6.71429;MQM=240.907;MQMR=237.914;NS=7;NUMALT=1;ODDS=120.717;PAIRED=0;PAIREDR=0;RO=21656;RPP=364.104;RPPR=12603.5;RUN=1;SAP=57043.2;SRP=47028.4;TYPE=snp;XAI=0.00602555;XAM=0.0277357;XAS=0.0217101;XRI=0.00561177;XRM=0.00940479;XRS=0.00379303	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:16:35:-53.2875,-0.927531,-59.8379:99:588:661:1 [...]
+chr22	42526580	rs1080995	G	C	49314.70	.	AB=0.503997;ABP=9.29444;AC=8;AF=0.571429;AN=14;AO=29815;BVAR;CIGAR=1X;DB;DP=52393;DPRA=0;EPP=48.3495;EPPR=11542.6;HWE=27.36;LEN=1;MEANALT=7.42857;MQM=232.937;MQMR=238.185;NS=7;NUMALT=1;ODDS=126.745;PAIRED=0;PAIREDR=0;REPEAT=G:2;RO=22075;RPP=48.3495;RPPR=11542.6;RUN=1;SAP=64745.5;SRP=47938.3;TYPE=snp;XAI=0.00621892;XAM=0.0259398;XAS=0.0197208;XRI=0.00542136;XRM=0.00921859;XRS=0.00379723	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:16:37:-56.0063,-1.02834,-68.3095:99 [...]
+chr22	42526657	rs72549357	A	AA	49314.70	.	AB=0.447951;ABP=212.557;AC=3;AF=0.214286;AN=14;AO=4015;BVAR;CIGAR=1M1I;DB;DP=32023;DPRA=0;EPP=68.1323;EPPR=5433.04;HWE=-21.3394;LEN=1;MEANALT=5.85714;MQM=252.351;MQMR=252.096;NS=7;NUMALT=1;ODDS=87.682;PAIRED=0;PAIREDR=0;RO=27762;RPP=68.1323;RPPR=5433.04;RUN=1;SAP=8721.47;SRP=60287.4;TYPE=ins;XAI=0.00714279;XAM=0.0254859;XAS=0.0183431;XRI=0.00666333;XRM=0.0179572;XRS=0.0112938	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:4:24:-41.7175,-3.19835,-64.7075:99:451:715: [...]
+chr22	42526686	.	G	GG	49314.70	.	AB=0.46865;ABP=269.052;AC=7;AF=0.5;AN=14;AO=14605;BVAR;CIGAR=1M1I;DP=31164;DPRA=0;EPP=28750.2;EPPR=29825.6;HWE=32.3452;LEN=1;MEANALT=7.57143;MQM=253.449;MQMR=243.45;NS=7;NUMALT=1;ODDS=25.6046;PAIRED=0;PAIREDR=0;REPEAT=G:5;RO=15977;RPP=28750.2;RPPR=29825.6;RUN=1;SAP=31717.4;SRP=34696.6;TYPE=ins;XAI=0.00649257;XAM=0.0165776;XAS=0.0100851;XRI=0.0052242;XRM=0.018954;XRS=0.0137298	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:2:21:-20.6267,-10.0418,-48.3411:99:158:471:18	0/1:20 [...]
+chr22	42526694	rs1065852	G	A	49314.70	.	AB=0.544568;ABP=218.825;AC=2;AF=0.142857;AN=14;AO=6911;BVAR;CIGAR=1X;DB;DP=35009;DPRA=215.938;EPP=65.2308;EPPR=20299.1;HWE=-23.8382;LEN=1;MEANALT=4;MQM=236.385;MQMR=238.582;NS=7;NUMALT=1;ODDS=19.7266;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=27788;RPP=65.2308;RPPR=20299.1;RUN=1;SAP=15010.1;SRP=60343.9;TYPE=snp;XAI=0.00766272;XAM=0.0235805;XAS=0.0159178;XRI=0.00758111;XRM=0.0180206;XRS=0.0104395	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:27:0,-8.12781,-86.7556:85.67:0:96 [...]
+chr22	42526831	.	C	CC	5.90	.	AB=0.333333;ABP=3.73412;AC=1;AF=0.0714286;AN=14;AO=64;BVAR;CIGAR=1M1I;DP=15177;DPRA=0;EPP=29.6108;EPPR=31989.5;HWE=-19.2686;LEN=1;MEANALT=4;MQM=242.375;MQMR=253.43;NS=7;NUMALT=1;ODDS=1.06176;PAIRED=0;PAIREDR=0;REPEAT=C:2;RO=15013;RPP=29.6108;RPPR=31989.5;RUN=1;SAP=141.985;SRP=32603.3;TYPE=ins;XAI=0.0270638;XAM=0.0323354;XAS=0.00527157;XRI=0.00755391;XRM=0.0170482;XRS=0.00949425	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:3:-3.7,-0.425969,-6.46:5.90:37:68:2	0/0:9:2155:-90.4 [...]
+chr22	42526840	.	CC	C,CCC	49314.70	.	AB=0.418078,0.212582;ABP=677.573,8306.3;AC=8,3;AF=0.571429,0.214286;AN=14;AO=4839,2460;BVAR;CIGAR=1M1D,2M1I;DP=11573;DPRA=0,1928.67;EPP=9256.42,4836.39;EPPR=8847.45;HWE=-10.4044;LEN=1,1;MEANALT=6.57143,7.5;MQM=252.894,253.239;MQMR=253.613;NS=7;NUMALT=2;ODDS=1.54045;PAIRED=0,0;PAIREDR=0;REPEAT=C:5|CCACC:2;RO=4089;RPP=9256.42,4836.39;RPPR=8847.45;RUN=1,1;SAP=10510.8,5344.83;SRP=8882.16;TYPE=del,ins;XAI=0.0105518,0.00952792;XAM=0.0193038,0.022665;XAS=0.0 [...]
+chr22	42526866	.	G	GG	18.67	.	AB=0.333333;ABP=3.73412;AC=1;AF=0.0714286;AN=14;AO=231;BVAR;CIGAR=1M1I;DP=19179;DPRA=0;EPP=265.176;EPPR=21872.6;HWE=-19.2686;LEN=1;MEANALT=3.57143;MQM=246.801;MQMR=253.428;NS=7;NUMALT=1;ODDS=4.28538;PAIRED=0;PAIREDR=0;REPEAT=G:2;RO=18879;RPP=265.176;RPPR=21872.6;RUN=1;SAP=504.62;SRP=40998.2;TYPE=ins;XAI=0.0214287;XAM=0.0285179;XAS=0.0070892;XRI=0.00875722;XRM=0.0179066;XRS=0.00914936	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:3:-5.1,-0.425969,-7.6:18.67:51:80:2	0/0:32:28 [...]
+chr22	42526898	.	CC	C	49314.70	.	AB=0.335421;ABP=5863.31;AC=6;AF=0.428571;AN=14;AO=8355;BVAR;CIGAR=1M1D;DP=24912;DPRA=1383.83;EPP=17279;EPPR=27111.7;HWE=27.36;LEN=1;MEANALT=6.83333;MQM=253.89;MQMR=253.437;NS=7;NUMALT=1;ODDS=0.847298;PAIRED=0;PAIREDR=0;REPEAT=C:3;RO=16387;RPP=17279;RPPR=27111.7;RUN=1;SAP=18145.7;SRP=35586.9;TYPE=del;XAI=0.00768319;XAM=0.0116242;XAS=0.00394104;XRI=0.00850338;XRM=0.0180515;XRS=0.00954807	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:3:0,-0.90309,-10.92:5.23:0:117:3	0/1:119 [...]
+chr22	42526934	.	CC	C	49314.70	.	AB=0.289303;ABP=10503.2;AC=6;AF=0.428571;AN=14;AO=7878;BVAR;CIGAR=1M1D;DP=27234;DPRA=1512.83;EPP=16712.7;EPPR=21770.9;HWE=27.36;LEN=1;MEANALT=5.5;MQM=253.924;MQMR=253.24;NS=7;NUMALT=1;ODDS=0.847298;PAIRED=0;PAIREDR=0;REPEAT=C:3;RO=19271;RPP=16712.7;RPPR=21770.9;RUN=1;SAP=17109.9;SRP=41849.5;TYPE=del;XAI=0.00887994;XAM=0.0128136;XAS=0.00393369;XRI=0.00881627;XRM=0.0177763;XRS=0.00896004	GT:AO:DP:GL:GQ:QA:QR:RO	0/0:0:3:0,-0.90309,-9.52:5.23:0:102:3	0/1:1190 [...]
+chr22	42526980	.	A	T	6.67	.	AB=0.333333;ABP=3.73412;AC=1;AF=0.0714286;AN=14;AO=44;BVAR;CIGAR=1X;DP=33852;DPRA=0;EPP=19.0002;EPPR=1175.7;HWE=-19.2686;LEN=1;MEANALT=3.42857;MQM=249.045;MQMR=253.181;NS=7;NUMALT=1;ODDS=1.29202;PAIRED=0;PAIREDR=0;REPEAT=AG:2;RO=33604;RPP=19.0002;RPPR=1175.7;RUN=1;SAP=98.5551;SRP=72973.2;TYPE=snp;XAI=0.00822033;XAM=0.0167615;XAS=0.00854119;XRI=0.00929632;XRM=0.0161467;XRS=0.00685034	GT:AO:DP:GL:GQ:QA:QR:RO	0/1:1:3:-3.8,-0.425969,-7.6:6.67:38:80:2	0/0:1:4747:-1 [...]
+chr22	42526998	.	G	GG	49314.70	.	AB=0.622185;ABP=2030.07;AC=6;AF=0.5;AN=12;AO=9726;BVAR;CIGAR=1M1I;DP=15632;DPRA=0;EPP=21122.8;EPPR=881.975;HWE=26.6464;LEN=1;MEANALT=5.5;MQM=253.999;MQMR=253.931;NS=6;NUMALT=1;ODDS=1904.3;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=3635;RPP=21122.8;RPPR=881.975;RUN=1;SAP=21122.8;SRP=7896.31;TYPE=ins;XAI=0.00668033;XAM=0.0102733;XAS=0.00359295;XRI=0.0071001;XRM=0.0117029;XRS=0.00460284	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:1343:2189:-9384.39,-960.176,-2406.56:5.44:94498:1697 [...]
+chr22	42527004	.	G	GG	49314.70	.	AB=0.667115;ABP=3787.19;AC=6;AF=0.5;AN=12;AO=10407;BVAR;CIGAR=1M1I;DP=15600;DPRA=0;EPP=22601.5;EPPR=67.1131;HWE=26.6464;LEN=1;MEANALT=5;MQM=254;MQMR=253.917;NS=6;NUMALT=1;ODDS=2369.91;PAIRED=0;PAIREDR=0;REPEAT=G:3|GCT:2;RO=3939;RPP=22601.5;RPPR=67.1131;RUN=1;SAP=22601.5;SRP=8556.44;TYPE=ins;XAI=0.00690926;XAM=0.0107993;XAS=0.00389004;XRI=0.00746599;XRM=0.0119393;XRS=0.00447334	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:1455:2164:-10813.1,-706.273,-2126.31:99:113412:16 [...]
+chr22	42527044	.	CC	C	49314.70	.	AB=0.257511;ABP=3487.77;AC=6;AF=0.5;AN=12;AO=1757;BVAR;CIGAR=1M1D;DP=6823;DPRA=0;EPP=3800.94;EPPR=5362.34;HWE=26.6464;LEN=1;MEANALT=6.16667;MQM=253.981;MQMR=253.903;NS=6;NUMALT=1;ODDS=763.966;PAIRED=0;PAIREDR=0;REPEAT=C:3;RO=4831;RPP=3800.94;RPPR=5362.34;RUN=1;SAP=3818.29;SRP=10493.4;TYPE=del;XAI=0.0105127;XAM=0.0146831;XAS=0.00417041;XRI=0.00686241;XRM=0.0109032;XRS=0.00404074	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:343:796:-1632.27,-93.2737,-1148.05:99:17135:1175 [...]
+chr22	42527245	.	C	CC	49314.70	.	AB=0.274156;ABP=9393.48;AC=6;AF=0.5;AN=12;AO=5811;BVAR;CIGAR=1M1I;DP=21196;DPRA=0;EPP=10662.8;EPPR=31679;HWE=26.6464;LEN=1;MEANALT=8;MQM=237.134;MQMR=252.843;NS=6;NUMALT=1;ODDS=1120.94;PAIRED=0;PAIREDR=0;REPEAT=C:5;RO=14957;RPP=10662.8;RPPR=31679;RUN=1;SAP=12621.4;SRP=32481.7;TYPE=ins;XAI=0.00661986;XAM=0.0122036;XAS=0.00558373;XRI=0.0083671;XRM=0.0123402;XRS=0.00397314	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:201:2256:-923.691,-437.397,-4944.51:99:9645:54323:2038	0 [...]
+chr22	42527304	.	G	GG	49314.70	.	AB=0.286655;ABP=10626.8;AC=6;AF=0.5;AN=12;AO=7703;BVAR;CIGAR=1M1I;DP=26872;DPRA=0;EPP=13891.2;EPPR=40276.4;HWE=26.6464;LEN=1;MEANALT=8.33333;MQM=209.245;MQMR=240.677;NS=6;NUMALT=1;ODDS=7288.92;PAIRED=0;PAIREDR=0;REPEAT=G:4;RO=18889;RPP=13891.2;RPPR=40276.4;RUN=1;SAP=16729.9;SRP=41020;TYPE=ins;XAI=0.00603507;XAM=0.0126279;XAS=0.00659284;XRI=0.00926586;XRM=0.0137899;XRS=0.00452405	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:597:3213:-3569.76,-404.74,-6770.27:99:38402:739 [...]
+chr22	42527457	.	G	GG	49314.70	.	AB=0.296966;ABP=11213.8;AC=6;AF=0.5;AN=12;AO=9298;BVAR;CIGAR=1M1I;DP=31310;DPRA=0;EPP=19950.9;EPPR=12548.9;HWE=26.6464;LEN=1;MEANALT=6;MQM=253.211;MQMR=232.51;NS=6;NUMALT=1;ODDS=16721.3;PAIRED=0;PAIREDR=0;REPEAT=G:3;RO=21545;RPP=19950.9;RPPR=12548.9;RUN=1;SAP=20193.4;SRP=46787.4;TYPE=ins;XAI=0.00276496;XAM=0.0100562;XAS=0.00729127;XRI=0.00462268;XRM=0.012042;XRS=0.00741937	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:1268:3976:-10456.8,-384.343,-8264.41:99:113091:88737: [...]
+chr22	42527471	rs28633410	T	C	49314.70	.	AB=0.479383;ABP=58.076;AC=10;AF=0.833333;AN=12;AO=24912;BVAR;CIGAR=1X;DB;DP=32853;DPRA=0;EPP=15903.1;EPPR=7910.53;HWE=-20.5115;LEN=1;MEANALT=5;MQM=234.488;MQMR=253.454;NS=6;NUMALT=1;ODDS=1942.13;PAIRED=0;PAIREDR=0;RO=7775;RPP=15903.1;RPPR=7910.53;RUN=1;SAP=54098.7;SRP=16886.2;TYPE=snp;XAI=0.00494173;XAM=0.0108752;XAS=0.0059335;XRI=0.00497381;XRM=0.00913213;XRS=0.00415831	GT:AO:DP:GL:GQ:QA:QR:RO	.	1/1:4309:4358:-14322.5,-1366.92,-165.795:99:157919: [...]
+chr22	42527533	rs28624811	A	G	49314.70	.	AB=0.442687;ABP=1159.19;AC=7;AF=0.583333;AN=12;AO=23579;BVAR;CIGAR=1X;DB;DP=46258;DPRA=0;EPP=26054.3;EPPR=6830.86;HWE=18.5733;LEN=1;MEANALT=5;MQM=232.81;MQMR=253.774;NS=6;NUMALT=1;ODDS=2924.81;PAIRED=0;PAIREDR=0;REPEAT=AG:2;RO=22558;RPP=26054.3;RPPR=6830.86;RUN=1;SAP=51204.2;SRP=48987.1;TYPE=snp;XAI=0.00529606;XAM=0.0115376;XAS=0.00624157;XRI=0.00578305;XRM=0.0107171;XRS=0.00493405	GT:AO:DP:GL:GQ:QA:QR:RO	.	1/1:5640:5735:-16960.8,-1571.34,-300.591 [...]
+chr22	42527595	.	C	CC	49314.70	.	AB=0.444752;ABP=1191.67;AC=6;AF=0.5;AN=12;AO=19940;BVAR;CIGAR=1M1I;DP=44834;DPRA=0;EPP=41225.7;EPPR=49052.8;HWE=26.6464;LEN=1;MEANALT=10;MQM=253.846;MQMR=253.651;NS=6;NUMALT=1;ODDS=15802.6;PAIRED=0;PAIREDR=0;REPEAT=C:4;RO=23855;RPP=41225.7;RPPR=49052.8;RUN=1;SAP=43302.2;SRP=51803.5;TYPE=ins;XAI=0.00573718;XAM=0.0116425;XAS=0.00590534;XRI=0.00312829;XRM=0.0104073;XRS=0.00727905	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:2887:6400:-16122.4,-244.936,-10034.2:99:176551:10 [...]
+chr22	42527793	rs1080989	C	T	49314.70	.	AB=0.539425;ABP=116.187;AC=2;AF=0.166667;AN=12;AO=4578;BVAR;CIGAR=1X;DB;DP=23758;DPRA=0;EPP=8007.61;EPPR=38635.9;HWE=-20.5115;LEN=1;MEANALT=3.16667;MQM=252.084;MQMR=251.787;NS=6;NUMALT=1;ODDS=1688.52;PAIRED=0;PAIREDR=0;RO=19096;RPP=8007.61;RPPR=38635.9;RUN=1;SAP=9944.01;SRP=41469.4;TYPE=snp;XAI=0.00826549;XAM=0.0146986;XAS=0.00643314;XRI=0.00853044;XRM=0.0137412;XRS=0.00521078	GT:AO:DP:GL:GQ:QA:QR:RO	.	0/1:1765:3222:-5919.13,-44.1032,-5031.02:99:65 [...]
+chr22	42527894	.	TTT	T	49314.70	.	AB=0;ABP=0;AC=12;AF=1;AN=12;AO=7825;BVAR;CIGAR=1M2D;DP=21045;DPRA=0;EPP=16239;EPPR=656.623;HWE=-0;LEN=2;MEANALT=29.5;MQM=248.613;MQMR=228.023;NS=6;NUMALT=1;ODDS=230.833;PAIRED=0;PAIREDR=0;REPEAT=T:10;RO=301;RPP=16239;RPPR=656.623;RUN=1;SAP=16994.8;SRP=656.623;TYPE=del;XAI=0.00617425;XAM=0.0115117;XAS=0.00533745;XRI=0.0166672;XRM=0.0270648;XRS=0.0103976	GT:AO:DP:GL:GQ:QA:QR:RO	.	1/1:1083:2817:-12304.6,-7986.47,-7744.28:8.13:51166:496:22	1/1:1681:4528:-199 [...]
diff --git a/vcf/test/gatk.vcf b/vcf/test/gatk.vcf
new file mode 100644
index 0000000..906a5b4
--- /dev/null
+++ b/vcf/test/gatk.vcf
@@ -0,0 +1,156 @@
+##fileformat=VCFv4.1
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[reads.bam] read_buffer_size=null phone_home=NO_ET read_filter=[] intervals=[chr22:42020321-42527953] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL reference_sequence=/data/reference/ucsc/hg19/ucsc.hg19.fasta rodBind=[] nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=250 baq=CALCULATE_AS_NECESSARY baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##contig=<ID=chr1,length=249250621,assembly=hg19>
+##contig=<ID=chr10,length=135534747,assembly=hg19>
+##contig=<ID=chr11,length=135006516,assembly=hg19>
+##contig=<ID=chr11_gl000202_random,length=40103,assembly=hg19>
+##contig=<ID=chr12,length=133851895,assembly=hg19>
+##contig=<ID=chr13,length=115169878,assembly=hg19>
+##contig=<ID=chr14,length=107349540,assembly=hg19>
+##contig=<ID=chr15,length=102531392,assembly=hg19>
+##contig=<ID=chr16,length=90354753,assembly=hg19>
+##contig=<ID=chr17,length=81195210,assembly=hg19>
+##contig=<ID=chr17_ctg5_hap1,length=1680828,assembly=hg19>
+##contig=<ID=chr17_gl000203_random,length=37498,assembly=hg19>
+##contig=<ID=chr17_gl000204_random,length=81310,assembly=hg19>
+##contig=<ID=chr17_gl000205_random,length=174588,assembly=hg19>
+##contig=<ID=chr17_gl000206_random,length=41001,assembly=hg19>
+##contig=<ID=chr18,length=78077248,assembly=hg19>
+##contig=<ID=chr18_gl000207_random,length=4262,assembly=hg19>
+##contig=<ID=chr19,length=59128983,assembly=hg19>
+##contig=<ID=chr19_gl000208_random,length=92689,assembly=hg19>
+##contig=<ID=chr19_gl000209_random,length=159169,assembly=hg19>
+##contig=<ID=chr1_gl000191_random,length=106433,assembly=hg19>
+##contig=<ID=chr1_gl000192_random,length=547496,assembly=hg19>
+##contig=<ID=chr2,length=243199373,assembly=hg19>
+##contig=<ID=chr20,length=63025520,assembly=hg19>
+##contig=<ID=chr21,length=48129895,assembly=hg19>
+##contig=<ID=chr21_gl000210_random,length=27682,assembly=hg19>
+##contig=<ID=chr22,length=51304566,assembly=hg19>
+##contig=<ID=chr3,length=198022430,assembly=hg19>
+##contig=<ID=chr4,length=191154276,assembly=hg19>
+##contig=<ID=chr4_ctg9_hap1,length=590426,assembly=hg19>
+##contig=<ID=chr4_gl000193_random,length=189789,assembly=hg19>
+##contig=<ID=chr4_gl000194_random,length=191469,assembly=hg19>
+##contig=<ID=chr5,length=180915260,assembly=hg19>
+##contig=<ID=chr6,length=171115067,assembly=hg19>
+##contig=<ID=chr6_apd_hap1,length=4622290,assembly=hg19>
+##contig=<ID=chr6_cox_hap2,length=4795371,assembly=hg19>
+##contig=<ID=chr6_dbb_hap3,length=4610396,assembly=hg19>
+##contig=<ID=chr6_mann_hap4,length=4683263,assembly=hg19>
+##contig=<ID=chr6_mcf_hap5,length=4833398,assembly=hg19>
+##contig=<ID=chr6_qbl_hap6,length=4611984,assembly=hg19>
+##contig=<ID=chr6_ssto_hap7,length=4928567,assembly=hg19>
+##contig=<ID=chr7,length=159138663,assembly=hg19>
+##contig=<ID=chr7_gl000195_random,length=182896,assembly=hg19>
+##contig=<ID=chr8,length=146364022,assembly=hg19>
+##contig=<ID=chr8_gl000196_random,length=38914,assembly=hg19>
+##contig=<ID=chr8_gl000197_random,length=37175,assembly=hg19>
+##contig=<ID=chr9,length=141213431,assembly=hg19>
+##contig=<ID=chr9_gl000198_random,length=90085,assembly=hg19>
+##contig=<ID=chr9_gl000199_random,length=169874,assembly=hg19>
+##contig=<ID=chr9_gl000200_random,length=187035,assembly=hg19>
+##contig=<ID=chr9_gl000201_random,length=36148,assembly=hg19>
+##contig=<ID=chrM,length=16571,assembly=hg19>
+##contig=<ID=chrUn_gl000211,length=166566,assembly=hg19>
+##contig=<ID=chrUn_gl000212,length=186858,assembly=hg19>
+##contig=<ID=chrUn_gl000213,length=164239,assembly=hg19>
+##contig=<ID=chrUn_gl000214,length=137718,assembly=hg19>
+##contig=<ID=chrUn_gl000215,length=172545,assembly=hg19>
+##contig=<ID=chrUn_gl000216,length=172294,assembly=hg19>
+##contig=<ID=chrUn_gl000217,length=172149,assembly=hg19>
+##contig=<ID=chrUn_gl000218,length=161147,assembly=hg19>
+##contig=<ID=chrUn_gl000219,length=179198,assembly=hg19>
+##contig=<ID=chrUn_gl000220,length=161802,assembly=hg19>
+##contig=<ID=chrUn_gl000221,length=155397,assembly=hg19>
+##contig=<ID=chrUn_gl000222,length=186861,assembly=hg19>
+##contig=<ID=chrUn_gl000223,length=180455,assembly=hg19>
+##contig=<ID=chrUn_gl000224,length=179693,assembly=hg19>
+##contig=<ID=chrUn_gl000225,length=211173,assembly=hg19>
+##contig=<ID=chrUn_gl000226,length=15008,assembly=hg19>
+##contig=<ID=chrUn_gl000227,length=128374,assembly=hg19>
+##contig=<ID=chrUn_gl000228,length=129120,assembly=hg19>
+##contig=<ID=chrUn_gl000229,length=19913,assembly=hg19>
+##contig=<ID=chrUn_gl000230,length=43691,assembly=hg19>
+##contig=<ID=chrUn_gl000231,length=27386,assembly=hg19>
+##contig=<ID=chrUn_gl000232,length=40652,assembly=hg19>
+##contig=<ID=chrUn_gl000233,length=45941,assembly=hg19>
+##contig=<ID=chrUn_gl000234,length=40531,assembly=hg19>
+##contig=<ID=chrUn_gl000235,length=34474,assembly=hg19>
+##contig=<ID=chrUn_gl000236,length=41934,assembly=hg19>
+##contig=<ID=chrUn_gl000237,length=45867,assembly=hg19>
+##contig=<ID=chrUn_gl000238,length=39939,assembly=hg19>
+##contig=<ID=chrUn_gl000239,length=33824,assembly=hg19>
+##contig=<ID=chrUn_gl000240,length=41933,assembly=hg19>
+##contig=<ID=chrUn_gl000241,length=42152,assembly=hg19>
+##contig=<ID=chrUn_gl000242,length=43523,assembly=hg19>
+##contig=<ID=chrUn_gl000243,length=43341,assembly=hg19>
+##contig=<ID=chrUn_gl000244,length=39929,assembly=hg19>
+##contig=<ID=chrUn_gl000245,length=36651,assembly=hg19>
+##contig=<ID=chrUn_gl000246,length=38154,assembly=hg19>
+##contig=<ID=chrUn_gl000247,length=36422,assembly=hg19>
+##contig=<ID=chrUn_gl000248,length=39786,assembly=hg19>
+##contig=<ID=chrUn_gl000249,length=38502,assembly=hg19>
+##contig=<ID=chrX,length=155270560,assembly=hg19>
+##contig=<ID=chrY,length=59373566,assembly=hg19>
+##reference=file:///data/reference/ucsc/hg19/ucsc.hg19.fasta
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	BLANK	NA12878	NA12891	NA12892	NA19238	NA19239	NA19240
+chr22	42522392	rs28371738	G	A	2951.95	.	AC=2;AF=0.143;AN=14;BaseQRankSum=0.375;DB;DP=1506;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=123.5516;MQ=253.92;MQ0=0;MQRankSum=0.685;QD=5.90;ReadPosRankSum=0.590	GT:AD:DP:GQ:PL	0/0:6,0:6:18.04:0,18,211	0/1:138,107:250:99:1961,0,3049	0/1:169,77:250:99:1038,0,3533	0/0:249,0:250:99:0,600,5732	0/0:248,1:250:99:0,627,6191	0/0:250,0:250:99:0,615,5899	0/0:250,0:250:99:0,579,5674
+chr22	42522613	rs1135840	G	C	11611.03	.	AC=6;AF=0.429;AN=14;BaseQRankSum=16.289;DB;DP=1518;DS;Dels=0.03;FS=0.000;HRun=0;HaplotypeScore=142.5716;MQ=242.46;MQ0=0;MQRankSum=2.010;QD=9.16;ReadPosRankSum=-1.731	GT:AD:DP:GQ:PL	0/1:13,4:17:62.64:63,0,296	0/1:118,127:246:99:2396,0,1719	0/0:241,0:244:99:0,459,4476	0/1:161,85:246:99:1489,0,2353	0/1:110,132:242:99:2561,0,1488	0/1:106,135:242:99:2613,0,1389	0/1:116,126:243:99:2489,0,1537
+chr22	42522755	.	C	G	36.98	.	AC=1;AF=0.071;AN=14;BaseQRankSum=-14.866;DP=1527;DS;Dels=0.01;FS=0.000;HRun=0;HaplotypeScore=253.4254;MQ=197.36;MQ0=2;MQRankSum=-10.810;QD=0.15;ReadPosRankSum=-17.244	GT:AD:DP:GQ:PL	0/0:26,1:27:51.08:0,51,570	0/0:208,40:248:99:0,236,4169	0/0:192,56:249:99:0,114,4292	0/1:179,66:245:75.42:75,0,3683	0/0:214,32:246:99:0,172,4235	0/0:200,49:249:61.05:0,61,4049	0/0:195,50:246:32.07:0,32,3757
+chr22	42523003	rs116917064	A	G	7113.55	.	AC=8;AF=0.571;AN=14;BaseQRankSum=6.026;DB;DP=1433;DS;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=101.7894;MQ=182.04;MQ0=0;MQRankSum=-2.501;QD=4.96;ReadPosRankSum=8.294	GT:AD:DP:GQ:PL	0/1:10,2:12:0.62:1,0,257	1/1:9,173:183:99:2385,273,0	0/1:153,95:249:99:355,0,2355	0/1:140,110:250:99:1334,0,2242	0/1:164,85:249:99:1070,0,2279	0/1:160,90:250:99:1245,0,2300	0/1:156,81:238:99:724,0,2764
+chr22	42523077	.	A	G	54.31	.	AC=1;AF=0.071;AN=14;BaseQRankSum=-0.563;DP=1521;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=54.8434;MQ=164.04;MQ0=1;MQRankSum=-2.419;QD=2.59;ReadPosRankSum=-1.229	GT:AD:DP:GQ:PL	0/1:17,4:21:92.74:93,0,533	0/0:249,1:250:99:0,544,6985	0/0:250,0:250:99:0,577,6968	0/0:248,2:250:99:0,605,7687	0/0:248,1:249:99:0,583,7300	0/0:246,2:249:99:0,626,7473	0/0:248,1:249:99:0,594,7553
+chr22	42523209	rs28371730	T	C	15556.89	.	AC=8;AF=0.571;AN=14;BaseQRankSum=3.458;DB;DP=1509;DS;Dels=0.01;FS=0.000;HRun=0;HaplotypeScore=120.8206;MQ=221.07;MQ0=0;MQRankSum=-4.945;QD=10.31;ReadPosRankSum=0.639	GT:AD:DP:GQ:PL	0/1:3,6:9:99:154,0,101	1/1:6,237:247:99:4532,308,0	0/1:130,117:248:99:1399,0,3147	0/1:112,129:244:99:2641,0,2556	0/1:115,127:247:99:2320,0,2526	0/1:115,128:248:99:2546,0,2520	0/1:143,104:249:99:1965,0,3288
+chr22	42523211	rs2004511	T	C	2445.52	.	AC=2;AF=0.143;AN=14;BaseQRankSum=10.587;DB;DP=1509;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=102.7564;MQ=221.50;MQ0=0;MQRankSum=-6.926;QD=4.89;ReadPosRankSum=2.057	GT:AD:DP:GQ:PL	0/0:9,0:9:24.06:0,24,289	0/1:136,113:250:99:1384,0,2176	0/1:146,104:250:99:1108,0,2809	0/0:247,3:250:99:0,439,5546	0/0:245,2:249:99:0,459,5316	0/0:248,2:250:99:0,459,5404	0/0:248,1:250:99:0,533,6069
+chr22	42523409	rs1985842	G	T	6801.90	.	AC=6;AF=0.429;AN=14;BaseQRankSum=20.509;DB;DP=1454;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=150.8967;MQ=200.12;MQ0=0;MQRankSum=4.472;QD=5.65;ReadPosRankSum=9.396	GT:AD:DP:GQ:PL	0/1:1,3:4:25.84:53,0,26	0/1:153,95:249:99:1597,0,1798	0/0:245,4:250:99:0,336,4079	0/1:168,82:250:99:1339,0,1880	0/1:147,103:250:99:1522,0,1805	0/1:156,94:250:99:1341,0,2322	0/1:129,71:201:99:949,0,2082
+chr22	42523805	rs28371725	C	T	1637.33	.	AC=1;AF=0.071;AN=14;BaseQRankSum=-0.379;DB;DP=1516;DS;Dels=0.00;FS=0.000;HRun=2;HaplotypeScore=77.2321;MQ=226.05;MQ0=0;MQRankSum=2.862;QD=6.55;ReadPosRankSum=0.064	GT:AD:DP:GQ:PL	0/0:16,0:16:39.09:0,39,475	0/0:248,1:249:99:0,613,7187	0/1:132,116:248:99:1676,0,2916	0/0:248,0:248:99:0,625,7171	0/0:248,2:250:99:0,604,7252	0/0:250,0:250:99:0,631,7426	0/0:248,1:249:99:0,584,6964
+chr22	42523943	rs16947	A	G	23661.10	.	AC=8;AF=0.571;AN=14;BaseQRankSum=4.602;DB;DP=1514;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=38.3217;MQ=238.64;MQ0=0;MQRankSum=2.485;QD=15.63;ReadPosRankSum=3.749	GT:AD:DP:GQ:PL	0/1:9,5:14:99:163,0,303	1/1:3,246:250:99:8092,667,0	0/1:129,116:246:99:3190,0,2852	0/1:149,98:247:99:2429,0,3588	0/1:129,118:247:99:3267,0,3052	0/1:122,123:245:99:3428,0,3052	0/1:124,119:244:99:3092,0,2845
+chr22	42524150	.	C	G	3758.65	.	AC=8;AF=0.571;AN=14;BaseQRankSum=24.314;DP=1506;DS;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=172.5901;MQ=242.92;MQ0=0;MQRankSum=11.537;QD=2.50;ReadPosRankSum=-9.185	GT:AD:DP:GQ:PL	1/1:3,3:6:5.98:46,6,0	0/1:161,88:250:99:708,0,300	0/1:161,88:250:99:635,0,308	0/1:160,90:250:99:658,0,229	0/1:180,69:250:99:478,0,113	0/1:176,73:250:99:530,0,271	0/1:170,79:249:99:704,0,133
+chr22	42524435	rs1807313	T	A	5252.25	.	AC=3;AF=0.214;AN=14;BaseQRankSum=-0.192;DB;DP=1526;DS;Dels=0.01;FS=0.000;HRun=1;HaplotypeScore=152.3866;MQ=242.06;MQ0=0;MQRankSum=1.923;QD=9.99;ReadPosRankSum=3.008	GT:AD:DP:GQ:PL	0/1:7,19:26:99:456,0,195	0/0:250,0:250:99:0,698,8167	0/0:246,2:249:99:0,673,7735	0/0:248,2:250:99:0,685,7919	0/0:250,0:250:99:0,688,7814	0/1:120,126:247:99:2539,0,3250	0/1:131,110:246:99:2257,0,3278
+chr22	42524696	rs58440431	T	C	6423.61	.	AC=2;AF=0.143;AN=14;BaseQRankSum=3.119;DB;DP=1509;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=53.0005;MQ=230.78;MQ0=0;MQRankSum=2.825;QD=12.85;ReadPosRankSum=2.051	GT:AD:DP:GQ:PL	0/0:9,0:9:27.08:0,27,351	0/1:132,116:250:99:3341,0,3914	0/1:141,108:250:99:3082,0,3917	0/0:248,1:250:99:0,692,8578	0/0:250,0:250:99:0,743,8836	0/0:247,2:250:99:0,695,8726	0/0:249,1:250:99:0,699,8650
+chr22	42524947	rs3892097	C	T	731.18	.	AC=2;AF=0.143;AN=14;BaseQRankSum=0.602;DB;DP=1495;DS;Dels=0.01;FS=0.000;HRun=1;HaplotypeScore=154.5421;MQ=217.65;MQ0=0;MQRankSum=4.304;QD=1.47;ReadPosRankSum=1.019	GT:AD:DP:GQ:PL	0/0:3,0:3:8.99:0,9,89	0/1:108,75:244:99:403,0,1684	0/1:125,74:242:99:375,0,2335	0/0:227,1:249:99:0,460,5036	0/0:226,1:247:99:0,448,4884	0/0:192,1:247:99:0,400,4405	0/0:194,1:247:99:0,405,4694
+chr22	42525132	rs1058164	G	C	14639.91	.	AC=5;AF=0.357;AN=14;BaseQRankSum=4.944;DB;DP=1508;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=38.1229;MQ=207.02;MQ0=6;MQRankSum=2.510;QD=11.71;ReadPosRankSum=0.306	GT:AD:DP:GQ:PL	0/0:8,0:8:24.05:0,24,309	0/1:125,125:250:99:3147,0,3294	0/0:245,1:248:99:0,549,7172	0/1:139,109:248:99:2470,0,3232	0/1:136,107:243:99:2545,0,3408	0/1:116,130:247:99:3206,0,2926	0/1:122,124:247:99:3271,0,3300
+chr22	42525772	rs28371706	G	A	7552.52	.	AC=4;AF=0.286;AN=14;BaseQRankSum=12.028;DB;DP=1506;DS;Dels=0.01;FS=0.000;HRun=0;HaplotypeScore=89.8512;MQ=222.09;MQ0=0;MQRankSum=5.200;QD=9.99;ReadPosRankSum=2.275	GT:AD:DP:GQ:PL	0/1:4,2:6:29.34:29,0,147	0/0:249,0:249:99:0,592,6835	0/0:249,1:250:99:0,590,7041	0/0:248,0:248:99:0,652,7316	0/1:126,120:248:99:2668,0,2833	0/1:134,113:247:99:2453,0,2485	0/1:137,113:250:99:2403,0,2988
+chr22	42525798	rs28371705	G	C	1954.58	.	AC=2;AF=0.143;AN=14;BaseQRankSum=6.229;DB;DP=1509;DS;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=36.0442;MQ=228.55;MQ0=0;MQRankSum=0.852;QD=3.91;ReadPosRankSum=6.520	GT:AD:DP:GQ:PL	0/0:9,0:9:27.08:0,27,342	0/1:164,85:250:99:981,0,3519	0/1:171,79:250:99:1020,0,3665	0/0:249,1:250:99:0,526,6474	0/0:249,1:250:99:0,550,6481	0/0:248,2:250:99:0,542,6933	0/0:250,0:250:99:0,604,7282
+chr22	42525811	rs28371704	T	C	3688.26	.	AC=2;AF=0.143;AN=14;BaseQRankSum=4.752;DB;DP=1510;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=36.9902;MQ=210.28;MQ0=0;MQRankSum=2.309;QD=7.38;ReadPosRankSum=6.262	GT:AD:DP:GQ:PL	0/0:10,0:10:27.06:0,27,333	0/1:163,86:249:99:1958,0,3391	0/1:167,78:245:99:1730,0,3945	0/0:248,1:249:99:0,542,6887	0/0:246,1:247:99:0,550,6569	0/0:247,1:250:99:0,548,6954	0/0:249,1:250:99:0,557,7079
+chr22	42525821	rs28371703	G	T	3940.90	.	AC=2;AF=0.143;AN=14;BaseQRankSum=4.652;DB;DP=1510;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=34.0483;MQ=210.28;MQ0=0;MQRankSum=2.924;QD=7.88;ReadPosRankSum=5.487	GT:AD:DP:GQ:PL	0/0:10,0:10:24.08:0,24,317	0/1:164,85:250:99:2033,0,3659	0/1:167,79:249:99:1907,0,4271	0/0:249,1:250:99:0,565,7321	0/0:249,1:250:99:0,545,7102	0/0:248,2:250:99:0,536,7254	0/0:249,0:250:99:0,605,7633
+chr22	42525952	rs71328650	C	A	5872.92	.	AC=7;AF=0.500;AN=14;BaseQRankSum=25.986;DB;DP=1505;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=144.2979;MQ=173.55;MQ0=0;MQRankSum=3.660;QD=4.68;ReadPosRankSum=7.152	GT:AD:DP:GQ:PL	1/1:2,3:5:6:53,6,0	0/1:132,117:250:99:1397,0,702	0/0:248,1:250:99:0,245,2219	0/1:166,83:250:99:1151,0,934	0/1:164,86:250:99:1070,0,1147	0/1:170,80:250:99:1009,0,1141	0/1:162,87:250:99:1194,0,1085
+chr22	42526049	.	C	G	8544.41	.	AC=10;AF=0.714;AN=14;BaseQRankSum=-8.121;DP=1505;DS;Dels=0.01;FS=0.000;HRun=0;HaplotypeScore=241.7335;MQ=162.18;MQ0=2;MQRankSum=-1.399;QD=6.81;ReadPosRankSum=2.132	GT:AD:DP:GQ:PL	1/1:0,5:5:3:26,3,0	0/1:86,162:248:99:1053,0,1167	0/0:235,12:248:99:0,378,3886	0/1:108,137:245:99:782,0,1662	1/1:3,242:245:99:2351,264,0	1/1:5,245:250:99:2193,222,0	1/1:4,242:246:99:2140,240,0
+chr22	42526449	.	T	A	151.47	.	AC=1;AF=0.071;AN=14;BaseQRankSum=2.662;DP=1226;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=41.2083;MQ=240.47;MQ0=0;MQRankSum=0.578;QD=4.89;ReadPosRankSum=3.611	GT:AD:DP:GQ:PL	0/1:23,8:31:99:190,0,694	0/0:188,0:190:99:0,478,5376	0/0:187,0:187:99:0,493,5322	0/0:247,0:249:99:0,634,6728	0/0:185,0:185:99:0,487,5515	0/0:202,0:202:99:0,520,5857	0/0:181,1:182:99:0,440,5362
+chr22	42526484	rs28371699	A	C	4220.99	.	AC=6;AF=0.429;AN=14;BaseQRankSum=-17.855;DB;DP=1532;DS;Dels=0.02;FS=0.000;HRun=0;HaplotypeScore=136.8893;MQ=233.92;MQ0=0;MQRankSum=3.448;QD=3.29;ReadPosRankSum=-2.663	GT:AD:DP:GQ:PL	0/1:16,15:31:99:238,0,428	0/1:112,135:247:99:796,0,1908	0/0:227,13:241:99:0,433,4747	0/1:108,133:242:99:588,0,2014	0/1:90,154:245:99:1055,0,1892	0/1:112,131:246:99:741,0,2222	0/1:108,137:246:99:803,0,2266
+chr22	42526549	rs56011157	C	T	14276.31	.	AC=8;AF=0.571;AN=14;BaseQRankSum=17.750;DB;DP=1537;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=87.3394;MQ=231.34;MQ0=0;MQRankSum=4.781;QD=9.29;ReadPosRankSum=7.463	GT:AD:DP:GQ:PL	0/1:22,15:37:99:251,0,330	1/1:23,227:250:99:5404,430,0	0/1:151,98:250:99:1878,0,2475	0/1:153,97:250:99:1769,0,2410	0/1:149,100:250:99:1792,0,2569	0/1:164,84:250:99:1440,0,2646	0/1:149,98:248:99:1742,0,2601
+chr22	42526561	rs28695233	G	T	4524.61	.	AC=7;AF=0.500;AN=14;BaseQRankSum=9.714;DB;DP=1538;DS;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=98.8415;MQ=220.45;MQ0=0;MQRankSum=9.430;QD=3.02;ReadPosRankSum=7.682	GT:AD:DP:GQ:PL	0/0:22,15:38:15.74:0,16,609	1/1:4,240:249:99:2685,237,0	0/1:142,108:250:99:505,0,3133	0/1:138,109:249:99:521,0,3281	0/1:150,99:249:99:336,0,3601	0/1:153,93:250:99:194,0,3695	0/1:148,97:249:99:283,0,3093
+chr22	42526562	rs75276289	G	C	3780.51	.	AC=6;AF=0.429;AN=14;BaseQRankSum=15.200;DB;DP=1540;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=116.4370;MQ=215.67;MQ0=0;MQRankSum=9.072;QD=2.52;ReadPosRankSum=10.863	GT:AD:DP:GQ:PL	0/0:25,15:40:17.73:0,18,633	0/1:50,199:250:99:1522,0,283	0/1:143,106:250:99:600,0,2844	0/1:143,107:250:99:605,0,3002	0/1:151,99:250:99:432,0,3352	0/1:157,93:250:99:254,0,3483	0/1:149,99:248:99:368,0,2999
+chr22	42526567	rs76312385	G	A	434.33	.	AC=1;AF=0.071;AN=14;BaseQRankSum=18.089;DB;DP=1540;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=89.3746;MQ=219.80;MQ0=0;MQRankSum=6.196;QD=1.74;ReadPosRankSum=7.564	GT:AD:DP:GQ:PL	0/0:22,18:40:4.68:0,5,427	0/1:34,215:250:56.26:473,0,56	0/0:142,108:250:20.78:0,21,2288	0/0:142,108:250:49.48:0,49,2451	0/0:152,97:250:99:0,210,2801	0/0:150,100:250:34.96:0,35,2515	0/0:148,102:250:77.19:0,77,2590
+chr22	42526571	rs74644586	C	G	339.60	.	AC=1;AF=0.071;AN=14;BaseQRankSum=-11.480;DB;DP=1540;DS;Dels=0.02;FS=0.000;HRun=4;HaplotypeScore=93.3402;MQ=218.52;MQ0=0;MQRankSum=3.709;QD=1.36;ReadPosRankSum=6.322	GT:AD:DP:GQ:PL	0/0:22,18:40:36.46:0,36,689	0/1:4,232:239:30.49:378,0,30	0/0:138,110:249:99:0,295,4017	0/0:137,111:249:99:0,250,4041	0/0:147,97:245:99:0,321,4348	0/0:150,97:247:99:0,358,4657	0/0:144,101:247:99:0,275,4123
+chr22	42526573	rs1080996	T	G	12579.34	.	AC=8;AF=0.571;AN=14;BaseQRankSum=6.163;DB;DP=1540;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=76.6550;MQ=224.49;MQ0=0;MQRankSum=1.355;QD=8.17;ReadPosRankSum=5.794	GT:AD:DP:GQ:PL	0/1:22,18:40:99:200,0,668	1/1:4,244:248:99:5175,439,0	0/1:136,110:250:99:1862,0,3521	0/1:136,113:249:99:1734,0,3677	0/1:144,99:250:99:1119,0,3818	0/1:150,99:250:99:1196,0,4178	0/1:145,104:250:99:1293,0,3628
+chr22	42526580	rs1080995	G	C	16619.47	.	AC=8;AF=0.571;AN=14;BaseQRankSum=7.991;DB;DP=1541;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=56.1489;MQ=221.29;MQ0=0;MQRankSum=2.223;QD=10.78;ReadPosRankSum=4.443	GT:AD:DP:GQ:PL	0/1:22,19:41:99:335,0,664	1/1:15,234:250:99:5895,337,0	0/1:137,113:250:99:2421,0,3301	0/1:134,116:250:99:2262,0,3430	0/1:144,105:250:99:1929,0,3421	0/1:148,101:250:99:1778,0,3867	0/1:142,108:250:99:1999,0,3334
+chr22	42526634	.	T	C	32.60	.	AC=1;AF=0.071;AN=14;BaseQRankSum=1.147;DP=1225;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=50.0151;MQ=240.65;MQ0=0;MQRankSum=1.151;QD=1.30;ReadPosRankSum=1.276	GT:AD:DP:GQ:PL	0/1:21,4:25:71.04:71,0,702	0/0:187,2:189:99:0,481,6080	0/0:233,0:233:99:0,667,7351	0/0:230,0:230:99:0,667,7394	0/0:174,1:175:99:0,446,5469	0/0:194,2:196:99:0,498,6239	0/0:174,0:175:99:0,511,5894
+chr22	42526679	.	G	C	60.60	.	AC=1;AF=0.071;AN=14;BaseQRankSum=-12.425;DP=1525;DS;Dels=0.09;FS=0.000;HRun=1;HaplotypeScore=331.3182;MQ=215.48;MQ0=0;MQRankSum=-14.680;QD=0.24;ReadPosRankSum=-13.323	GT:AD:DP:GQ:PL	0/0:23,0:23:66.17:0,66,829	0/1:175,56:232:99:99,0,4273	0/0:199,26:226:76.45:0,76,5104	0/0:196,37:233:41.98:0,42,5109	0/0:170,47:218:99:0,162,4505	0/0:188,36:224:99:0,230,4974	0/0:177,47:225:99:0,167,4592
+chr22	42526694	rs1065852	G	A	4420.63	.	AC=2;AF=0.143;AN=14;BaseQRankSum=8.566;DB;DP=1529;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=117.6833;MQ=214.96;MQ0=0;MQRankSum=5.852;QD=8.84;ReadPosRankSum=1.454	GT:AD:DP:GQ:PL	0/0:29,0:29:81.24:0,81,1040	0/1:136,114:250:99:2333,0,3170	0/1:145,104:250:99:2087,0,2794	0/0:250,0:250:99:0,586,6963	0/0:247,2:250:99:0,497,6185	0/0:248,2:250:99:0,544,6640	0/0:250,0:250:99:0,571,6444
+chr22	42527471	rs28633410	T	C	26831.16	.	AC=10;AF=0.833;AN=12;BaseQRankSum=-1.092;DB;DP=1501;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=79.3853;MQ=176.86;MQ0=0;MQRankSum=-2.644;QD=17.89;ReadPosRankSum=2.185	GT:AD:DP:GQ:PL	./.	1/1:1,249:250:99:5741,478,0	0/1:102,148:250:99:3026,0,1748	0/1:115,132:250:99:2716,0,1896	1/1:1,249:250:99:5040,392,0	1/1:1,248:250:99:5109,427,0	1/1:4,245:249:99:5199,306,0
+chr22	42527533	rs28624811	A	G	13619.46	.	AC=7;AF=0.583;AN=12;BaseQRankSum=-8.893;DB;DP=1501;DS;Dels=0.01;FS=0.000;HRun=1;HaplotypeScore=86.1948;MQ=179.18;MQ0=0;MQRankSum=0.472;QD=9.08;ReadPosRankSum=0.778	GT:AD:DP:GQ:PL	./.	1/1:2,241:243:99:4171,416,0	0/1:113,132:245:99:2000,0,2018	0/1:120,126:246:99:1781,0,1970	0/1:131,118:249:99:1885,0,1784	0/1:122,126:248:99:1893,0,1807	0/1:122,127:249:99:1890,0,2119
+chr22	42527793	rs1080989	C	T	3454.66	.	AC=2;AF=0.167;AN=12;BaseQRankSum=-3.007;DB;DP=1074;DS;Dels=0.01;FS=0.000;HRun=1;HaplotypeScore=75.7865;MQ=209.00;MQ0=0;MQRankSum=3.014;QD=9.36;ReadPosRankSum=0.618	GT:AD:DP:GQ:PL	./.	0/1:72,90:162:99:1699,0,1767	0/1:103,96:202:99:1756,0,2532	0/0:188,0:188:99:0,526,5889	0/0:160,0:160:99:0,457,4983	0/0:197,0:198:99:0,544,6100	0/0:156,0:156:99:0,439,5041
+chr22	42527891	.	T	A	109.83	.	AC=5;AF=0.417;AN=12;BaseQRankSum=11.235;DP=1500;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=638.4601;MQ=166.82;MQ0=0;MQRankSum=1.444;QD=0.09;ReadPosRankSum=0.839	GT:AD:DP:GQ:PL	./.	0/1:238,7:248:13.70:14,0,38	0/0:246,3:250:5.97:0,6,45	0/1:239,11:250:31.42:31,0,54	0/1:232,16:250:49.09:49,0,76	0/1:233,14:249:52.10:52,0,53	0/1:238,11:250:12.71:13,0,36
diff --git a/vcf/test/gatk_26_meta.vcf b/vcf/test/gatk_26_meta.vcf
new file mode 100644
index 0000000..1dd2e56
--- /dev/null
+++ b/vcf/test/gatk_26_meta.vcf
@@ -0,0 +1,4 @@
+##fileformat=VCFv4.1
+##GATKCommandLine=<ID=LeftAlignAndTrimVariants,Version=2.6-4-g3e5ff60,Date="Thu Jul 11 13:48:05 BST 2013",Epoch=1373546885069,CommandLineOptions="analysis_type=LeftAlignAndTrimVariants">
+##GATKCommandLine=<ID=VariantAnnotator,Version=2.6-4-g3e5ff60,Date="Thu Jul 11 13:48:41 BST 2013",Epoch=1373546921584,CommandLineOptions="analysis_type=VariantAnnotator annotation=[HomopolymerRun, VariantType, TandemRepeatAnnotator]">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT
diff --git a/vcf/test/gonl.chr20.release4.gtc.vcf b/vcf/test/gonl.chr20.release4.gtc.vcf
new file mode 100644
index 0000000..03588bf
--- /dev/null
+++ b/vcf/test/gonl.chr20.release4.gtc.vcf
@@ -0,0 +1,120 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL reference_sequence=/target/gpfs2/gcc/resources/hg19/indices/human_g1k_v37.fa rodBind=[] nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null useOriginalQua [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] sample_metadata=[] read_buffer_size=null phone_home=STANDARD read_filter=[] intervals=[1:123000001-126000000] excludeIntervals=null reference_sequence=/humgen/1kg/reference/human_g1k_v37.fasta rodBind=[/humgen/1kg/processing/production_wgs_phase1/consensus_wgs/v2b/calls/chr1/AFR/AFR.phase1.chr1.42.raw.snps.vcf, /humgen/1kg/processing/production_wgs_phase1/consensus_wgs/v2b/calls/chr1/ASN/ASN.phase1.chr1.42.raw.snps.vcf, /humg [...]
+##FILTER=<ID=TruthSensitivityTranche99.50to99.60,Description="Truth sensitivity tranche level at VSQ Lod: 0.0349 <= x < 0.6732">
+##FILTER=<ID=TruthSensitivityTranche99.60to99.70,Description="Truth sensitivity tranche level at VSQ Lod: -1.1344 <= x < 0.0349">
+##FILTER=<ID=TruthSensitivityTranche99.70to99.80,Description="Truth sensitivity tranche level at VSQ Lod: -3.7349 <= x < -1.1344">
+##FILTER=<ID=TruthSensitivityTranche99.80to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -13.9352 <= x < -3.7349">
+##FILTER=<ID=TruthSensitivityTranche99.85to99.87,Description="Truth sensitivity tranche level at VSQ Lod: -0.0128 <= x < 0.5027">
+##FILTER=<ID=TruthSensitivityTranche99.87to99.88,Description="Truth sensitivity tranche level at VSQ Lod: -0.2657 <= x < -0.0128">
+##FILTER=<ID=TruthSensitivityTranche99.88to99.89,Description="Truth sensitivity tranche level at VSQ Lod: -0.5671 <= x < -0.2657">
+##FILTER=<ID=TruthSensitivityTranche99.89to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.9162 <= x < -0.5671">
+##FILTER=<ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod < -37539.4862">
+##FILTER=<ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -37539.4862 <= x < -13.9352">
+##FILTER=<ID=TruthSensitivityTranche99.90to99.91,Description="Truth sensitivity tranche level at VSQ Lod: -1.2368 <= x < -0.9162">
+##FILTER=<ID=TruthSensitivityTranche99.91to99.92,Description="Truth sensitivity tranche level at VSQ Lod: -1.6803 <= x < -1.2368">
+##FILTER=<ID=TruthSensitivityTranche99.92to99.93,Description="Truth sensitivity tranche level at VSQ Lod: -2.1816 <= x < -1.6803">
+##FILTER=<ID=TruthSensitivityTranche99.93to99.94,Description="Truth sensitivity tranche level at VSQ Lod: -2.8718 <= x < -2.1816">
+##FILTER=<ID=TruthSensitivityTranche99.94to100.00+,Description="Truth sensitivity tranche level at VQS Lod < -Infinity">
+##FILTER=<ID=TruthSensitivityTranche99.94to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -Infinity <= x < -2.8718">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD read_filter=[] intervals=[1:1-5000001] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL reference_sequence=/target/gpfs2/gcc/home/lfrancioli/gonl/resources/hg19/indices/human_g1k_v37.fa rodBind=[] nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null useOri [...]
+##SetFilterPASS="analysis_type=SetFilterPASS input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/target/gpfs2/gcc/resources/hg19/indices/human_g1k_v37.fa nonDeterministicRandomSeed=false disableRandomization=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 enable_experimental_downsampling= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/1kg/phase1_cleaned_bams/bams/chr1/CHB.phase1.chr1.42.cleaned.bam, /humgen/1kg/phase1_cleaned_bams/bams/chr1/CHS.phase1.chr1.42.cleaned.bam, /humgen/1kg/phase1_cleaned_bams/bams/chr1/CLM.phase1.chr1.42.cleaned.bam, /humgen/1kg/phase1_cleaned_bams/bams/chr1/JPT.phase1.chr1.42.cleaned.bam, /humgen/1kg/phase1_cleaned_bams/bams/chr1/MXL.phase1.chr1.42.cleaned.bam, /humgen/1kg/phase1_cleaned_bams/bams/chr1/PUR.phase1.chr1.4 [...]
+##VariantAnnotator="analysis_type=VariantAnnotator input_file=[] read_buffer_size=null phone_home=STANDARD read_filter=[] intervals=[1:1-5000001] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL reference_sequence=/target/gpfs2/gcc/home/lfrancioli/gonl/resources/hg19/indices/human_g1k_v37.fa rodBind=[] nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null us [...]
+##contig=<ID=1,assembly=b37,length=249250621>
+##contig=<ID=10,assembly=b37,length=135534747>
+##contig=<ID=11,assembly=b37,length=135006516>
+##contig=<ID=12,assembly=b37,length=133851895>
+##contig=<ID=13,assembly=b37,length=115169878>
+##contig=<ID=14,assembly=b37,length=107349540>
+##contig=<ID=15,assembly=b37,length=102531392>
+##contig=<ID=16,assembly=b37,length=90354753>
+##contig=<ID=17,assembly=b37,length=81195210>
+##contig=<ID=18,assembly=b37,length=78077248>
+##contig=<ID=19,assembly=b37,length=59128983>
+##contig=<ID=2,assembly=b37,length=243199373>
+##contig=<ID=20,assembly=b37,length=63025520>
+##contig=<ID=21,assembly=b37,length=48129895>
+##contig=<ID=22,assembly=b37,length=51304566>
+##contig=<ID=3,assembly=b37,length=198022430>
+##contig=<ID=4,assembly=b37,length=191154276>
+##contig=<ID=5,assembly=b37,length=180915260>
+##contig=<ID=6,assembly=b37,length=171115067>
+##contig=<ID=7,assembly=b37,length=159138663>
+##contig=<ID=8,assembly=b37,length=146364022>
+##contig=<ID=9,assembly=b37,length=141213431>
+##contig=<ID=GL000191.1,assembly=b37,length=106433>
+##contig=<ID=GL000192.1,assembly=b37,length=547496>
+##contig=<ID=GL000193.1,assembly=b37,length=189789>
+##contig=<ID=GL000194.1,assembly=b37,length=191469>
+##contig=<ID=GL000195.1,assembly=b37,length=182896>
+##contig=<ID=GL000196.1,assembly=b37,length=38914>
+##contig=<ID=GL000197.1,assembly=b37,length=37175>
+##contig=<ID=GL000198.1,assembly=b37,length=90085>
+##contig=<ID=GL000199.1,assembly=b37,length=169874>
+##contig=<ID=GL000200.1,assembly=b37,length=187035>
+##contig=<ID=GL000201.1,assembly=b37,length=36148>
+##contig=<ID=GL000202.1,assembly=b37,length=40103>
+##contig=<ID=GL000203.1,assembly=b37,length=37498>
+##contig=<ID=GL000204.1,assembly=b37,length=81310>
+##contig=<ID=GL000205.1,assembly=b37,length=174588>
+##contig=<ID=GL000206.1,assembly=b37,length=41001>
+##contig=<ID=GL000207.1,assembly=b37,length=4262>
+##contig=<ID=GL000208.1,assembly=b37,length=92689>
+##contig=<ID=GL000209.1,assembly=b37,length=159169>
+##contig=<ID=GL000210.1,assembly=b37,length=27682>
+##contig=<ID=GL000211.1,assembly=b37,length=166566>
+##contig=<ID=GL000212.1,assembly=b37,length=186858>
+##contig=<ID=GL000213.1,assembly=b37,length=164239>
+##contig=<ID=GL000214.1,assembly=b37,length=137718>
+##contig=<ID=GL000215.1,assembly=b37,length=172545>
+##contig=<ID=GL000216.1,assembly=b37,length=172294>
+##contig=<ID=GL000217.1,assembly=b37,length=172149>
+##contig=<ID=GL000218.1,assembly=b37,length=161147>
+##contig=<ID=GL000219.1,assembly=b37,length=179198>
+##contig=<ID=GL000220.1,assembly=b37,length=161802>
+##contig=<ID=GL000221.1,assembly=b37,length=155397>
+##contig=<ID=GL000222.1,assembly=b37,length=186861>
+##contig=<ID=GL000223.1,assembly=b37,length=180455>
+##contig=<ID=GL000224.1,assembly=b37,length=179693>
+##contig=<ID=GL000225.1,assembly=b37,length=211173>
+##contig=<ID=GL000226.1,assembly=b37,length=15008>
+##contig=<ID=GL000227.1,assembly=b37,length=128374>
+##contig=<ID=GL000228.1,assembly=b37,length=129120>
+##contig=<ID=GL000229.1,assembly=b37,length=19913>
+##contig=<ID=GL000230.1,assembly=b37,length=43691>
+##contig=<ID=GL000231.1,assembly=b37,length=27386>
+##contig=<ID=GL000232.1,assembly=b37,length=40652>
+##contig=<ID=GL000233.1,assembly=b37,length=45941>
+##contig=<ID=GL000234.1,assembly=b37,length=40531>
+##contig=<ID=GL000235.1,assembly=b37,length=34474>
+##contig=<ID=GL000236.1,assembly=b37,length=41934>
+##contig=<ID=GL000237.1,assembly=b37,length=45867>
+##contig=<ID=GL000238.1,assembly=b37,length=39939>
+##contig=<ID=GL000239.1,assembly=b37,length=33824>
+##contig=<ID=GL000240.1,assembly=b37,length=41933>
+##contig=<ID=GL000241.1,assembly=b37,length=42152>
+##contig=<ID=GL000242.1,assembly=b37,length=43523>
+##contig=<ID=GL000243.1,assembly=b37,length=43341>
+##contig=<ID=GL000244.1,assembly=b37,length=39929>
+##contig=<ID=GL000245.1,assembly=b37,length=36651>
+##contig=<ID=GL000246.1,assembly=b37,length=38154>
+##contig=<ID=GL000247.1,assembly=b37,length=36422>
+##contig=<ID=GL000248.1,assembly=b37,length=39786>
+##contig=<ID=GL000249.1,assembly=b37,length=38502>
+##contig=<ID=MT,assembly=b37,length=16569>
+##contig=<ID=X,assembly=b37,length=155270560>
+##contig=<ID=Y,assembly=b37,length=59373566>
+##reference=file:///target/gpfs2/gcc/resources/hg19/indices/human_g1k_v37.fa
+##source=SelectVariants
+##INFO=<ID=GTC,Number=G,Type=Integer,Description="GenoType Counts. For each ALT allele in the same order as listed = 0/0,0/1,1/1,0/2,1/2,2/2,0/3,1/3,2/3,3/3,etc. Phasing is ignored; hence 1/0, 0|1 and 1|0 are all counted as 0/1. When one or more alleles is not called for a genotype in a specific sample (./., ./0, ./1, ./2, etc.), that sample's genotype is completely discarded for calculating GTC.">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
+20	60309	.	G	T	991.76	PASS	AC=4;AN=996;GTC=494,4,0
+20	60573	.	T	C	124.17	PASS	AC=1;AN=996;GTC=497,1,0
+20	60828	.	T	G	807.71	PASS	AC=6;AN=996;GTC=492,6,0
+20	61098	rs6078030	C	T	51254.56	PASS	AC=225;AN=996;GTC=304,163,31
+20	61270	.	A	C	2414.84	PASS	AC=20;AN=992;GTC=476,20,0
+20	61289	.	A	C	419.41	TruthSensitivityTranche99.70to99.80	AC=71;AN=960;GTC=411,67,2
+20	61682	.	C	T	12.27	PASS	AC=1;AN=996;GTC=497,1,0
diff --git a/vcf/test/info-type-character.vcf b/vcf/test/info-type-character.vcf
new file mode 100644
index 0000000..77b24a7
--- /dev/null
+++ b/vcf/test/info-type-character.vcf
@@ -0,0 +1,8 @@
+##fileformat=VCFv4.1
+##INFO=<ID=FLOAT_1,Number=1,Type=Float,Description="A floating point value">
+##INFO=<ID=CHAR_1,Number=1,Type=Character,Description="A character value">
+##INFO=<ID=FLOAT_N,Number=.,Type=Float,Description="Floating point values">
+##INFO=<ID=CHAR_N,Number=.,Type=Character,Description="Character values">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	Sample
+chr1	100	id1	G	A	.	.	FLOAT_1=123.456;CHAR_1=Y;FLOAT_N=123.456;CHAR_N=Y	GT	0/1
diff --git a/vcf/test/issue-140-file1.vcf b/vcf/test/issue-140-file1.vcf
new file mode 100644
index 0000000..8ee2de2
--- /dev/null
+++ b/vcf/test/issue-140-file1.vcf
@@ -0,0 +1,35 @@
+##fileformat=VCFv4.1
+##source=VarScan2
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total depth of quality bases">
+##INFO=<ID=SOMATIC,Number=0,Type=Flag,Description="Indicates if record is a somatic mutation">
+##INFO=<ID=SS,Number=1,Type=String,Description="Somatic status of variant (0=Reference,1=Germline,2=Somatic,3=LOH, or 5=Unknown)">
+##INFO=<ID=SSC,Number=1,Type=String,Description="Somatic score in Phred scale (0-255) derived from somatic p-value">
+##INFO=<ID=GPV,Number=1,Type=Float,Description="Fisher's Exact Test P-value of tumor+normal versus no variant for Germline calls">
+##INFO=<ID=SPV,Number=1,Type=Float,Description="Fisher's Exact Test P-value of tumor versus normal for Somatic/LOH calls">
+##FILTER=<ID=str10,Description="Less than 10% or more than 90% of variant supporting reads on one strand">
+##FILTER=<ID=indelError,Description="Likely artifact due to indel reads at this position">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=RD,Number=1,Type=Integer,Description="Depth of reference-supporting bases (reads1)">
+##FORMAT=<ID=AD,Number=1,Type=Integer,Description="Depth of variant-supporting bases (reads2)">
+##FORMAT=<ID=FREQ,Number=1,Type=String,Description="Variant allele frequency">
+##FORMAT=<ID=DP4,Number=1,Type=String,Description="Strand read counts: ref/fwd, ref/rev, var/fwd, var/rev">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NORMAL
+chr1	10	.	G	GGT	.	PASS	DP=91;SS=1;SSC=2;GPV=3.0109E-23;SPV=5.8324E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:36:13:22:62.86%:2,11,1,21
+chr1	20	.	GT	G	.	PASS	DP=77;SS=1;SSC=2;GPV=2.4504E-29;SPV=6.0772E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:28:5:22:81.48%:0,5,1,21
+chr2	30	.	AC	A	.	PASS	DP=22;SS=1;SSC=7;GPV=1.3117E-10;SPV=1.9481E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:10:2:8:80%:0,2,0,8
+chr2	40	.	AAAC	A	.	PASS	DP=42;SS=1;SSC=12;GPV=7.3092E-18;SPV=6.278E-2	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:13:4:9:69.23%:4,0,9,0
+chr3	50	.	TC	T	.	PASS	DP=41;SS=1;SSC=2;GPV=9.8874E-23;SPV=5.3659E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:22:1:21:95.45%:1,0,15,6
+chr10	60	.	T	TTAA	.	PASS	DP=27;SS=1;SSC=2;GPV=1.4382E-14;SPV=5.5556E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:12:0:12:100%:0,0,0,12
+chr10	70	.	C	CTG	.	PASS	DP=40;SS=1;SSC=7;GPV=3.6006E-9;SPV=1.9922E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:10:6:4:40%:0,6,0,4
+chr11	80	.	AGTT	A	.	PASS	DP=86;SS=1;SSC=0;GPV=4.1554E-34;SPV=8.5795E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:32:4:28:87.5%:1,3,0,28
+chr11	90	.	GA	G	.	PASS	DP=41;SS=1;SSC=3;GPV=1.9197E-12;SPV=4.089E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:15:5:9:64.29%:1,4,0,9
+chr20	100	.	TTTTG	T	.	PASS	DP=23;SS=1;SSC=1;GPV=2.9149E-12;SPV=6.5217E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:8:0:8:100%:0,0,7,1
+chr20	110	.	GA	G	.	PASS	DP=83;SS=1;SSC=13;GPV=1E0;SPV=4.0806E-2	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:35:5:28:84.85%:4,1,12,16
+chrX	120	.	G	GA	.	PASS	DP=61;SS=1;SSC=1;GPV=1.6967E-25;SPV=7.0485E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:22:3:19:86.36%:0,3,1,18
+chrX	130	.	T	TAA	.	PASS	DP=19;SS=1;SSC=1;GPV=1.1285E-5;SPV=7.2172E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:8:2:5:71.43%:0,2,0,5
+chrY	140	.	G	GTTT	.	PASS	DP=62;SS=1;SSC=0;GPV=3.4914E-15;SPV=9.571E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:36:2:19:90.48%:1,1,15,4
+chrY	150	.	T	TGAAG	.	PASS	DP=28;SS=1;SSC=12;GPV=1.7583E-10;SPV=5.5797E-2	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:13:5:8:61.54%:4,1,2,6
+chrM	160	.	G	GTTT	.	PASS	DP=62;SS=1;SSC=0;GPV=3.4914E-15;SPV=9.571E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:36:2:19:90.48%:1,1,15,4
+chrM	170	.	T	TGAAG	.	PASS	DP=28;SS=1;SSC=12;GPV=1.7583E-10;SPV=5.5797E-2	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:13:5:8:61.54%:4,1,2,6
diff --git a/vcf/test/issue-140-file2.vcf b/vcf/test/issue-140-file2.vcf
new file mode 100644
index 0000000..7852133
--- /dev/null
+++ b/vcf/test/issue-140-file2.vcf
@@ -0,0 +1,34 @@
+##fileformat=VCFv4.1
+##source=VarScan2
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total depth of quality bases">
+##INFO=<ID=SOMATIC,Number=0,Type=Flag,Description="Indicates if record is a somatic mutation">
+##INFO=<ID=SS,Number=1,Type=String,Description="Somatic status of variant (0=Reference,1=Germline,2=Somatic,3=LOH, or 5=Unknown)">
+##INFO=<ID=SSC,Number=1,Type=String,Description="Somatic score in Phred scale (0-255) derived from somatic p-value">
+##INFO=<ID=GPV,Number=1,Type=Float,Description="Fisher's Exact Test P-value of tumor+normal versus no variant for Germline calls">
+##INFO=<ID=SPV,Number=1,Type=Float,Description="Fisher's Exact Test P-value of tumor versus normal for Somatic/LOH calls">
+##FILTER=<ID=str10,Description="Less than 10% or more than 90% of variant supporting reads on one strand">
+##FILTER=<ID=indelError,Description="Likely artifact due to indel reads at this position">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=RD,Number=1,Type=Integer,Description="Depth of reference-supporting bases (reads1)">
+##FORMAT=<ID=AD,Number=1,Type=Integer,Description="Depth of variant-supporting bases (reads2)">
+##FORMAT=<ID=FREQ,Number=1,Type=String,Description="Variant allele frequency">
+##FORMAT=<ID=DP4,Number=1,Type=String,Description="Strand read counts: ref/fwd, ref/rev, var/fwd, var/rev">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NORMAL
+chr1	10	.	G	GGT	.	PASS	DP=91;SS=1;SSC=2;GPV=3.0109E-23;SPV=5.8324E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:36:13:22:62.86%:2,11,1,21
+chr1	20	.	GT	G	.	PASS	DP=77;SS=1;SSC=2;GPV=2.4504E-29;SPV=6.0772E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:28:5:22:81.48%:0,5,1,21
+chr2	30	.	AC	A	.	PASS	DP=22;SS=1;SSC=7;GPV=1.3117E-10;SPV=1.9481E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:10:2:8:80%:0,2,0,8
+chr2	41	.	AAAC	A	.	PASS	DP=42;SS=1;SSC=12;GPV=7.3092E-18;SPV=6.278E-2	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:13:4:9:69.23%:4,0,9,0
+chr10	60	.	T	TTAA	.	PASS	DP=27;SS=1;SSC=2;GPV=1.4382E-14;SPV=5.5556E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:12:0:12:100%:0,0,0,12
+chr10	70	.	C	CTG	.	PASS	DP=40;SS=1;SSC=7;GPV=3.6006E-9;SPV=1.9922E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:10:6:4:40%:0,6,0,4
+chr11	80	.	AGTT	A	.	PASS	DP=86;SS=1;SSC=0;GPV=4.1554E-34;SPV=8.5795E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:32:4:28:87.5%:1,3,0,28
+chr11	91	.	GA	G	.	PASS	DP=41;SS=1;SSC=3;GPV=1.9197E-12;SPV=4.089E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:15:5:9:64.29%:1,4,0,9
+chr20	100	.	TTTTG	T	.	PASS	DP=23;SS=1;SSC=1;GPV=2.9149E-12;SPV=6.5217E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:8:0:8:100%:0,0,7,1
+chr20	110	.	GA	G	.	PASS	DP=83;SS=1;SSC=13;GPV=1E0;SPV=4.0806E-2	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:35:5:28:84.85%:4,1,12,16
+chrX	120	.	G	GA	.	PASS	DP=61;SS=1;SSC=1;GPV=1.6967E-25;SPV=7.0485E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:22:3:19:86.36%:0,3,1,18
+chrX	130	.	T	TAA	.	PASS	DP=19;SS=1;SSC=1;GPV=1.1285E-5;SPV=7.2172E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:8:2:5:71.43%:0,2,0,5
+chrY	140	.	G	GTTT	.	PASS	DP=62;SS=1;SSC=0;GPV=3.4914E-15;SPV=9.571E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:36:2:19:90.48%:1,1,15,4
+chrY	149	.	T	TGAAG	.	PASS	DP=28;SS=1;SSC=12;GPV=1.7583E-10;SPV=5.5797E-2	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:13:5:8:61.54%:4,1,2,6
+chrM	160	.	G	GTTT	.	PASS	DP=62;SS=1;SSC=0;GPV=3.4914E-15;SPV=9.571E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:36:2:19:90.48%:1,1,15,4
+chrM	170	.	T	TGAAG	.	PASS	DP=28;SS=1;SSC=12;GPV=1.7583E-10;SPV=5.5797E-2	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:13:5:8:61.54%:4,1,2,6
diff --git a/vcf/test/issue-140-file3.vcf b/vcf/test/issue-140-file3.vcf
new file mode 100644
index 0000000..754f6b6
--- /dev/null
+++ b/vcf/test/issue-140-file3.vcf
@@ -0,0 +1,25 @@
+##fileformat=VCFv4.1
+##source=VarScan2
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total depth of quality bases">
+##INFO=<ID=SOMATIC,Number=0,Type=Flag,Description="Indicates if record is a somatic mutation">
+##INFO=<ID=SS,Number=1,Type=String,Description="Somatic status of variant (0=Reference,1=Germline,2=Somatic,3=LOH, or 5=Unknown)">
+##INFO=<ID=SSC,Number=1,Type=String,Description="Somatic score in Phred scale (0-255) derived from somatic p-value">
+##INFO=<ID=GPV,Number=1,Type=Float,Description="Fisher's Exact Test P-value of tumor+normal versus no variant for Germline calls">
+##INFO=<ID=SPV,Number=1,Type=Float,Description="Fisher's Exact Test P-value of tumor versus normal for Somatic/LOH calls">
+##FILTER=<ID=str10,Description="Less than 10% or more than 90% of variant supporting reads on one strand">
+##FILTER=<ID=indelError,Description="Likely artifact due to indel reads at this position">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=RD,Number=1,Type=Integer,Description="Depth of reference-supporting bases (reads1)">
+##FORMAT=<ID=AD,Number=1,Type=Integer,Description="Depth of variant-supporting bases (reads2)">
+##FORMAT=<ID=FREQ,Number=1,Type=String,Description="Variant allele frequency">
+##FORMAT=<ID=DP4,Number=1,Type=String,Description="Strand read counts: ref/fwd, ref/rev, var/fwd, var/rev">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NORMAL
+chr3	50	.	TC	T	.	PASS	DP=41;SS=1;SSC=2;GPV=9.8874E-23;SPV=5.3659E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:22:1:21:95.45%:1,0,15,6
+chr10	60	.	T	TTAA	.	PASS	DP=27;SS=1;SSC=2;GPV=1.4382E-14;SPV=5.5556E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:12:0:12:100%:0,0,0,12
+chr10	70	.	C	CTG	.	PASS	DP=40;SS=1;SSC=7;GPV=3.6006E-9;SPV=1.9922E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:10:6:4:40%:0,6,0,4
+chr11	80	.	AGTT	A	.	PASS	DP=86;SS=1;SSC=0;GPV=4.1554E-34;SPV=8.5795E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:32:4:28:87.5%:1,3,0,28
+chr11	90	.	GA	G	.	PASS	DP=41;SS=1;SSC=3;GPV=1.9197E-12;SPV=4.089E-1	GT:GQ:DP:RD:AD:FREQ:DP4	0/1:.:15:5:9:64.29%:1,4,0,9
+chr20	100	.	TTTTG	T	.	PASS	DP=23;SS=1;SSC=1;GPV=2.9149E-12;SPV=6.5217E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:8:0:8:100%:0,0,7,1
+chrX	120	.	G	GA	.	PASS	DP=61;SS=1;SSC=1;GPV=1.6967E-25;SPV=7.0485E-1	GT:GQ:DP:RD:AD:FREQ:DP4	1/1:.:22:3:19:86.36%:0,3,1,18
diff --git a/vcf/test/issue-16.vcf b/vcf/test/issue-16.vcf
new file mode 100644
index 0000000..db5f9ca
--- /dev/null
+++ b/vcf/test/issue-16.vcf
@@ -0,0 +1,21 @@
+##fileformat=VCFv4.0
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=1000GenomesPilot-NCBI36
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+20	1234568	.       G	.	.	PASS    NS=3;DP=9;AA=G  GT	./.	./.	./.
+
diff --git a/vcf/test/issue-201.vcf.gz b/vcf/test/issue-201.vcf.gz
new file mode 100644
index 0000000..2af09fa
Binary files /dev/null and b/vcf/test/issue-201.vcf.gz differ
diff --git a/vcf/test/issue-201.vcf.gz.tbi b/vcf/test/issue-201.vcf.gz.tbi
new file mode 100644
index 0000000..23ffe4d
Binary files /dev/null and b/vcf/test/issue-201.vcf.gz.tbi differ
diff --git a/vcf/test/issue_49.vcf b/vcf/test/issue_49.vcf
new file mode 100644
index 0000000..32f34ab
--- /dev/null
+++ b/vcf/test/issue_49.vcf
@@ -0,0 +1,34 @@
+##fileformat=VCFv4.1
+##INFO=<ID=LDAF,Number=1,Type=Float,Description="MLE Allele Frequency Accounting for LD">
+##INFO=<ID=AVGPOST,Number=1,Type=Float,Description="Average posterior probability from MaCH/Thunder">
+##INFO=<ID=RSQ,Number=1,Type=Float,Description="Genotype imputation quality from MaCH/Thunder">
+##INFO=<ID=ERATE,Number=1,Type=Float,Description="Per-marker Mutation rate from MaCH/Thunder">
+##INFO=<ID=THETA,Number=1,Type=Float,Description="Per-marker Transition rate from MaCH/Thunder">
+##INFO=<ID=CIEND,Number=2,Type=Integer,Description="Confidence interval around END for imprecise variants">
+##INFO=<ID=CIPOS,Number=2,Type=Integer,Description="Confidence interval around POS for imprecise variants">
+##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
+##INFO=<ID=HOMLEN,Number=.,Type=Integer,Description="Length of base pair identical micro-homology at event breakpoints">
+##INFO=<ID=HOMSEQ,Number=.,Type=String,Description="Sequence of base pair identical micro-homology at event breakpoints">
+##INFO=<ID=SVLEN,Number=1,Type=Integer,Description="Difference in length between REF and ALT alleles">
+##INFO=<ID=SVTYPE,Number=1,Type=String,Description="Type of structural variant">
+##INFO=<ID=AC,Number=.,Type=Integer,Description="Alternate Allele Count">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total Allele Count">
+##ALT=<ID=DEL,Description="Deletion">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=DS,Number=1,Type=Float,Description="Genotype dosage from MaCH/Thunder">
+##FORMAT=<ID=GL,Number=.,Type=Float,Description="Genotype Likelihoods">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele, ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/pilot_data/technical/reference/ancestral_alignments/README">
+##INFO=<ID=AF,Number=1,Type=Float,Description="Global Allele Frequency based on AC/AN">
+##INFO=<ID=AMR_AF,Number=1,Type=Float,Description="Allele Frequency for samples from AMR based on AC/AN">
+##INFO=<ID=ASN_AF,Number=1,Type=Float,Description="Allele Frequency for samples from ASN based on AC/AN">
+##INFO=<ID=AFR_AF,Number=1,Type=Float,Description="Allele Frequency for samples from AFR based on AC/AN">
+##INFO=<ID=EUR_AF,Number=1,Type=Float,Description="Allele Frequency for samples from EUR based on AC/AN">
+##INFO=<ID=VT,Number=1,Type=String,Description="indicates what type of variant the line represents">
+##INFO=<ID=SNPSOURCE,Number=.,Type=String,Description="indicates if a snp was called when analysing the low coverage or exome alignment data">
+##reference=GRCh37
+#CHROM    POS    ID    REF    ALT    QUAL    FILTER    INFO
+1    10583    rs58108140    G    A    100    PASS    AVGPOST=0.7707;RSQ=0.4319;LDAF=0.2327;ERATE=0.0161;AN=2184;VT=SNP;AA=.;THETA=0.0046;AC=314;SNPSOURCE=LOWCOV;AF=0.14;ASN_AF=0.13;AMR_AF=0.17;AFR_AF=0.04;EUR_AF=0.21
+1    10611    rs189107123    C    G    100    PASS    AN=2184;THETA=0.0077;VT=SNP;AA=.;AC=41;ERATE=0.0048;SNPSOURCE=LOWCOV;AVGPOST=0.9330;LDAF=0.0479;RSQ=0.3475;AF=0.02;ASN_AF=0.01;AMR_AF=0.03;AFR_AF=0.01;EUR_AF=0.02
+1    13302    rs180734498    C    T    100    PASS    THETA=0.0048;AN=2184;AC=249;VT=SNP;AA=.;RSQ=0.6281;LDAF=0.1573;SNPSOURCE=LOWCOV;AVGPOST=0.8895;ERATE=0.0058;AF=0.11;ASN_AF=0.02;AMR_AF=0.08;AFR_AF=0.21;EUR_AF=0.14
+1    947117    rs145699537    C    T    100    PASS    RSQ=0.9336;AA=C;AN=2184;LDAF=0.0010;VT=SNP;SNPSOURCE=LOWCOV;THETA=0.0007;ERATE=0.0003;AC=2;AVGPOST=0.9999;AF=0.0009;AFR_AF=0.0041
+1    947121    MERGED_DEL_2_94    GCCTCAGTCCTTTTCATGGCTGCATAATATTCCGTTGTGTGGACATTCCACACTTTGTGTGTCCATCCATCACTGATGGACATGTGCTCCGTTCCTGCTACTTGTTTATTGTAAACTGTGCTGCCATGGACATTTGTATGCAAGTATTTGAACACCTATTTTCAATTCTTTTGGACACATGCCTAGAAGTGGAACTGCTGGGTTCCCAATAATTCTGTTGAACGTTTTGAGCATCGCGGCGGCCGCACTGTTTTACATTCTCAACAGCAATGCATGTACCAGGATTCCAGTTCCTCTATGTATTCCCCAGTGCTTGTTACTGCCTTTATGTTTATTTTATATTATTTTTTGAGACTGTCTTGCTCTGCTGCCCAGGCTGGAGTGCATTGGTGCAATCTTGGCTCACCACAATCTCTGCCTCCTGGGTTCAAGGGATTCTCCCGCCTCAGCCTCCCAAG [...]
diff --git a/vcf/test/metadata-whitespace.vcf b/vcf/test/metadata-whitespace.vcf
new file mode 100644
index 0000000..c163f9a
--- /dev/null
+++ b/vcf/test/metadata-whitespace.vcf
@@ -0,0 +1,56 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS, Description="All filters passed">
+##samtoolsVersion=1.0-17-gfaf4dd6+htslib-1.0-11-g830ea73
+##samtoolsCommand=samtools mpileup -u -t DP,DPR,DV,DP4,INFO/DPR,SP -f /data/archive/reference/Anopheles-arabiensis-Dongola_SCAFFOLDS_AaraD1.fa -r KB704451:0004153102-0004172483 huge_list_of_bam_files_removed
+##reference=file:///data/archive/reference/Anopheles-arabiensis-Dongola_SCAFFOLDS_AaraD1.fa
+##contig=<ID=KB704451,length=13998812>
+##ALT=<ID=X,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)">
+##FORMAT=<ID=PL, Number=G, Type=Integer, Description="List of Phred-scaled genotype likelihoods">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Number of high-quality bases">
+##FORMAT=<ID=DV,Number=1,Type=Integer,Description="Number of high-quality non-reference bases">
+##FORMAT=<ID=DPR,Number=R,Type=Integer,Description="Number of high-quality bases observed for each allele">
+##INFO=<ID=DPR,Number=R,Type=Integer,Description="Number of high-quality bases observed for each allele">
+##FORMAT=<ID=DP4, Number=4,   Type=Integer,   Description="Number of high-quality ref-fwd, ref-reverse, alt-fwd and alt-reverse bases">
+##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Phred-scaled Genotype Quality">
+##FORMAT=<ID=GP,Number=G,Type=Float,Description="Phred-scaled genotype posterior probabilities">
+##INFO=<ID=ICB,Number=1,Type=Float,Description="Inbreeding Coefficient Binomial test (bigger is better)">
+##INFO=<ID=HOB,Number=1,Type=Float,Description="Bias in the number of HOMs number (smaller is better)">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DP4,Number=4,Type=Integer,Description="Number of high-quality ref-forward , ref-reverse, alt-forward and alt-reverse bases">
+##INFO=<ID=MQ,Number=1,Type=Integer,Description="Average mapping quality">
+##bcftools_callVersion=1.0-55-gc661821+htslib-1.0-11-g830ea73
+##bcftools_callCommand=call -m -vM -f GQ,GP
+##SnpSiftVersion="SnpSift 3.6c (build 2014-05-20), by Pablo Cingolani"
+##SnpSiftCmd="SnpSift varType - "
+##INFO=<ID=VARTYPE, Number=A, Type=Flag, Description="Variant types {SNP,MNP,INS,DEL,Mixed}">
+##INFO=<ID=SNP, Number=0, Type=Flag, Description="Variant is a SNP">
+##INFO=<ID=MNP,Number=0,Type=Flag,Description="Variant is an MNP">
+##INFO=<ID=INS,	Number=0,	Type=Flag,	Description="Variant is an insertion">
+##INFO=<ID=DEL,Number=0,Type=Flag,Description="Variant is an deletion">
+##INFO=<ID=MIXED,Number=0,Type=Flag,Description="Variant is mixture of INS/DEL/SNP/MNP">
+##INFO=<ID=HOM,   Number=0,Type=Flag,     Description="Variant is homozygous">
+##INFO=<ID=HET,Number=0,Type=Flag,Description="Variant is heterozygous">
+##INFO=<ID=VARTYPE,Number=A,Type=String,Description="Comma separated list of variant types. One per allele">
+#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  LUPI059 MINE001 OKJ042  LUPI001 LUPI007 LUPI024 LUPI056 LUPI071 LUPI074 LUPI082 MINE040 MINE100 MINE101 MINE105 MINE111 OKJ017  OKJ045  OKJ070  SAGA066 SAGA107 SAGA131 SAGA133 SAGA134 SAGA141 2012L_LUPI_002  2012L_LUPI_015  2012L_LUPI_017  2012L_LUPI_018  2012L_LUPI_035  2012L_LUPI_062  2012L_LUPI_065  2012L_LUPI_077  2012L_LUPI_083  2012L_LUPI_116  2012L_LUPI_013  2012L_LUPI_041  2012L_LUPI_068  2012L_LUPI_096  2012L_LUPI_098  2012 [...]
+KB704451    4157846 .   N   A,C 167.0   .   DP=10;VDB=1.17174e-06;SGB=1.26353;MQ0F=0;DPR=0,6,4;AC=10,4;AN=14;DP4=0,0,10,0;MQ=60;SNP;VARTYPE=SNP,SNP GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    1/2:74,23,14,57,0,54:4:4:0:0,0,4,0:0,3,1:144,56,16,90,0,57:16   1/2:26,26,26,3,3,0:1:1:0:0,0,1,0:0,0,1:95,58,28,36,2,3:3    ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0,0,0:0,0,0,0,0,0:0   ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0,0,0:0,0,0,0,0,0:0   ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0,0,0:0,0,0,0,0,0:0   ./.:0,0,0,0,0,0:0:0:0:0,0,0,0:0, [...]
+KB704451    4157870 .   T   C   275.0   .   DP=243;VDB=0.00023935;SGB=29.4468;RPB=0.0368658;MQB=0.979612;MQSB=0.268441;BQB=0.99223;MQ0F=0;DPR=213,19;ICB=0.85092;HOB=0.0287274;AC=6;AN=118;DP4=201,12,19,1;MQ=53;SNP;VARTYPE=SNP    GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,66,255:22:0:0:20,2,0,0:22,0:0,75,279:75   0/0:0,12,120:4:0:0:4,0,0,0:4,0:0,21,144:21  1/1:193,36,0:12:12:0:0,0,12,0:0,12:168,20,0:20  0/0:0,9,95:3:0:0:3,0,0,0:3,0:0,18,119:18    0/1:78,0,110:7:3:0:3,1,3,0:4,3:68,0,125:68  0/0: [...]
+KB704451    4157877 .   G   A   999.0   .   DP=250;VDB=6.58963e-09;SGB=31.659;RPB=0.0227135;MQB=0.410318;MQSB=0.139343;BQB=0.0767891;MQ0F=0;DPR=188,48;ICB=0.990841;HOB=0.00761276;AC=17;AN=118;DP4=176,12,45,3;MQ=55;SNP;VARTYPE=SNP   GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/1:159,0,202:22:9:0:12,1,8,1:13,9:154,0,212:127    0/0:0,12,120:4:0:0:4,0,0,0:4,0:0,16,134:16  0/0:0,51,207:17:0:0:17,0,0,0:17,0:0,55,221:55   0/0:0,9,98:3:0:0:3,0,0,0:3,0:0,13,112:13    0/1:123,0,61:8:5:0:3,0,4,1:3,5:118,0,71: [...]
+KB704451    4157907 .   A   C   278.0   .   DP=295;VDB=0.241276;SGB=26.7514;RPB=0.676983;MQB=0.997838;MQSB=0.136536;BQB=0.45683;MQ0F=0;DPR=264,15;ICB=0.00518819;HOB=0.00237812;AC=4;AN=116;DP4=233,31,14,1;MQ=59;SNP;VARTYPE=SNP   GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,90,255:30:0:0:25,5,0,0:30,0:0,101,283:101 0/0:0,30,201:10:0:0:9,1,0,0:10,0:0,41,229:41    0/1:157,0,188:18:8:0:10,0,7,1:10,8:145,0,205:127    0/1:75,0,90:5:2:0:2,1,2,0:3,2:63,0,107:63   0/0:0,30,201:10:0:0:9,1,0,0:10,0:0,41,22 [...]
+KB704451    4157909 .   T   G   278.0   .   DP=295;VDB=0.184881;SGB=22.7413;RPB=0.646301;MQB=0.998034;MQSB=0.200514;BQB=0.321842;MQ0F=0;DPR=247,15;ICB=0.00558284;HOB=0.00255102;AC=4;AN=112;DP4=218,29,15,1;MQ=59;SNP;VARTYPE=SNP  GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,87,255:29:0:0:24,5,0,0:29,0:0,97,282:97   0/0:0,27,183:9:0:0:9,0,0,0:9,0:0,37,210:37  0/1:156,0,167:19:8:0:11,0,7,1:11,8:145,0,183:127    0/1:75,0,107:5:2:0:2,1,2,0:3,2:64,0,123:64  0/0:0,27,191:9:0:0:8,1,0,0:9,0:0,37,218:37   [...]
+KB704451    4157927 .   G   A   4.88727 .   DP=334;VDB=0.38;SGB=3.29913;RPB=0.454248;MQB=0.970588;MQSB=0.546099;BQB=0.215686;MQ0F=0;DPR=306,2;ICB=0.000310486;HOB=0.000153894;AC=1;AN=114;DP4=265,41,2,0;MQ=59;SNP;VARTYPE=SNP  GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/0:0,105,255:35:0:0:31,4,0,0:35,0:0,122,295:122    0/0:0,45,255:15:0:0:14,1,0,0:15,0:0,62,295:62   0/0:0,60,255:20:0:0:17,3,0,0:20,0:0,77,295:77   0/0:0,21,242:7:0:0:6,1,0,0:7,0:0,38,282:38  0/0:0,24,207:8:0:0:6,2,0,0:8,0:0,41,247:41   [...]
+KB704451    4157938 .   ATTT    ATTTT   650.0   .   INDEL;IDV=18;IMF=0.428571;DP=361;VDB=0.773794;SGB=32.6744;MQSB=0.993251;MQ0F=0.00831025;DPR=115,60;ICB=0.929833;HOB=0.0258;AC=23;AN=100;DP4=98,17,48,12;MQ=59;INS;VARTYPE=INS   GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/1:124,0,7:19:16:0:3,0,13,3:3,16:123,0,13:13   0/1:14,3,0:1:1:0:0,0,1,0:0,1:12,1,5:4   0/0:0,9,55:3:0:0:3,0,0,0:3,0:0,9,62:9   0/0:0,21,146:7:0:0:5,2,0,0:7,0:0,21,153:21  0/0:0,18,126:6:0:0:4,2,0,0:6,0:0,18,133:18  0/0:0,6,56:2:0:0 [...]
+KB704451    4157940 .   TTGTGTGTGTGTGT  TTGTGTGTGTGTGTGTGT,TTTCTGTGTGTGTGTGT    999.0   .   INDEL;IDV=7;IMF=0.5;DP=366;VDB=0.0431342;SGB=14.7456;MQSB=0.996953;MQ0F=0.010929;DPR=86,41,8;ICB=0.963728;HOB=0.02;AC=21,6;AN=90;DP4=70,16,39,10;MQ=58;INS;VARTYPE=INS,INS  GT:PL:DP:DV:SP:DP4:DPR:GP:GQ    0/2:60,60,60,3,3,0:1:1:0:0,0,1,0:0,0,1:54,55,61,2,5,9:4 1/1:255,18,0,255,18,255:6:6:0:0,0,3,3:0,6,0:248,11,0,252,19,263:11  0/0:0,6,62,6,62,62:2:0:0:2,0,0,0:2,0,0:1,7,70,11,71,78:6    0/1:9,0,238, [...]
diff --git a/vcf/test/mixed-filtering.vcf b/vcf/test/mixed-filtering.vcf
new file mode 100644
index 0000000..f02e839
--- /dev/null
+++ b/vcf/test/mixed-filtering.vcf
@@ -0,0 +1,24 @@
+##fileformat=VCFv4.1
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
+##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+20	14370	rs6054257	G	A	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5:.,.
+20	17330	.	T	A	3	q10	NS=3;DP=11;AF=0.017	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3
+20	1110696	rs6040355	A	G,T	67	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	1|2:21:6:23,27	2|1:2:0:18,2	2/2:35:4
+20	1230237	.	T	.	47	.	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2
+20	1234567	microsat1	GTC	G,GTCT	50	q10;q50	NS=3;DP=9;AA=G	GT:GQ:DP	0/1:35:4	0/2:17:2	1/1:40:3
diff --git a/vcf/test/null_genotype_mono.vcf b/vcf/test/null_genotype_mono.vcf
new file mode 100644
index 0000000..529e407
--- /dev/null
+++ b/vcf/test/null_genotype_mono.vcf
@@ -0,0 +1,119 @@
+##fileformat=VCFv4.1
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[np_control.bam] read_buffer_size=null phone_home=STANDARD read_filter=[] intervals=[tests/read_chr.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL reference_sequence=/data/reference/ucsc/hg19/ucsc.hg19.fasta rodBind=[] nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=250 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null useOriginalQu [...]
+##contig=<ID=chr1,length=249250621,assembly=hg19>
+##contig=<ID=chr10,length=135534747,assembly=hg19>
+##contig=<ID=chr11,length=135006516,assembly=hg19>
+##contig=<ID=chr11_gl000202_random,length=40103,assembly=hg19>
+##contig=<ID=chr12,length=133851895,assembly=hg19>
+##contig=<ID=chr13,length=115169878,assembly=hg19>
+##contig=<ID=chr14,length=107349540,assembly=hg19>
+##contig=<ID=chr15,length=102531392,assembly=hg19>
+##contig=<ID=chr16,length=90354753,assembly=hg19>
+##contig=<ID=chr17,length=81195210,assembly=hg19>
+##contig=<ID=chr17_ctg5_hap1,length=1680828,assembly=hg19>
+##contig=<ID=chr17_gl000203_random,length=37498,assembly=hg19>
+##contig=<ID=chr17_gl000204_random,length=81310,assembly=hg19>
+##contig=<ID=chr17_gl000205_random,length=174588,assembly=hg19>
+##contig=<ID=chr17_gl000206_random,length=41001,assembly=hg19>
+##contig=<ID=chr18,length=78077248,assembly=hg19>
+##contig=<ID=chr18_gl000207_random,length=4262,assembly=hg19>
+##contig=<ID=chr19,length=59128983,assembly=hg19>
+##contig=<ID=chr19_gl000208_random,length=92689,assembly=hg19>
+##contig=<ID=chr19_gl000209_random,length=159169,assembly=hg19>
+##contig=<ID=chr1_gl000191_random,length=106433,assembly=hg19>
+##contig=<ID=chr1_gl000192_random,length=547496,assembly=hg19>
+##contig=<ID=chr2,length=243199373,assembly=hg19>
+##contig=<ID=chr20,length=63025520,assembly=hg19>
+##contig=<ID=chr21,length=48129895,assembly=hg19>
+##contig=<ID=chr21_gl000210_random,length=27682,assembly=hg19>
+##contig=<ID=chr22,length=51304566,assembly=hg19>
+##contig=<ID=chr3,length=198022430,assembly=hg19>
+##contig=<ID=chr4,length=191154276,assembly=hg19>
+##contig=<ID=chr4_ctg9_hap1,length=590426,assembly=hg19>
+##contig=<ID=chr4_gl000193_random,length=189789,assembly=hg19>
+##contig=<ID=chr4_gl000194_random,length=191469,assembly=hg19>
+##contig=<ID=chr5,length=180915260,assembly=hg19>
+##contig=<ID=chr6,length=171115067,assembly=hg19>
+##contig=<ID=chr6_apd_hap1,length=4622290,assembly=hg19>
+##contig=<ID=chr6_cox_hap2,length=4795371,assembly=hg19>
+##contig=<ID=chr6_dbb_hap3,length=4610396,assembly=hg19>
+##contig=<ID=chr6_mann_hap4,length=4683263,assembly=hg19>
+##contig=<ID=chr6_mcf_hap5,length=4833398,assembly=hg19>
+##contig=<ID=chr6_qbl_hap6,length=4611984,assembly=hg19>
+##contig=<ID=chr6_ssto_hap7,length=4928567,assembly=hg19>
+##contig=<ID=chr7,length=159138663,assembly=hg19>
+##contig=<ID=chr7_gl000195_random,length=182896,assembly=hg19>
+##contig=<ID=chr8,length=146364022,assembly=hg19>
+##contig=<ID=chr8_gl000196_random,length=38914,assembly=hg19>
+##contig=<ID=chr8_gl000197_random,length=37175,assembly=hg19>
+##contig=<ID=chr9,length=141213431,assembly=hg19>
+##contig=<ID=chr9_gl000198_random,length=90085,assembly=hg19>
+##contig=<ID=chr9_gl000199_random,length=169874,assembly=hg19>
+##contig=<ID=chr9_gl000200_random,length=187035,assembly=hg19>
+##contig=<ID=chr9_gl000201_random,length=36148,assembly=hg19>
+##contig=<ID=chrM,length=16571,assembly=hg19>
+##contig=<ID=chrUn_gl000211,length=166566,assembly=hg19>
+##contig=<ID=chrUn_gl000212,length=186858,assembly=hg19>
+##contig=<ID=chrUn_gl000213,length=164239,assembly=hg19>
+##contig=<ID=chrUn_gl000214,length=137718,assembly=hg19>
+##contig=<ID=chrUn_gl000215,length=172545,assembly=hg19>
+##contig=<ID=chrUn_gl000216,length=172294,assembly=hg19>
+##contig=<ID=chrUn_gl000217,length=172149,assembly=hg19>
+##contig=<ID=chrUn_gl000218,length=161147,assembly=hg19>
+##contig=<ID=chrUn_gl000219,length=179198,assembly=hg19>
+##contig=<ID=chrUn_gl000220,length=161802,assembly=hg19>
+##contig=<ID=chrUn_gl000221,length=155397,assembly=hg19>
+##contig=<ID=chrUn_gl000222,length=186861,assembly=hg19>
+##contig=<ID=chrUn_gl000223,length=180455,assembly=hg19>
+##contig=<ID=chrUn_gl000224,length=179693,assembly=hg19>
+##contig=<ID=chrUn_gl000225,length=211173,assembly=hg19>
+##contig=<ID=chrUn_gl000226,length=15008,assembly=hg19>
+##contig=<ID=chrUn_gl000227,length=128374,assembly=hg19>
+##contig=<ID=chrUn_gl000228,length=129120,assembly=hg19>
+##contig=<ID=chrUn_gl000229,length=19913,assembly=hg19>
+##contig=<ID=chrUn_gl000230,length=43691,assembly=hg19>
+##contig=<ID=chrUn_gl000231,length=27386,assembly=hg19>
+##contig=<ID=chrUn_gl000232,length=40652,assembly=hg19>
+##contig=<ID=chrUn_gl000233,length=45941,assembly=hg19>
+##contig=<ID=chrUn_gl000234,length=40531,assembly=hg19>
+##contig=<ID=chrUn_gl000235,length=34474,assembly=hg19>
+##contig=<ID=chrUn_gl000236,length=41934,assembly=hg19>
+##contig=<ID=chrUn_gl000237,length=45867,assembly=hg19>
+##contig=<ID=chrUn_gl000238,length=39939,assembly=hg19>
+##contig=<ID=chrUn_gl000239,length=33824,assembly=hg19>
+##contig=<ID=chrUn_gl000240,length=41933,assembly=hg19>
+##contig=<ID=chrUn_gl000241,length=42152,assembly=hg19>
+##contig=<ID=chrUn_gl000242,length=43523,assembly=hg19>
+##contig=<ID=chrUn_gl000243,length=43341,assembly=hg19>
+##contig=<ID=chrUn_gl000244,length=39929,assembly=hg19>
+##contig=<ID=chrUn_gl000245,length=36651,assembly=hg19>
+##contig=<ID=chrUn_gl000246,length=38154,assembly=hg19>
+##contig=<ID=chrUn_gl000247,length=36422,assembly=hg19>
+##contig=<ID=chrUn_gl000248,length=39786,assembly=hg19>
+##contig=<ID=chrUn_gl000249,length=38502,assembly=hg19>
+##contig=<ID=chrX,length=155270560,assembly=hg19>
+##contig=<ID=chrY,length=59373566,assembly=hg19>
+##reference=file:///data/reference/ucsc/hg19/ucsc.hg19.fasta
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA19239
+chr1	65312657	.	G	.	.	.	.	GT	./.
diff --git a/vcf/test/parse-meta-line.vcf b/vcf/test/parse-meta-line.vcf
new file mode 100644
index 0000000..e3a2611
--- /dev/null
+++ b/vcf/test/parse-meta-line.vcf
@@ -0,0 +1,6 @@
+##fileformat=VCFv4.1
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##MYFIELD=<ID=SomeField,Version=3.4-0-g7e26428,Date="Wed Oct 07 09:11:47 CEST 2015",Options="< 4 and > 3">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	Sample
+chr1	100	id1	G	A	.	.	NS=3	GT	0/1
diff --git a/vcf/test/prof.py b/vcf/test/prof.py
new file mode 100755
index 0000000..953d169
--- /dev/null
+++ b/vcf/test/prof.py
@@ -0,0 +1,33 @@
+import vcf as vcf
+import cProfile
+import timeit
+import pstats
+import sys
+
+def parse_1kg():
+    for line in vcf.Reader(filename='vcf/test/1kg.vcf.gz'):
+        pass
+
+if len(sys.argv) == 1:
+    sys.argv.append(None)
+
+if sys.argv[1] == 'profile':
+    cProfile.run('parse_1kg()', '1kg.prof')
+    p = pstats.Stats('1kg.prof')
+    p.strip_dirs().sort_stats('time').print_stats()
+
+elif sys.argv[1] == 'time':
+    n = 1
+    t = timeit.timeit('parse_1kg()',  "from __main__ import parse_1kg", number=n)
+    print t/n
+
+elif sys.argv[1] == 'stat':
+    import statprof
+    statprof.start()
+    try:
+        parse_1kg()
+    finally:
+        statprof.stop()
+        statprof.display()
+else:
+    print 'prof.py profile/time'
diff --git a/vcf/test/samples-space.vcf b/vcf/test/samples-space.vcf
new file mode 100644
index 0000000..8c9bb9e
--- /dev/null
+++ b/vcf/test/samples-space.vcf
@@ -0,0 +1,10 @@
+##fileformat=VCFv4.0
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA 00001	NA 00002	NA 00003
+20	14370	rs6054257	G	A	29	PASS	.	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	./.
+20	76766	rs6054257	C	T	29	PASS	.	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	./.
diff --git a/vcf/test/samtools.vcf b/vcf/test/samtools.vcf
new file mode 100644
index 0000000..3698717
--- /dev/null
+++ b/vcf/test/samtools.vcf
@@ -0,0 +1,34 @@
+##fileformat=VCFv4.1
+##samtoolsVersion=0.1.16 (r963:234)
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Raw read depth">
+##INFO=<ID=DP4,Number=4,Type=Integer,Description="# high-quality ref-forward bases, ref-reverse, alt-forward and alt-reverse bases">
+##INFO=<ID=MQ,Number=1,Type=Integer,Description="Root-mean-square mapping quality of covering reads">
+##INFO=<ID=FQ,Number=1,Type=Float,Description="Phred probability of all samples being the same">
+##INFO=<ID=AF1,Number=1,Type=Float,Description="Max-likelihood estimate of the site allele frequency of the first ALT allele">
+##INFO=<ID=G3,Number=3,Type=Float,Description="ML estimate of genotype frequencies">
+##INFO=<ID=HWE,Number=1,Type=Float,Description="Chi^2 based HWE test P-value based on G3">
+##INFO=<ID=CI95,Number=2,Type=Float,Description="Equal-tail Bayesian credible interval of the site allele frequency at the 95% level">
+##INFO=<ID=PV4,Number=4,Type=Float,Description="P-values for strand bias, baseQ bias, mapQ bias and tail distance bias">
+##INFO=<ID=INDEL,Number=0,Type=Flag,Description="Indicates that the variant is an INDEL.">
+##INFO=<ID=PC2,Number=2,Type=Integer,Description="Phred probability of the nonRef allele frequency in group1 samples being larger (,smaller) than in group2.">
+##INFO=<ID=PCHI2,Number=1,Type=Float,Description="Posterior weighted chi^2 P-value for testing the association between group1 and group2 samples.">
+##INFO=<ID=QCHI2,Number=1,Type=Integer,Description="Phred scaled PCHI2.">
+##INFO=<ID=PR,Number=1,Type=Integer,Description="# permutations yielding a smaller PCHI2.">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GL,Number=3,Type=Float,Description="Likelihoods for RR,RA,AA genotypes (R=ref,A=alt)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="# high-quality bases">
+##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
+##FORMAT=<ID=PL,Number=-1,Type=Integer,Description="List of Phred-scaled genotype likelihoods, number of values is (#ALT+1)*(#ALT+2)/2">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	-
+chrX	2774478	.	A	G	61.3	.	DP=8;AF1=1;CI95=0.5,1;DP4=0,0,5,0;MQ=60;FQ=-42	GT:PL:GQ	1/1:94,15,0:27
+chrX	2832661	.	A	T	29	.	DP=25;AF1=0.5;CI95=0.5,0.5;DP4=14,1,6,1;MQ=56;FQ=32;PV4=1,0.00034,0.00019,1	GT:PL:GQ	0/1:59,0,144:62
+chrX	2832880	.	AAT	AATAT	109	.	INDEL;DP=20;AF1=0.5;CI95=0.5,0.5;DP4=0,7,0,8;MQ=47;FQ=112;PV4=1,1,0.0069,0.091	GT:PL:GQ	0/1:147,0,172:99
+chrX	2832920	.	TTAT	TTATAT	85.5	.	INDEL;DP=12;AF1=0.5;CI95=0.5,0.5;DP4=0,6,0,5;MQ=56;FQ=88.5;PV4=1,0.36,0.052,0.017	GT:PL:GQ	0/1:123,0,150:99
+chrX	2833534	.	TTACGCCCT	T	8.18	.	INDEL;DP=15;AF1=0.5;CI95=0.5,0.5;DP4=10,0,2,0;MQ=60;FQ=10.8;PV4=1,0.0041,1,0.3	GT:PL:GQ	0/1:45,0,255:47
+chrX	2833580	.	A	G	80	.	DP=20;AF1=0.5;CI95=0.5,0.5;DP4=10,2,7,1;MQ=58;FQ=83;PV4=1,1,0.06,1	GT:PL:GQ	0/1:110,0,141:99
+chr1	10363194	.	cca	cCAca	57.5	.	INDEL;DP=19;AF1=0.5;CI95=0.5,0.5;DP4=16,0,3,0;MQ=59;FQ=60.5;PV4=1,1,1,0.0008	GT:PL:GQ	0/1:95,0,214:98
+chr1	11292952	.	T	A,C	41	.	DP=17;AF1=1;CI95=1,1;DP4=0,0,17,0;MQ=57;FQ=-75	GT:PL:GQ	1/1:74,48,0,66,28,63:85
+chr1	38304491	.	t	tTTTTTTTTTTTTTTTTTTTTTT,tTTTTTTTTTTTTT,tTTTTTTT	16.3	.	INDEL;DP=9;AF1=1;CI95=0.5,1;DP4=0,0,0,4;MQ=41;FQ=-40.5	GT:PL:GQ	1/1:105,56,50,54,0,51,98,45,44,95:10
+chr1	152195728	.	ATTTTTTTTTTT	ATTTTTTTTTT,ATTTTTTTTT	36.5	.	INDEL;DP=39;AF1=1;CI95=1,1;DP4=1,1,12,19;MQ=59;FQ=-104;PV4=1,0.42,0.4,0.2	GT:PL:GQ	1/1:77,69,0,77,75,73:99
+chr1	152276149	.	C	T	134	.	DP=30;AF1=0.5;CI95=0.5,0.5;DP4=2,7,8,11;MQ=33;FQ=45;PV4=0.42,0.23,0.33,1	GT:PL:GQ	0/1:164,0,72:75
diff --git a/vcf/test/string_as_flag.vcf b/vcf/test/string_as_flag.vcf
new file mode 100644
index 0000000..afa3b0d
--- /dev/null
+++ b/vcf/test/string_as_flag.vcf
@@ -0,0 +1,8 @@
+##fileformat=VCFv4.1
+##INFO=<ID=AB,Number=1,Type=String,Description="Alt Base">
+##INFO=<ID=CD,Number=.,Type=String,Description="Alt Base">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	test
+chr2	21	.	A	G	.	.		GT	.
+chr2	24	.	G	T	.	.	AB	GT	.
+chr2	48	.	C	T	.	.	CD	GT	.
+chr2	75	.	T	C	.	.	AB;CD	GT	.
diff --git a/vcf/test/tb.vcf.gz b/vcf/test/tb.vcf.gz
new file mode 100644
index 0000000..e25e02b
Binary files /dev/null and b/vcf/test/tb.vcf.gz differ
diff --git a/vcf/test/tb.vcf.gz.tbi b/vcf/test/tb.vcf.gz.tbi
new file mode 100644
index 0000000..779964b
Binary files /dev/null and b/vcf/test/tb.vcf.gz.tbi differ
diff --git a/vcf/test/test_vcf.py b/vcf/test/test_vcf.py
new file mode 100644
index 0000000..efa633e
--- /dev/null
+++ b/vcf/test/test_vcf.py
@@ -0,0 +1,1039 @@
+from __future__ import print_function
+import unittest
+import doctest
+import os
+import commands
+import cPickle
+from StringIO import StringIO
+
+import vcf
+from vcf import utils
+
+suite = doctest.DocTestSuite(vcf)
+
+
+def fh(fname, mode='rt'):
+    return open(os.path.join(os.path.dirname(__file__), fname), mode)
+
+
+class TestVcfSpecs(unittest.TestCase):
+
+    def test_vcf_4_0(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        self.assertEqual(reader.metadata['fileformat'], 'VCFv4.0')
+
+        # test we can walk the file at least
+        for r in reader:
+
+            if r.POS == 1230237:
+                assert r.is_monomorphic
+            else:
+                assert not r.is_monomorphic
+
+            if 'AF' in r.INFO:
+                self.assertEqual(type(r.INFO['AF']),  type([]))
+
+            for c in r:
+                assert c
+
+                # issue 19, in the example ref the GQ is length 1
+                if c.called:
+                    self.assertEqual(type(c.data.GQ),  type(1))
+                    if 'HQ' in c.data and c.data.HQ is not None:
+                        self.assertEqual(type(c.data.HQ),  type([]))
+
+
+
+    def test_vcf_4_1(self):
+        reader = vcf.Reader(fh('example-4.1.vcf'))
+        self.assertEqual(reader.metadata['fileformat'],  'VCFv4.1')
+
+        # contigs were added in vcf4.1
+        self.assertEqual(reader.contigs['20'].length, 62435964)
+
+        # test we can walk the file at least
+        for r in reader:
+            for c in r:
+                assert c
+
+    def test_vcf_4_1_sv(self):
+        reader = vcf.Reader(fh('example-4.1-sv.vcf'))
+
+        assert 'SVLEN' in reader.infos
+        assert 'fileDate' in reader.metadata
+        assert 'DEL' in reader.alts
+
+        # test we can walk the file at least
+        for r in reader:
+            print(r)
+            for a in r.ALT:
+                print(a)
+            for c in r:
+                print(c)
+                assert c
+
+    def test_vcf_4_1_bnd(self):
+        reader = vcf.Reader(fh('example-4.1-bnd.vcf'))
+
+        # test we can walk the file at least
+        for r in reader:
+            print(r)
+            for a in r.ALT:
+                print(a)
+            if r.ID == "bnd1":
+                    self.assertEqual(len(r.ALT), 1)
+                    self.assertEqual(r.ALT[0].type, "BND")
+                    self.assertEqual(r.ALT[0].chr, "2")
+                    self.assertEqual(r.ALT[0].pos, 3)
+                    self.assertEqual(r.ALT[0].orientation, False)
+                    self.assertEqual(r.ALT[0].remoteOrientation, True)
+                    self.assertEqual(r.ALT[0].connectingSequence, "T")
+            if r.ID == "bnd4":
+                    self.assertEqual(len(r.ALT), 1)
+                    self.assertEqual(r.ALT[0].type, "BND")
+                    self.assertEqual(r.ALT[0].chr, "1")
+                    self.assertEqual(r.ALT[0].pos, 2)
+                    self.assertEqual(r.ALT[0].orientation, True)
+                    self.assertEqual(r.ALT[0].remoteOrientation, False)
+                    self.assertEqual(r.ALT[0].connectingSequence, "G")
+            for c in r:
+                print(c)
+                assert c
+
+class TestGatkOutput(unittest.TestCase):
+
+    filename = 'gatk.vcf'
+
+    samples = ['BLANK', 'NA12878', 'NA12891', 'NA12892',
+            'NA19238', 'NA19239', 'NA19240']
+    formats = ['AD', 'DP', 'GQ', 'GT', 'PL']
+    infos = ['AC', 'AF', 'AN', 'BaseQRankSum', 'DB', 'DP', 'DS',
+            'Dels', 'FS', 'HRun', 'HaplotypeScore', 'InbreedingCoeff',
+            'MQ', 'MQ0', 'MQRankSum', 'QD', 'ReadPosRankSum']
+
+    n_calls = 37
+
+    def setUp(self):
+        self.reader = vcf.Reader(fh(self.filename))
+
+    def testSamples(self):
+        self.assertEqual(self.reader.samples, self.samples)
+
+    def testFormats(self):
+        self.assertEqual(set(self.reader.formats), set(self.formats))
+
+    def testInfos(self):
+        self.assertEqual(set(self.reader.infos), set(self.infos))
+
+
+    def testCalls(self):
+        n = 0
+
+        for site in self.reader:
+            n += 1
+            self.assertEqual(len(site.samples), len(self.samples))
+
+
+            # check sample name lookup
+            for s in self.samples:
+                assert site.genotype(s)
+
+            # check ordered access
+            self.assertEqual([x.sample for x in site.samples], self.samples)
+
+        self.assertEqual(n,  self.n_calls)
+
+
+class TestFreebayesOutput(TestGatkOutput):
+
+    filename = 'freebayes.vcf'
+    formats = ['AO', 'DP', 'GL', 'GLE', 'GQ', 'GT', 'QA', 'QR', 'RO']
+    infos = ['AB', 'ABP', 'AC', 'AF', 'AN', 'AO', 'BVAR', 'CIGAR',
+            'DB', 'DP', 'DPRA', 'EPP', 'EPPR', 'HWE', 'LEN', 'MEANALT',
+            'NUMALT', 'RPP', 'MQMR', 'ODDS', 'MQM', 'PAIREDR', 'PAIRED',
+            'SAP', 'XRM', 'RO', 'REPEAT', 'XRI', 'XAS', 'XAI', 'SRP',
+            'XAM', 'XRS', 'RPPR', 'NS', 'RUN', 'CpG', 'TYPE']
+    n_calls = 104
+
+
+    def testParse(self):
+        reader = vcf.Reader(fh('freebayes.vcf'))
+        print(reader.samples)
+        self.assertEqual(len(reader.samples), 7)
+        n = 0
+        for r in reader:
+            n+=1
+            for x in r:
+                assert x
+        self.assertEqual(n, self.n_calls)
+
+class TestSamtoolsOutput(unittest.TestCase):
+
+    def testParse(self):
+        reader = vcf.Reader(fh('samtools.vcf'))
+
+        self.assertEqual(len(reader.samples), 1)
+        self.assertEqual(sum(1 for _ in reader), 11)
+
+
+class TestBcfToolsOutput(unittest.TestCase):
+    def testParse(self):
+        reader = vcf.Reader(fh('bcftools.vcf'))
+        self.assertEqual(len(reader.samples), 1)
+        for r in reader:
+            for s in r.samples:
+                s.phased
+
+
+class Test1kg(unittest.TestCase):
+
+    def testParse(self):
+        reader = vcf.Reader(fh('1kg.vcf.gz', 'rb'))
+
+        assert 'FORMAT' in reader._column_headers
+
+        self.assertEqual(len(reader.samples), 629)
+        for _ in reader:
+            pass
+
+    def test_issue_49(self):
+        """docstring for test_issue_49"""
+        reader = vcf.Reader(fh('issue_49.vcf', 'r'))
+
+        self.assertEqual(len(reader.samples), 0)
+        for _ in reader:
+            pass
+
+
+class Test1kgSites(unittest.TestCase):
+
+    def test_reader(self):
+        """The samples attribute should be the empty list."""
+        reader = vcf.Reader(fh('1kg.sites.vcf', 'r'))
+
+        assert 'FORMAT' not in reader._column_headers
+
+        self.assertEqual(reader.samples, [])
+        for record in reader:
+            self.assertEqual(record.samples, [])
+
+    def test_writer(self):
+        """FORMAT should not be written if not present in the template and no
+        extra tab character should be printed if there are no FORMAT fields."""
+        reader = vcf.Reader(fh('1kg.sites.vcf', 'r'))
+        out = StringIO()
+        writer = vcf.Writer(out, reader, lineterminator='\n')
+
+        for record in reader:
+            writer.write_record(record)
+        out.seek(0)
+        out_str = out.getvalue()
+        for line in out_str.split('\n'):
+            if line.startswith('##'):
+                continue
+            if line.startswith('#CHROM'):
+                assert 'FORMAT' not in line
+            assert not line.endswith('\t')
+
+
+class TestGoNL(unittest.TestCase):
+
+    def testParse(self):
+        reader = vcf.Reader(fh('gonl.chr20.release4.gtc.vcf'))
+        for _ in reader:
+            pass
+
+    def test_contig_line(self):
+        reader = vcf.Reader(fh('gonl.chr20.release4.gtc.vcf'))
+        self.assertEqual(reader.contigs['1'].length, 249250621)
+
+
+class TestInfoOrder(unittest.TestCase):
+
+    def _assert_order(self, definitions, fields):
+        """
+        Elements common to both lists should be in the same order. Elements
+        only in `fields` should be last and in alphabetical order.
+        """
+        used_definitions = [d for d in definitions if d in fields]
+        self.assertEqual(used_definitions, fields[:len(used_definitions)])
+        self.assertEqual(fields[len(used_definitions):],
+                         sorted(fields[len(used_definitions):]))
+
+    def test_writer(self):
+        """
+        Order of INFO fields should be compatible with the order of their
+        definition in the header and undefined fields should be last and in
+        alphabetical order.
+        """
+        reader = vcf.Reader(fh('1kg.sites.vcf', 'r'))
+        out = StringIO()
+        writer = vcf.Writer(out, reader, lineterminator='\n')
+
+        for record in reader:
+            writer.write_record(record)
+        out.seek(0)
+        out_str = out.getvalue()
+
+        definitions = []
+        for line in out_str.split('\n'):
+            if line.startswith('##INFO='):
+                definitions.append(line.split('ID=')[1].split(',')[0])
+            if not line or line.startswith('#'):
+                continue
+            fields = [f.split('=')[0] for f in line.split('\t')[7].split(';')]
+            self._assert_order(definitions, fields)
+
+
+class TestInfoTypeCharacter(unittest.TestCase):
+    def test_parse(self):
+        reader = vcf.Reader(fh('info-type-character.vcf'))
+        record = next(reader)
+        self.assertEqual(record.INFO['FLOAT_1'], 123.456)
+        self.assertEqual(record.INFO['CHAR_1'], 'Y')
+        self.assertEqual(record.INFO['FLOAT_N'], [123.456])
+        self.assertEqual(record.INFO['CHAR_N'], ['Y'])
+
+    def test_write(self):
+        reader = vcf.Reader(fh('info-type-character.vcf'))
+        out = StringIO()
+        writer = vcf.Writer(out, reader)
+
+        records = list(reader)
+
+        for record in records:
+            writer.write_record(record)
+        out.seek(0)
+        reader2 = vcf.Reader(out)
+
+        for l, r in zip(records, reader2):
+            self.assertEquals(l.INFO, r.INFO)
+
+
+class TestGatkOutputWriter(unittest.TestCase):
+
+    def testWrite(self):
+
+        reader = vcf.Reader(fh('gatk.vcf'))
+        out = StringIO()
+        writer = vcf.Writer(out, reader)
+
+        records = list(reader)
+
+        for record in records:
+            writer.write_record(record)
+        out.seek(0)
+        out_str = out.getvalue()
+        for line in out_str.split("\n"):
+            if line.startswith("##contig"):
+                assert line.startswith('##contig=<'), "Found dictionary in contig line: {0}".format(line)
+        print (out_str)
+        reader2 = vcf.Reader(out)
+
+        self.assertEquals(reader.samples, reader2.samples)
+        self.assertEquals(reader.formats, reader2.formats)
+        self.assertEquals(reader.infos, reader2.infos)
+        self.assertEquals(reader.contigs, reader2.contigs)
+
+        for l, r in zip(records, reader2):
+            self.assertEquals(l.samples, r.samples)
+
+            # test for call data equality, since equality on the sample calls
+            # may not always mean their data are all equal
+            for l_call, r_call in zip(l.samples, r.samples):
+                self.assertEqual(l_call.data, r_call.data)
+
+
+class TestBcfToolsOutputWriter(unittest.TestCase):
+
+    def testWrite(self):
+
+        reader = vcf.Reader(fh('bcftools.vcf'))
+        out = StringIO()
+        writer = vcf.Writer(out, reader)
+
+        records = list(reader)
+
+        for record in records:
+            writer.write_record(record)
+        out.seek(0)
+        print (out.getvalue())
+        reader2 = vcf.Reader(out)
+
+        self.assertEquals(reader.samples, reader2.samples)
+        self.assertEquals(reader.formats, reader2.formats)
+        self.assertEquals(reader.infos, reader2.infos)
+
+        for l, r in zip(records, reader2):
+            self.assertEquals(l.samples, r.samples)
+
+            # test for call data equality, since equality on the sample calls
+            # may not always mean their data are all equal
+            for l_call, r_call in zip(l.samples, r.samples):
+                self.assertEqual(l_call.data, r_call.data)
+
+
+class TestWriterDictionaryMeta(unittest.TestCase):
+
+    def testWrite(self):
+
+        reader = vcf.Reader(fh('example-4.1-bnd.vcf'))
+        out = StringIO()
+        writer = vcf.Writer(out, reader)
+
+        records = list(reader)
+
+        for record in records:
+            writer.write_record(record)
+        out.seek(0)
+        out_str = out.getvalue()
+        for line in out_str.split("\n"):
+            if line.startswith("##PEDIGREE"):
+                self.assertEquals(line, '##PEDIGREE=<Derived="Tumor",Original="Germline">')
+            if line.startswith("##SAMPLE"):
+                assert line.startswith('##SAMPLE=<'), "Found dictionary in meta line: {0}".format(line)
+
+
+class TestSamplesSpace(unittest.TestCase):
+    filename = 'samples-space.vcf'
+    samples = ['NA 00001', 'NA 00002', 'NA 00003']
+    def test_samples(self):
+        self.reader = vcf.Reader(fh(self.filename), strict_whitespace=True)
+        self.assertEqual(self.reader.samples, self.samples)
+
+
+class TestMixedFiltering(unittest.TestCase):
+    filename = 'mixed-filtering.vcf'
+    def test_mixed_filtering(self):
+        """
+        Test mix of FILTER values (pass, filtered, no filtering).
+        """
+        reader = vcf.Reader(fh(self.filename))
+        self.assertEqual(next(reader).FILTER, [])
+        self.assertEqual(next(reader).FILTER, ['q10'])
+        self.assertEqual(next(reader).FILTER, [])
+        self.assertEqual(next(reader).FILTER, None)
+        self.assertEqual(next(reader).FILTER, ['q10', 'q50'])
+
+
+class TestRecord(unittest.TestCase):
+
+    def test_num_calls(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            num_calls = (var.num_hom_ref + var.num_hom_alt + \
+                         var.num_het + var.num_unknown)
+            self.assertEqual(len(var.samples), num_calls)
+
+    def test_dunder_eq(self):
+        rec = vcf.Reader(fh('example-4.0.vcf')).next()
+        self.assertFalse(rec == None)
+        self.assertFalse(None == rec)
+
+    def test_call_rate(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            call_rate = var.call_rate
+            if var.POS == 14370:
+                self.assertEqual(3.0/3.0, call_rate)
+            if var.POS == 17330:
+                self.assertEqual(3.0/3.0, call_rate)
+            if var.POS == 1110696:
+                self.assertEqual(3.0/3.0, call_rate)
+            if var.POS == 1230237:
+                self.assertEqual(3.0/3.0, call_rate)
+            elif var.POS == 1234567:
+                self.assertEqual(2.0/3.0, call_rate)
+
+    def test_aaf(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            aaf = var.aaf
+            if var.POS == 14370:
+                self.assertEqual([3.0/6.0], aaf)
+            if var.POS == 17330:
+                self.assertEqual([1.0/6.0], aaf)
+            if var.POS == 1110696:
+                self.assertEqual([2.0/6.0, 4.0/6.0], aaf)
+            if var.POS == 1230237:
+                self.assertEqual([0.0/6.0], aaf)
+            elif var.POS == 1234567:
+                self.assertEqual([2.0/4.0, 1.0/4.0], aaf)
+
+    def test_pi(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            pi = var.nucl_diversity
+            if var.POS == 14370:
+                self.assertEqual(6.0/10.0, pi)
+            if var.POS == 17330:
+                self.assertEqual(1.0/3.0, pi)
+            if var.POS == 1110696:
+                self.assertEqual(None, pi)
+            if var.POS == 1230237:
+                self.assertEqual(0.0/6.0, pi)
+            elif var.POS == 1234567:
+                self.assertEqual(None, pi)
+
+    def test_heterozygosity(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            het = var.heterozygosity
+            if var.POS == 14370:
+                self.assertEqual(0.5, het)
+            if var.POS == 17330:
+                self.assertEqual(1-((1.0/6)**2 + (5.0/6)**2), het)
+            if var.POS == 1110696:
+                self.assertEqual(4.0/9.0, het)
+            if var.POS == 1230237:
+                self.assertEqual(0.0, het)
+            elif var.POS == 1234567:
+                self.assertEqual(5.0/8.0, het)
+
+    def test_is_snp(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for r in reader:
+            print(r)
+            for c in r:
+                print(c)
+                assert c
+        for var in reader:
+            is_snp = var.is_snp
+            if var.POS == 14370:
+                self.assertEqual(True, is_snp)
+            if var.POS == 17330:
+                self.assertEqual(True, is_snp)
+            if var.POS == 1110696:
+                self.assertEqual(True, is_snp)
+            if var.POS == 1230237:
+                self.assertEqual(False, is_snp)
+            elif var.POS == 1234567:
+                self.assertEqual(False, is_snp)
+
+    def test_is_indel(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            is_indel = var.is_indel
+            if var.POS == 14370:
+                self.assertEqual(False, is_indel)
+            if var.POS == 17330:
+                self.assertEqual(False, is_indel)
+            if var.POS == 1110696:
+                self.assertEqual(False, is_indel)
+            if var.POS == 1230237:
+                self.assertEqual(True, is_indel)
+            elif var.POS == 1234567:
+                self.assertEqual(True, is_indel)
+
+    def test_is_transition(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            is_trans = var.is_transition
+            if var.POS == 14370:
+                self.assertEqual(True, is_trans)
+            if var.POS == 17330:
+                self.assertEqual(False, is_trans)
+            if var.POS == 1110696:
+                self.assertEqual(False, is_trans)
+            if var.POS == 1230237:
+                self.assertEqual(False, is_trans)
+            elif var.POS == 1234567:
+                self.assertEqual(False, is_trans)
+
+    def test_is_deletion(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            is_del = var.is_deletion
+            if var.POS == 14370:
+                self.assertEqual(False, is_del)
+            if var.POS == 17330:
+                self.assertEqual(False, is_del)
+            if var.POS == 1110696:
+                self.assertEqual(False, is_del)
+            if var.POS == 1230237:
+                self.assertEqual(True, is_del)
+            elif var.POS == 1234567:
+                self.assertEqual(False, is_del)
+
+    def test_var_type(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            type = var.var_type
+            if var.POS == 14370:
+                self.assertEqual("snp", type)
+            if var.POS == 17330:
+                self.assertEqual("snp", type)
+            if var.POS == 1110696:
+                self.assertEqual("snp", type)
+            if var.POS == 1230237:
+                self.assertEqual("indel", type)
+            elif var.POS == 1234567:
+                self.assertEqual("indel", type)
+        # SV tests
+        reader = vcf.Reader(fh('example-4.1-sv.vcf'))
+        for var in reader:
+            type = var.var_type
+            if var.POS == 2827693:
+                self.assertEqual("sv", type)
+            if var.POS == 321682:
+                self.assertEqual("sv", type)
+            if var.POS == 14477084:
+                self.assertEqual("sv", type)
+            if var.POS == 9425916:
+                self.assertEqual("sv", type)
+            elif var.POS == 12665100:
+                self.assertEqual("sv", type)
+            elif var.POS == 18665128:
+                self.assertEqual("sv", type)
+
+
+    def test_var_subtype(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            subtype = var.var_subtype
+            if var.POS == 14370:
+                self.assertEqual("ts", subtype)
+            if var.POS == 17330:
+                self.assertEqual("tv", subtype)
+            if var.POS == 1110696:
+                self.assertEqual("unknown", subtype)
+            if var.POS == 1230237:
+                self.assertEqual("del", subtype)
+            elif var.POS == 1234567:
+                self.assertEqual("unknown", subtype)
+        # SV tests
+        reader = vcf.Reader(fh('example-4.1-sv.vcf'))
+        for var in reader:
+            subtype = var.var_subtype
+            if var.POS == 2827693:
+                self.assertEqual("DEL", subtype)
+            if var.POS == 321682:
+                self.assertEqual("DEL", subtype)
+            if var.POS == 14477084:
+                self.assertEqual("DEL:ME:ALU", subtype)
+            if var.POS == 9425916:
+                self.assertEqual("INS:ME:L1", subtype)
+            elif var.POS == 12665100:
+                self.assertEqual("DUP", subtype)
+            elif var.POS == 18665128:
+                self.assertEqual("DUP:TANDEM", subtype)
+
+    def test_is_sv(self):
+        reader = vcf.Reader(fh('example-4.1-sv.vcf'))
+        for var in reader:
+            is_sv = var.is_sv
+            if var.POS == 2827693:
+                self.assertEqual(True, is_sv)
+            if var.POS == 321682:
+                self.assertEqual(True, is_sv)
+            if var.POS == 14477084:
+                self.assertEqual(True, is_sv)
+            if var.POS == 9425916:
+                self.assertEqual(True, is_sv)
+            elif var.POS == 12665100:
+                self.assertEqual(True, is_sv)
+            elif var.POS == 18665128:
+                self.assertEqual(True, is_sv)
+
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            is_sv = var.is_sv
+            if var.POS == 14370:
+                self.assertEqual(False, is_sv)
+            if var.POS == 17330:
+                self.assertEqual(False, is_sv)
+            if var.POS == 1110696:
+                self.assertEqual(False, is_sv)
+            if var.POS == 1230237:
+                self.assertEqual(False, is_sv)
+            elif var.POS == 1234567:
+                self.assertEqual(False, is_sv)
+
+    def test_is_sv_precise(self):
+        reader = vcf.Reader(fh('example-4.1-sv.vcf'))
+        for var in reader:
+            is_precise = var.is_sv_precise
+            if var.POS == 2827693:
+                self.assertEqual(True, is_precise)
+            if var.POS == 321682:
+                self.assertEqual(False, is_precise)
+            if var.POS == 14477084:
+                self.assertEqual(False, is_precise)
+            if var.POS == 9425916:
+                self.assertEqual(False, is_precise)
+            elif var.POS == 12665100:
+                self.assertEqual(False, is_precise)
+            elif var.POS == 18665128:
+                self.assertEqual(False, is_precise)
+
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            is_precise = var.is_sv_precise
+            if var.POS == 14370:
+                self.assertEqual(False, is_precise)
+            if var.POS == 17330:
+                self.assertEqual(False, is_precise)
+            if var.POS == 1110696:
+                self.assertEqual(False, is_precise)
+            if var.POS == 1230237:
+                self.assertEqual(False, is_precise)
+            elif var.POS == 1234567:
+                self.assertEqual(False, is_precise)
+
+    def test_sv_end(self):
+        reader = vcf.Reader(fh('example-4.1-sv.vcf'))
+        for var in reader:
+            sv_end = var.sv_end
+            if var.POS == 2827693:
+                self.assertEqual(2827680, sv_end)
+            if var.POS == 321682:
+                self.assertEqual(321887, sv_end)
+            if var.POS == 14477084:
+                self.assertEqual(14477381, sv_end)
+            if var.POS == 9425916:
+                self.assertEqual(9425916, sv_end)
+            elif var.POS == 12665100:
+                self.assertEqual(12686200, sv_end)
+            elif var.POS == 18665128:
+                self.assertEqual(18665204, sv_end)
+
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            sv_end = var.sv_end
+            if var.POS == 14370:
+                self.assertEqual(None, sv_end)
+            if var.POS == 17330:
+                self.assertEqual(None, sv_end)
+            if var.POS == 1110696:
+                self.assertEqual(None, sv_end)
+            if var.POS == 1230237:
+                self.assertEqual(None, sv_end)
+            elif var.POS == 1234567:
+                self.assertEqual(None, sv_end)
+
+    def test_qual(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            qual = var.QUAL
+            qtype = type(qual)
+            if var.POS == 14370:
+                expected = 29
+            if var.POS == 17330:
+                expected = 3.0
+            if var.POS == 1110696:
+                expected = 1e+03
+            if var.POS == 1230237:
+                expected = 47
+            elif var.POS == 1234567:
+                expected = None
+            self.assertEqual(expected, qual)
+            self.assertEqual(type(expected), qtype)
+
+    def test_info_multiple_values(self):
+        reader = vcf.Reader(fh('example-4.1-info-multiple-values.vcf'))
+        var = reader.next()
+        # check Float type INFO field with multiple values
+        expected = [19.3, 47.4, 14.0]
+        actual = var.INFO['RepeatCopies']
+        self.assertEqual(expected, actual)
+        # check Integer type INFO field with multiple values
+        expected = [42, 14, 56]
+        actual = var.INFO['RepeatSize']
+        self.assertEqual(expected, actual)
+        # check String type INFO field with multiple values
+        expected = ['TCTTATCTTCTTACTTTTCATTCCTTACTCTTACTTACTTAC', 'TTACTCTTACTTAC', 'TTACTCTTACTTACTTACTCTTACTTACTTACTCTTACTTACTTACTCTTATCTTC']
+        actual = var.INFO['RepeatConsensus']
+        self.assertEqual(expected, actual)
+
+    def test_pickle(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            self.assertEqual(cPickle.loads(cPickle.dumps(var)), var)
+
+
+class TestCall(unittest.TestCase):
+
+    def test_dunder_eq(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        var = reader.next()
+        example_call = var.samples[0]
+        self.assertFalse(example_call == None)
+        self.assertFalse(None == example_call)
+
+    def test_phased(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            phases = [s.phased for s in var.samples]
+            if var.POS == 14370:
+                self.assertEqual([True, True, False], phases)
+            if var.POS == 17330:
+                self.assertEqual([True, True, False], phases)
+            if var.POS == 1110696:
+                self.assertEqual([True, True, False], phases)
+            if var.POS == 1230237:
+                self.assertEqual([True, True, False], phases)
+            elif var.POS == 1234567:
+                self.assertEqual([False, False, False], phases)
+
+    def test_gt_bases(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            gt_bases = [s.gt_bases for s in var.samples]
+            if var.POS == 14370:
+                self.assertEqual(['G|G', 'A|G', 'A/A'], gt_bases)
+            elif var.POS == 17330:
+                self.assertEqual(['T|T', 'T|A', 'T/T'], gt_bases)
+            elif var.POS == 1110696:
+                self.assertEqual(['G|T', 'T|G', 'T/T'], gt_bases)
+            elif var.POS == 1230237:
+                self.assertEqual(['T|T', 'T|T', 'T/T'], gt_bases)
+            elif var.POS == 1234567:
+                self.assertEqual([None, 'GTCT/GTACT', 'G/G'], gt_bases)
+
+    def test_gt_types(self):
+        reader = vcf.Reader(fh('example-4.0.vcf'))
+        for var in reader:
+            for s in var:
+                print(s.data)
+            gt_types = [s.gt_type for s in var.samples]
+            if var.POS == 14370:
+                self.assertEqual([0,1,2], gt_types)
+            elif var.POS == 17330:
+                self.assertEqual([0,1,0], gt_types)
+            elif var.POS == 1110696:
+                self.assertEqual([1,1,2], gt_types)
+            elif var.POS == 1230237:
+                self.assertEqual([0,0,0], gt_types)
+            elif var.POS == 1234567:
+                self.assertEqual([None,1,2], gt_types)
+
+
+class TestTabix(unittest.TestCase):
+
+    def setUp(self):
+        self.reader = vcf.Reader(fh('tb.vcf.gz', 'rb'))
+
+        self.run = vcf.parser.pysam is not None
+
+
+    def testFetchRange(self):
+        if not self.run:
+            return
+        lines = list(self.reader.fetch('20', 14370, 14370))
+        self.assertEquals(len(lines), 1)
+        self.assertEqual(lines[0].POS, 14370)
+
+        lines = list(self.reader.fetch('20', 14370, 17330))
+        self.assertEquals(len(lines), 2)
+        self.assertEqual(lines[0].POS, 14370)
+        self.assertEqual(lines[1].POS, 17330)
+
+
+        lines = list(self.reader.fetch('20', 1110695, 1234567))
+        self.assertEquals(len(lines), 3)
+
+    def testFetchSite(self):
+        if not self.run:
+            return
+        site = self.reader.fetch('20', 14370)
+        self.assertEqual(site.POS, 14370)
+
+        site = self.reader.fetch('20', 14369)
+        assert site is None
+
+
+
+
+class TestOpenMethods(unittest.TestCase):
+
+    samples = 'NA00001 NA00002 NA00003'.split()
+
+    def fp(self, fname):
+        return os.path.join(os.path.dirname(__file__), fname)
+
+
+    def testOpenFilehandle(self):
+        r = vcf.Reader(fh('example-4.0.vcf'))
+        self.assertEqual(self.samples, r.samples)
+        self.assertEqual('example-4.0.vcf', os.path.split(r.filename)[1])
+
+    def testOpenFilename(self):
+        r = vcf.Reader(filename=self.fp('example-4.0.vcf'))
+        self.assertEqual(self.samples, r.samples)
+
+    def testOpenFilehandleGzipped(self):
+        r = vcf.Reader(fh('tb.vcf.gz', 'rb'))
+        self.assertEqual(self.samples, r.samples)
+
+    def testOpenFilenameGzipped(self):
+        r = vcf.Reader(filename=self.fp('tb.vcf.gz'))
+        self.assertEqual(self.samples, r.samples)
+
+
+class TestFilter(unittest.TestCase):
+
+
+    def testApplyFilter(self):
+        # FIXME: broken with distribute
+        return
+        s, out = commands.getstatusoutput('python scripts/vcf_filter.py --site-quality 30 test/example-4.0.vcf sq')
+        #print(out)
+        self.assertEqual(s, 0)
+        buf = StringIO()
+        buf.write(out)
+        buf.seek(0)
+
+        print(buf.getvalue())
+        reader = vcf.Reader(buf)
+
+
+        # check filter got into output file
+        assert 'sq30' in reader.filters
+
+        print(reader.filters)
+
+        # check sites were filtered
+        n = 0
+        for r in reader:
+            if r.QUAL < 30:
+                assert 'sq30' in r.FILTER
+                n += 1
+            else:
+                assert 'sq30' not in r.FILTER
+        self.assertEqual(n, 2)
+
+
+    def testApplyMultipleFilters(self):
+        # FIXME: broken with distribute
+        return
+        s, out = commands.getstatusoutput('python scripts/vcf_filter.py --site-quality 30 '
+        '--genotype-quality 50 test/example-4.0.vcf sq mgq')
+        self.assertEqual(s, 0)
+        #print(out)
+        buf = StringIO()
+        buf.write(out)
+        buf.seek(0)
+        reader = vcf.Reader(buf)
+
+        print(reader.filters)
+
+        assert 'mgq50' in reader.filters
+        assert 'sq30' in reader.filters
+
+
+class TestRegression(unittest.TestCase):
+
+    def test_issue_16(self):
+        reader = vcf.Reader(fh('issue-16.vcf'))
+        n = reader.next()
+        assert n.QUAL == None
+
+    def test_null_mono(self):
+        # null qualities were written as blank, causing subsequent parse to fail
+        print(os.path.abspath(os.path.join(os.path.dirname(__file__),  'null_genotype_mono.vcf') ))
+        p = vcf.Reader(fh('null_genotype_mono.vcf'))
+        assert p.samples
+        out = StringIO()
+        writer = vcf.Writer(out, p)
+        for record in p:
+            writer.write_record(record)
+        out.seek(0)
+        print(out.getvalue())
+        p2 = vcf.Reader(out)
+        rec = p2.next()
+        assert rec.samples
+
+
+class TestUtils(unittest.TestCase):
+
+    def test_walk(self):
+        # easy case: all same sites
+        reader1 = vcf.Reader(fh('example-4.0.vcf'))
+        reader2 = vcf.Reader(fh('example-4.0.vcf'))
+        reader3 = vcf.Reader(fh('example-4.0.vcf'))
+
+        n = 0
+        for x in utils.walk_together(reader1, reader2, reader3):
+            self.assertEqual(len(x), 3)
+            self.assertEqual(x[0], x[1])
+            self.assertEqual(x[1], x[2])
+            n+= 1
+        self.assertEqual(n, 5)
+
+        # artificial case 2 from the left, 2 from the right, 2 together, 1 from the right, 1 from the left
+        expected = 'llrrttrl'
+        reader1 = vcf.Reader(fh('walk_left.vcf'))
+        reader2 = vcf.Reader(fh('example-4.0.vcf'))
+
+        for ex, recs in zip(expected, utils.walk_together(reader1, reader2)):
+            if ex == 'l':
+                assert recs[0] is not None
+                assert recs[1] is None
+            if ex == 'r':
+                assert recs[1] is not None
+                assert recs[0] is None
+            if ex == 't':
+                assert recs[0] is not None
+                assert recs[1] is not None
+
+        # test files with many chromosomes, set 'vcf_record_sort_key' to define chromosome order
+        chr_order = map(str, range(1, 30)) + ['X', 'Y', 'M']
+        get_key = lambda r: (chr_order.index(r.CHROM.replace('chr','')), r.POS)
+        reader1 = vcf.Reader(fh('issue-140-file1.vcf'))
+        reader2 = vcf.Reader(fh('issue-140-file2.vcf'))
+        reader3 = vcf.Reader(fh('issue-140-file3.vcf'))
+        expected = "66642577752767662466" # each char is an integer bit flag - like file permissions
+        for ex, recs in zip(expected, utils.walk_together(reader1, reader2, reader3, vcf_record_sort_key = get_key)):
+            ex = int(ex)
+            for i, flag in enumerate([0x4, 0x2, 0x1]):
+                if ex & flag:
+                     self.assertNotEqual(recs[i], None)
+                else:
+                     self.assertEqual(recs[i], None)
+
+    def test_trim(self):
+        tests = [('TAA GAA', 'T G'),
+                 ('TA TA', 'T T'),
+                 ('AGTTTTTA AGTTTA', 'AGTT AG'),
+                 ('TATATATA TATATA', 'TAT T'),
+                 ('TATATA TATATATA', 'T TAT'),
+                 ('ACCCCCCC ACCCCCCCCCC ACCCCCCCCC ACCCCCCCCCCC', 'A ACCC ACC ACCCC')]
+        for sequences, expected in tests:
+            self.assertEqual(utils.trim_common_suffix(*sequences.split()),
+                             expected.split())
+
+
+
+class TestGATKMeta(unittest.TestCase):
+
+    def test_meta(self):
+        # expect no exceptions raised
+        reader = vcf.Reader(fh('gatk_26_meta.vcf'))
+        assert 'GATKCommandLine' in reader.metadata
+        self.assertEqual(reader.metadata['GATKCommandLine'][0]['CommandLineOptions'], '"analysis_type=LeftAlignAndTrimVariants"')
+        self.assertEqual(reader.metadata['GATKCommandLine'][1]['CommandLineOptions'], '"analysis_type=VariantAnnotator annotation=[HomopolymerRun, VariantType, TandemRepeatAnnotator]"')
+
+
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestVcfSpecs))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestGatkOutput))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestFreebayesOutput))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestSamtoolsOutput))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestBcfToolsOutput))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Test1kg))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Test1kgSites))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestGoNL))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestInfoOrder))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestInfoTypeCharacter))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestGatkOutputWriter))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestBcfToolsOutputWriter))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestWriterDictionaryMeta))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestSamplesSpace))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestMixedFiltering))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestRecord))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestCall))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestTabix))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestOpenMethods))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestFilter))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestRegression))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestUtils))
+suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestGATKMeta))
diff --git a/vcf/test/uncalled_genotypes.vcf b/vcf/test/uncalled_genotypes.vcf
new file mode 100644
index 0000000..2032097
--- /dev/null
+++ b/vcf/test/uncalled_genotypes.vcf
@@ -0,0 +1,7 @@
+##fileformat=VCFv4.2
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	AB00001	AB00002	AB00003
+20	14370	rs6054257	G	A	29	PASS	NS=3	GT	0|0	./.	1/1
+20	17330	.	T	A	3	q10	NS=3	GT	././.	0|1	0/0
+20	1234567	microsat1	GTC	G,GTCT	50	PASS	NS=3	GT	0/1	0/2	.
diff --git a/vcf/test/walk_left.vcf b/vcf/test/walk_left.vcf
new file mode 100644
index 0000000..c910432
--- /dev/null
+++ b/vcf/test/walk_left.vcf
@@ -0,0 +1,24 @@
+##fileformat=VCFv4.0
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=1000GenomesPilot-NCBI36
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+19	14370	rs6054257	G	A	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5:.,.
+19	17330	.	T	A	3	q10	NS=3;DP=11;AF=0.017	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3:65,3
+20	1110696	rs6040355	A	G,T	67	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	1|2:21:6:23,27	2|1:2:0:18,2	2/2:35:4:65,4
+20	1230237	.	T	.	47	PASS	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2:65,3
+21	1234567	microsat1	GTCT	G,GTACT	50	PASS	NS=3;DP=9;AA=G	GT:GQ:DP	./.:35:4	0/2:17:2	1/1:40:3
diff --git a/vcf/test/walk_refcall.vcf b/vcf/test/walk_refcall.vcf
new file mode 100644
index 0000000..e93aeff
--- /dev/null
+++ b/vcf/test/walk_refcall.vcf
@@ -0,0 +1,22 @@
+##fileformat=VCFv4.0
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=1000GenomesPilot-NCBI36
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
+20	14370	rs6054257	G	.	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	0|0:48:8:51,51	0/0:43:5:.,.
+20	17330	.	T	.	3.0	q10	NS=3;DP=11;AF=0.017	GT:GQ:DP:HQ	0|0:49:3:58,50	0|0:3:5:65,3	0/0:41:3
+20	1110696	rs6040355	A	.	1e+03	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	0|0:21:6:23,27	0|0:2:0:18,2	0/0:35:4
+20	1230237	.	T	.	47	PASS	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2
diff --git a/vcf/utils.py b/vcf/utils.py
new file mode 100644
index 0000000..456e5fa
--- /dev/null
+++ b/vcf/utils.py
@@ -0,0 +1,86 @@
+"""
+Utilities for VCF files.
+"""
+
+def walk_together(*readers, **kwargs):
+    """
+    Simultaneously iteratate over two or more VCF readers. For each 
+    genomic position with a variant, return a list of size equal to the number 
+    of VCF readers. This list contains the VCF record from readers that have
+    this variant, and None for readers that don't have it. 
+    The caller must make sure that inputs are sorted in the same way and use the 
+    same reference otherwise behaviour is undefined.
+
+    Args:
+        vcf_record_sort_key: function that takes a VCF record and returns a 
+            tuple that can be used as a key for comparing and sorting VCF 
+            records across all readers. This tuple defines what it means for two 
+            variants to be equal (eg. whether it's only their position or also 
+            their allele values), and implicitly determines the chromosome 
+            ordering since the tuple's 1st element is typically the chromosome 
+            name (or calculated from it).
+    """
+    if 'vcf_record_sort_key' in kwargs:
+        get_key = kwargs['vcf_record_sort_key']
+    else:
+        get_key = lambda r: (r.CHROM, r.POS) #, r.REF, r.ALT)
+
+    nexts = []
+    for reader in readers:
+        try:
+            nexts.append(reader.next())
+        except StopIteration:
+            nexts.append(None)
+
+    min_k = (None,)   # keep track of the previous min key's contig
+    while any([r is not None for r in nexts]):
+        next_idx_to_k = dict(
+            (i, get_key(r)) for i, r in enumerate(nexts) if r is not None)
+        keys_with_prev_contig = [
+            k for k in next_idx_to_k.values() if k[0] == min_k[0]]
+
+        if any(keys_with_prev_contig):
+            min_k = min(keys_with_prev_contig)   # finish previous contig
+        else:
+            min_k = min(next_idx_to_k.values())   # move on to next contig
+
+        min_k_idxs = set([i for i, k in next_idx_to_k.items() if k == min_k])
+        yield [nexts[i] if i in min_k_idxs else None for i in range(len(nexts))]
+
+        for i in min_k_idxs:
+            try:
+                nexts[i] = readers[i].next()
+            except StopIteration:
+                nexts[i] = None
+
+
+def trim_common_suffix(*sequences):
+    """
+    Trim a list of sequences by removing the longest common suffix while
+    leaving all of them at least one character in length.
+
+    Standard convention with VCF is to place an indel at the left-most
+    position, but some tools add additional context to the right of the
+    sequences (e.g. samtools). These common suffixes are undesirable when
+    comparing variants, for example in variant databases.
+
+        >>> trim_common_suffix('TATATATA', 'TATATA')
+        ['TAT', 'T']
+
+        >>> trim_common_suffix('ACCCCC', 'ACCCCCCCC', 'ACCCCCCC', 'ACCCCCCCCC')
+        ['A', 'ACCC', 'ACC', 'ACCCC']
+
+    """
+    if not sequences:
+        return []
+    reverses = [seq[::-1] for seq in sequences]
+    rev_min = min(reverses)
+    rev_max = max(reverses)
+    if len(rev_min) < 2:
+        return sequences
+    for i, c in enumerate(rev_min[:-1]):
+        if c != rev_max[i]:
+            if i == 0:
+                return sequences
+            return [seq[:-i] for seq in sequences]
+    return [seq[:-(i + 1)] for seq in sequences]

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



More information about the debian-med-commit mailing list