diff --git a/.github/workflows/ci_test.yml b/.github/workflows/ci_test.yml index b1721156..f9dd4ddb 100644 --- a/.github/workflows/ci_test.yml +++ b/.github/workflows/ci_test.yml @@ -3,14 +3,14 @@ on: [push, pull_request] jobs: arch: name: vcflib-CI - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' - runs-on: ubuntu-latest - strategy: matrix: - os: [ubuntu-latest] - python-version: [3.8] + include: + - os: ubuntu-24.04 + python-version: "3.13" + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' + runs-on: ${{ matrix.os }} steps: - name: apt update run: sudo apt-get -o Acquire::Retries=3 update @@ -21,18 +21,21 @@ jobs: libtabixpp-dev libtabixpp0 pybind11-dev + - name: install libbz2-dev for 24.04 + if: matrix.os == 'ubuntu-24.04' + run: sudo apt-get -o Acquire::Retries=3 install -y -V libbz2-dev # needed for ubuntu 24.04 - uses: actions/checkout@v3 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: install zig using wget run: | - wget -q https://ziglang.org/download/0.13.0/zig-linux-x86_64-0.13.0.tar.xz - tar xf zig-linux-x86_64-*.tar.xz - ./zig-linux-x86_64-*/zig version + wget -q https://ziglang.org/download/0.15.2/zig-x86_64-linux-0.15.2.tar.xz + tar xf zig-x86_64-*.tar.xz + ./zig-x86_64-*/zig version pwd - ls -l zig-linux-* - echo "$(pwd)/zig-linux-x86_64-0.13.0" >> $GITHUB_PATH + ls -l zig-* + echo "$(pwd)/zig-x86_64-linux-0.15.2" >> $GITHUB_PATH # echo "$(pwd)/zig-linux-x86_64-*" >> $GITHUB_PATH # echo "::add-path::./zig-linux*" echo GITHUB_PATH=$GITHUB_PATH @@ -42,8 +45,8 @@ jobs: run: git submodule update --init --recursive - name: Configure run: | - echo $(pwd)/zig-linux-x86_64-* >> $GITHUB_PATH - echo "$(pwd)/zig-linux-x86_64-0.13.0" >> $GITHUB_PATH + echo $(pwd)/zig-x86_64-* >> $GITHUB_PATH + echo "$(pwd)/zig-x86_64-linux-0.15.2" >> $GITHUB_PATH echo GITHUB_PATH=$GITHUB_PATH echo PATH=$PATH zig version diff --git a/.gitignore b/.gitignore index e47775a4..a2a40cba 100644 --- a/.gitignore +++ b/.gitignore @@ -135,3 +135,8 @@ paper/plos_latex_template.blg paper/plos_latex_template.out src/zig/.zig-cache/ zig-linux-x86_64-*/ +src/zig/b/ +src/zig/h/ +src/zig/o/ +src/zig/z/ + diff --git a/CMakeLists.txt b/CMakeLists.txt index 17b46a52..28730a61 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ # For Debian currently with # # cd build -# cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DZIG=OFF .. +# cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. # cmake --build . # ctest . # cmake --install . @@ -9,29 +9,28 @@ cmake_minimum_required(VERSION 3.16) project(vcflib) -set(CMAKE_CXX_STANDARD 17) +enable_testing() +set(CMAKE_CXX_STANDARD 17) include(ExternalProject) include(FeatureSummary) include(GNUInstallDirs) +find_package(BZip2 REQUIRED) # htslib +find_package(LibLZMA REQUIRED) # htslib find_package(PkgConfig REQUIRED) +find_package(ZLIB REQUIRED) find_package(pybind11 CONFIG) include(GNUInstallDirs) -include(FindBZip2) -include(FindLibLZMA) -include(FindZLIB) -include(FindCURL) # for htslib feature_summary( FATAL_ON_MISSING_REQUIRED_PACKAGES WHAT REQUIRED_PACKAGES_NOT_FOUND) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) # for pybind11 - # ---- Options +option(BUILD_STATIC "Build static binary" OFF) option(BUILD_DOC "Build documentation" ON) option(OPENMP "Enable OpenMP" ON) # disabling does not work because of vcfwave option(PROFILING "Enable profiling" OFF) @@ -44,6 +43,14 @@ check_ipo_supported(RESULT ipo_supported OUTPUT output) set(EXTRA_FLAGS " ") # otherwise it injects OFF +if (BUILD_STATIC) + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_POSITION_INDEPENDENT_CODE OFF) +else () + set(BUILD_SHARED_LIBS ON) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) # for pybind11 +endif () + # ---- Dependencies if(OPENMP) @@ -59,7 +66,6 @@ pkg_check_modules(htslib IMPORTED_TARGET htslib) # Optionally builds from cont pkg_check_modules(tabixpp IMPORTED_TARGET tabixpp) # Optionally builds from contrib/ # ---- Build switches -set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ${ipo_supported}) if(NOT CMAKE_BUILD_TYPE) @@ -109,12 +115,12 @@ include_directories(include) include_directories(contrib/fastahack) include_directories(contrib/intervaltree) include_directories(contrib/smithwaterman) -# include_directories(contrib/multichoose) merged with vcflib include_directories(contrib/filevercmp) include_directories(contrib/c-progress-bar) if(NOT htslib_FOUND) message(STATUS "Using included htslib") + include(FindCURL) # for htslib set(htslib_LOCAL contrib/tabixpp/htslib) set(tabixpp_FOUND OFF) # also build tabixpp if htslib is missing endif() @@ -134,7 +140,6 @@ endif() file(GLOB INCLUDES src/*.h* - # contrib/multichoose/*.h* contrib/intervaltree/*.h* contrib/smithwaterman/*.h* contrib/fastahack/*.h* @@ -150,12 +155,15 @@ set(vcflib_SOURCE ${vcfwfa_SOURCE} src/vcf-c-api.cpp src/Variant.cpp - src/canonicalize.cpp + # src/canonicalize.cpp --- merged back into Variant.h, see https://github.com/vcflib/vcflib/issues/417 src/rnglib.cpp src/var.cpp src/pdflib.cpp src/cdflib.cpp src/split.cpp + src/stats.cpp + src/index.cpp + src/phase.cpp src/rkmh.cpp src/murmur3.cpp src/LeftAlign.cpp @@ -172,11 +180,12 @@ set(vcflib_SOURCE contrib/c-progress-bar/progress.c ) -if (tabixpp_LOCAL) # add the tabixpp source file and use a no-op target +if (tabixpp_LOCAL) # add the tabixpp source file list(APPEND vcflib_SOURCE ${tabixpp_SOURCE}) + list(APPEND INCLUDES ${tabixpp_LOCAL}/tabix.hpp) endif() -add_library(vcflib STATIC +add_library(vcflib ${vcflib_SOURCE} ) @@ -262,7 +271,6 @@ set(BINS vcfcreatemulti ) - set(WFBINS # Introduce wavefront dependency vcfallelicprimitives vcfcleancomplex @@ -364,8 +372,7 @@ if(WFA_GITMODULE) add_subdirectory(${WFA_LOCAL}) set(WFALIB wfa2) # pick up the wfa2 lib target from the included CMakeLists.txt else(WFA_GITMODULE) - include_directories($ENV{CMAKE_PREFIX_PATH}/include/wfa2lib) - set(WFA_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/wfa2lib) + find_path(WFA_INCLUDE_DIRS wavefront/wfa.hpp PATH_SUFFIXES wfa2lib) find_library(WFALIB wfa2 wfa REQUIRED) # distro search for shared lib endif(WFA_GITMODULE) @@ -380,6 +387,11 @@ MESSAGE(STATUS "WFA using include ${WFA_INCLUDE_DIRS}") # external project so we can run 'zig build' if (ZIG) +if (BUILD_STATIC) + set(ZIG_BUILD_FLAGS "-Doptimize=ReleaseFast") +else() + set(ZIG_BUILD_FLAGS "") +endif() ExternalProject_Add(ZIG-EXT SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/zig" UPDATE_COMMAND "" @@ -387,7 +399,7 @@ ExternalProject_Add(ZIG-EXT INSTALL_COMMAND "" BUILD_IN_SOURCE ON BUILD_ALWAYS ON - BUILD_COMMAND ${CMAKE_SOURCE_DIR}/src/zig/compile.sh # -Drelease-fast=true -freference-trace + BUILD_COMMAND ${CMAKE_SOURCE_DIR}/src/zig/compile.sh ${ZIG_BUILD_FLAGS} ) ExternalProject_Get_property(ZIG-EXT SOURCE_DIR) set(ZIG_INCLUDE_DIRS ${SOURCE_DIR}) @@ -404,34 +416,25 @@ else (ZIG) add_definitions(-DNO_ZIG=1) endif (ZIG) -set(vcflib_DEPS - CURL::libcurl - ) - -if (ZIG) - list(APPEND vcflib_DEPS ZIG-EXT) -endif () - -set(vcflib_LIBS - ${CURL_LIBRARIES} - ${ZLIB_LIBRARIES} - ${LIBLZMA_LIBRARIES} - ${BZIP2_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT} - ${WFA_LINK_LIBRARIES} -) - -if (ZIG) - list(APPEND vcflib_LIBS ${ZIG_LINK_LIBRARIES}) -endif() - - if (htslib_LOCAL) target_link_libraries(vcflib htslib) -else (htslib_LOCAL) + set(vcflib_LIBS curl deflate) # local build requires linking curl explicitly +else () target_link_libraries(vcflib PkgConfig::htslib) + set(vcflib_LIBS hts) endif() +list(APPEND htslib_dependencies + lzma + z + bz2 +) + +list(APPEND vcflib_LIBS + ${CMAKE_THREAD_LIBS_INIT} + ${htslib_dependencies} # linking htslib for everything is not needed if we have our own bgzip reader +) + if (NOT tabixpp_LOCAL) target_link_libraries(vcflib PkgConfig::tabixpp) endif() @@ -442,36 +445,48 @@ endif() # ---- Build all +if (BUILD_SHARED_LIBS) + target_link_libraries(vcflib ${WFALIB}) +endif() + if (NOT BUILD_ONLY_LIB) foreach(BIN ${BINS}) add_executable(${BIN} src/${BIN}.cpp) add_dependencies(${BIN} vcflib) target_link_libraries(${BIN} PUBLIC ${vcflib_LIBS} vcflib) + if (BUILD_STATIC) + target_link_libraries(${BIN} PRIVATE -static) + endif() endforeach(BIN ${BINS}) foreach(WFBIN ${WFBINS}) add_executable(${WFBIN} src/${WFBIN}.cpp ${vcfwfa_SOURCE}) add_dependencies(${WFBIN} vcflib) target_link_libraries(${WFBIN} PUBLIC ${vcflib_LIBS} vcflib) target_link_libraries(${WFBIN} PUBLIC ${vcflib_LIBS} ${WFALIB}) - endforeach(WFBIN ${BINS}) - install(TARGETS ${BINS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + if (BUILD_STATIC) + target_link_libraries(${WFBIN} PRIVATE -static) + endif() + endforeach(WFBIN ${WFBINS}) + if (ZIG) + # list(APPEND vcflib_LIBS ${ZIG_LINK_LIBRARIES}) + target_link_libraries(vcfcreatemulti PUBLIC ${vcflib_LIBS} ${ZIG_LINK_LIBRARIES} vcflib) + endif() + install(TARGETS ${BINS} ${WFBINS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) # ---- Copy scripts foreach(SCRIPT ${SCRIPTS}) install(PROGRAMS ./scripts/${SCRIPT} DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME ${SCRIPT}) endforeach(SCRIPT ${SCRIPTS}) - endif() -# ---- Python bindings - mostly for testing at this stage -pybind11_add_module(pyvcflib "${CMAKE_SOURCE_DIR}/src/pythonffi.cpp") -add_dependencies(pyvcflib ${vcflib_DEPS}) -target_link_libraries(pyvcflib PUBLIC vcflib ${vcflib_LIBS} ${WFALIB}) -install(TARGETS pyvcflib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) - -# ---- Test -enable_testing() +if (NOT BUILD_STATIC) # only when not building static + # ---- Python bindings - mostly for testing at this stage + pybind11_add_module(pyvcflib "${CMAKE_SOURCE_DIR}/src/pythonffi.cpp") + # add_dependencies(pyvcflib CURL::libcurl) + target_link_libraries(pyvcflib PUBLIC vcflib ${vcflib_LIBS} ${WFALIB}) + install(TARGETS pyvcflib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() function(add_pytest TEST_FILE) add_test( @@ -480,7 +495,7 @@ function(add_pytest TEST_FILE) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test ) SET_TESTS_PROPERTIES(${TEST_FILE} - PROPERTIES ENVIRONMENT "LSAN_OPTIONS=suppressions=../test/libasan-suppress.txt;PYTHONPATH=${PROJECT_SOURCE_DIR}/build;;LD_LIBRARY_PATH=$ENV{LIBRARY_PATH}") + PROPERTIES ENVIRONMENT "ASAN_OPTIONS=detect_odr_violation=0;LSAN_OPTIONS=suppressions=../test/libasan-suppress.txt;PYTHONPATH=${CMAKE_BINARY_DIR};LD_LIBRARY_PATH=$ENV{LIBRARY_PATH}:$ENV{GUIX_PROFILE}/lib;PATH=${CMAKE_BINARY_DIR}/bin:$ENV{PATH}") endfunction() function(add_pydoctest TEST_FILE) @@ -491,10 +506,9 @@ function(add_pydoctest TEST_FILE) ) SET_TESTS_PROPERTIES(${TEST_FILE} # PROPERTIES ENVIRONMENT "ASAN_OPTIONS=detect_leaks=1:symbolize=1;LSAN_OPTIONS=verbosity=2:log_threads=1:suppressions=../test/libasan-suppress.txt") - PROPERTIES ENVIRONMENT "LSAN_OPTIONS=suppressions=../test/libasan-suppress.txt;PYTHONPATH=${PROJECT_SOURCE_DIR}/build:${PROJECT_SOURCE_DIR}/test/pytest") + PROPERTIES ENVIRONMENT "ASAN_OPTIONS=detect_odr_violation=0;LSAN_OPTIONS=suppressions=../test/libasan-suppress.txt;PYTHONPATH=${CMAKE_BINARY_DIR}:${PROJECT_SOURCE_DIR}/test/pytest;LD_LIBRARY_PATH=$ENV{LIBRARY_PATH}:$ENV{GUIX_PROFILE}/lib;PATH=${CMAKE_BINARY_DIR}:$ENV{PATH}") endfunction() - function(add_doctest TEST_FILE) add_test( NAME ${TEST_FILE} @@ -523,8 +537,10 @@ endfunction() add_zigtest() endif(ZIG_TEST) -add_pytest(realign) -add_pydoctest(pyvcflib) +if (NOT BUILD_STATIC) + add_pytest(realign) + add_pydoctest(pyvcflib) +endif() add_pydoctest(vcflib-api) add_pydoctest(vcf2tsv) add_pydoctest(vcfallelicprimitives) @@ -537,7 +553,7 @@ endif (ZIG) add_pydoctest(vcfnulldotslashdot) add_doctest(doc/vcfintersect) -# ---- Build docs +# ---- Build documentation # # Generates man pages for the python doctests. Don't need # to run every time so it is a separate command. For pandoc logic see @@ -583,11 +599,18 @@ endif (PANDOC) # ---- Install -install(TARGETS vcflib ARCHIVE DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS vcflib + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + if(WFA_GITMODULE) - install(TARGETS ${WFALIB} ARCHIVE DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(TARGETS ${WFALIB} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif(WFA_GITMODULE) install(FILES ${INCLUDES} DESTINATION include/vcflib) -install(DIRECTORY ${CMAKE_SOURCE_DIR}/man/ DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1) +configure_file(${CMAKE_SOURCE_DIR}/vcflib.pc.in ${CMAKE_BINARY_DIR}/vcflib.pc @ONLY) +install(FILES ${CMAKE_BINARY_DIR}/vcflib.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + +install(DIRECTORY ${CMAKE_SOURCE_DIR}/man/ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) diff --git a/README.md b/README.md index 01274476..1b07f9ec 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ### A C++ library for parsing and manipulating VCF files. [![Github-CI](https://github.com/vcflib/vcflib/actions/workflows/ci_test.yml/badge.svg?branch=master)](https://github.com/vcflib/vcflib/actions) -[![AnacondaBadge](https://anaconda.org/bioconda/vcflib/badges/version.svg)](https://anaconda.org/bioconda/vcflib) [![DL](https://anaconda.org/bioconda/vcflib/badges/downloads.svg)](https://anaconda.org/bioconda/vcflib) [![BrewBadge](https://img.shields.io/badge/%F0%9F%8D%BAbrew-vcflib-brightgreen.svg)](https://github.com/brewsci/homebrew-bio) [![GuixBadge](https://img.shields.io/badge/gnuguix-vcflib-brightgreen.svg)](https://packages.guix.gnu.org/packages/vcflib/) [![DebianBadge](https://badges.debian.net/badges/debian/testing/libvcflib-dev/version.svg)](https://packages.debian.org/testing/libvcflib-dev) [![C++0x](https://img.shields.io/badge/Language-C++0x-steelblue.svg)](https://www.cprogramming.com/c++11/what-is-c++0x.html) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#vcflib:matrix.org) +[![AnacondaBadge](https://anaconda.org/bioconda/vcflib/badges/version.svg)](https://anaconda.org/bioconda/vcflib) [![DL](https://anaconda.org/bioconda/vcflib/badges/downloads.svg)](https://anaconda.org/bioconda/vcflib) [![BrewBadge](https://img.shields.io/badge/%F0%9F%8D%BAbrew-vcflib-brightgreen.svg)](https://github.com/brewsci/homebrew-bio) [![DebianBadge](https://badges.debian.net/badges/debian/testing/libvcflib-dev/version.svg)](https://packages.debian.org/testing/libvcflib-dev) [![C++0x](https://img.shields.io/badge/Language-C++0x-steelblue.svg)](https://www.cprogramming.com/c++11/what-is-c++0x.html) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#vcflib:matrix.org) Vcflib and related tools are the workhorses in bioinformatics for processing the VCF variant calling format. See @@ -16,18 +16,19 @@ Garrison E, Kronenberg ZN, Dawson ET, Pedersen BS, Prins P (2022), PLoS Comput B ![Humpty Logo - CC0 license](./logos/humpty-dumpty.jpg) +**May 2025**: fixes, updates and downloadable binaries. See [RELEASE_NOTES.md](./RELEASE_NOTES.md) + **November 2024**: a fresh release with, mostly, pangenome related fixes. **January 2023**: this is vcflib's first *Humpty Dumpty* release: [vcfcreatemulti](./doc/vcfcreatemulti.md) is the natural companion to [vcfwave](./doc/vcfwave.md). Often variant callers are not perfect. + **vcfwave** with its companion tool **vcfcreatemulti** can take an existing VCF file that contains multiple complex overlapping and even nested alleles and, unlike Humpty Dumpty, take them apart and put them together again. Thereby, hopefully, creating sane VCF output that is useful for analysis and getting rid of false positives. We created these tools by including the state-of-the-art [biWFA](https://github.com/smarco/WFA2-lib) wavefront aligner. The tools are particularly useful for the output from structural variation callers and pangenome genotypers, such as used by the Human Pangenome Reference Consortium (HPRC) because of overlapping ALT segments. -See also [RELEASE_NOTES.md](./RELEASE_NOTES.md) - **May 2022**: the [vcflib paper](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009123) has been published on PLoS Computational Biology! **April 2022**: vcflib has just gone pangenome! @@ -125,6 +126,16 @@ guix package -i vcflib See also the Guix shell below. +### Static binaries, Docker and Singularity + +Images are available from [files.genenetwork.org](https://files.genenetwork.org/software/vcflib/). + +For singularity simply run someting like: + +``` +singularity exec vcflib-version-singularity.pack.gz vcfcreatemulti -h +``` + ## USAGE Users are encouraged to drive the utilities in the library in a @@ -372,7 +383,7 @@ Build dependencies can be viewed in the github-CI scripts (see badges above), as - htslib - tabixpp - WFA2 (wfa2lib) -- pybind11 (for testing) +- pybind11 (for python bindings and testing) For include files add @@ -382,7 +393,7 @@ For include files add And for some of the VCF executables -- zig 0.13 (disable with cmake -DZIG=OFF) +- zig 0.15 (disable with cmake -DZIG=OFF) - python - perl @@ -393,17 +404,17 @@ Note you need to add the full path before running cmake and make. From the build ```sh cd build -export PATH=$(pwd)/../zig-linux-x86_64-0.13.0:$PATH +export PATH=$(pwd)/../zig-linux-x86_64-0.15.0:$PATH zig version cmake -DCMAKE_BUILD_TYPE=Debug -DWFA_GITMODULE=1 .. make VERBOSE=1 ``` -More on `zig` can be found in the souce code [README](./src/zig/README.md). +More on `zig` can be found in the source code [README](./src/zig/README.md). ### Using a recent C++ compiler -You may encounter something like libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ...vcflib/build/pyvcflib.cpython-310-x86_64-linux-gnu.so). This is caused by the python pyvcflib not running against a python interpreter compiled with the same libstdc++ dependency. That is a bit nasty to solve. For now make sure to match C++ compilers for the python module. +You may encounter something like libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ...vcflib/build/pyvcflib.cpython-310-x86_64-linux-gnu.so). This is caused by the python pyvcflib not running against a python interpreter compiled with the same libstdc++ dependency. That is a bit nasty to solve. For now make sure to match C++ compilers for the python module. It is also possible to disable the python build. ### Using a different htslib @@ -467,6 +478,23 @@ you to add a working test case as described in 'adding tests'. This software is distributed under the free software [MIT LICENSE](./LICENSE). +## RELEASES + +vcflib is released on github. The tarballs are used by Linux distributions to build and release vcflib binaries. +For a release the following protocol is followed: + +- [ ] Build and test using a recent `guix pull` -- see [guix.scm](./guix.scm) header +- [ ] Update RELEASE_NOTES checking git record since last release +- [ ] Bump VERSION file +- [ ] Update documentation to reflect latest (see CMakeLists.txt) +- [ ] Check issue tracker for information +- [ ] Create github release after pushing and checking CI +- [ ] Copy release notes to github release +- [ ] Add full tarball with git submodules for conda and such +- [ ] Add static binaries for vcfwave, vcfcreatemulti, etc and provide download link + +See also [RELEASE_NOTES.md](./RELEASE_NOTES.md) + ## CREDIT Citations are the bread and butter of Science. If you are using this diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a5d0ee76..ec73ad9e 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -3,19 +3,49 @@ For contributions see and [commits](https://github.com/vcflib/vcflib/commits/master). -## TODO - -- [ ] vcfcreatemulti: fix problem with slow and wrong complex regions (implement backtrack) - + [ ] check for indels which are really the same - + [ ] combine vcfwave duplicated functionality -- bgzip -- tabix -p vcf my_file.vcf.gz -- pangenie, vg deconstruct, vcfbub - -## ChangeLog v1.0.13 (?) - +## ChangeLog ongoing + +* Added guix-container-manifest.scm that allows building Singularity and Docker containers(!) + +## ChangeLog v1.0.15 (20260319) + +* Fix iterator usage in vcfkeepinfo and vcfremoveaberrantgenotypes (Jukka Matilainen) +* Fixes for vcfwave (Glenn Hickey) +* Added include files to build with vg +* Added pkgconfig support +* Fix wfa2lib builds and sent upstream +* Update zig build to 0.15, or later, and fix static build with zig for vcfcreatemulti +* Create tar ball with static binaries +* Fix building with git submodules only +* Download statically linked binaries, singularity and docker containers from https://files.genenetwork.org/software/vcflib/v1.0.15/ + md5sum: + 5768540e7bef2db1363e422bc37614c4 vcflib-1.0.15-docker.tar.gz # Docker + 680cd7675325561636e03274e679d195 vcflib-1.0.15-singularity.pack.gz # Singularity + 7f60bb29dfb498c1059a33e10e99ac02 vcflib-static-git-v1.0.15-2-g0d40ff1.tar.gz # Static binaries + +## ChangeLog v1.0.14 (20250518) + +* CMake: Fixed building static libs and shared libs (the previous version just compiled a static lib) +* Updated zig compile for 0.14 (MichaelK) +* Lots of refactoring (MichaelK) +* CMake: Improved linker speeds by moving some libs +* CMake: Improved markdown/pydoc tests, so we don't show the path to the binary +* guix.scm has multiple outputs including static binaries and a test mode +* guix.scm has procedure for building with local htslib and tabixpp only +* Added @RedPenguin100 Michael Kovaliov as a maintainer (welcome!) + +## ChangeLog v1.0.13 (20250417) + +* Zig support was added to Guix and Conda - and we expect it to be more common soon +* Addind release protocol to README - so I don't forget bumping version etc. +* Fixed vcfwave issues (see https://github.com/vcflib/vcflib/issues/416) and conda build (thanks Michael Kovaliov, aka @RedPenguin100) +* Fixed github actions (Michael) +* Lots of minor refactoring and cleanup, as well as a memory leak (Michael) +* tabix.hpp fixed and set `WFA_INCLUDE_DIRS` and `-DBUILD_SHARED_LIBS=ON` (thanks Michael Cho, aka @cho-m) +* Cmake fixes (thanks Adam Novak) * Updated simde submodule * Fix CMakeLists.txt not to try to install wfa-lib when it is a package +* Reverted on Canocalize extraction in Variant class because of downstream use, see https://github.com/vcflib/vcflib/issues/417 ## ChangeLog v1.0.12 (20241122) diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..4dd52e07 --- /dev/null +++ b/TODO.md @@ -0,0 +1,36 @@ +# TODO + +- [ ] vcfcreatemulti: fix problem with slow and wrong complex regions (implement backtrack) + + [ ] check for indels which are really the same + + [ ] combine vcfwave duplicated functionality +- bgzip +- tabix -p vcf my_file.vcf.gz +- pangenie, vg deconstruct, vcfbub + +# Debian + + Debian version: 1.0.12 (current vcflib HEAD is 1.0.15) + + Key findings from debian/rules: + - -DZIG=OFF -- Zig is completely disabled + - -DWFA_GITMODULE=OFF -- uses system wfa2-lib + - -DHTSLIB_FOUND=ON -DTABIX_FOUND=ON -- uses system htslib/tabixpp + - -DOPENMP=ON + - Tests are deactivated in the patch series (#tests ## FIXME: deactivated for the moment) + + Patches (9 total, mostly about using Debian-packaged dependencies instead of bundled ones): + 1. no_fsom -- removes unused fsom dependency + 2. use_debian_packaged_smithwaterman.patch -- system libsmithwaterman + 3. use_debian_packaged_fastahack.patch -- system libfastahack + 4. use_debian_packaged_libssw.patch -- system libssw + 5. shared_lib.patch -- builds shared lib instead of static + 6. pkg-config.patch -- adds a .pc file for freebayes + 7. tabix_linking -- link against system tabixpp + 8. wfa2_linking -- workaround for wfa2 library detection + 9. cmakelists-fixups.patch -- minor CMakeLists fixes + + So yes -- zig is simply turned off (-DZIG=OFF). The patches are all about unbundling dependencies to use Debian + system packages, plus building a shared library. No zig-related patches at all. They're also 3 minor versions behind + and have their tests disabled. + +For Debian/Ubuntu packages: we use [guix.scm](./guix.scm) for development and deployment. We also have a passing github CI test defined in [ci_test.yaml](.github/workflows/ci_test.yml). diff --git a/VERSION b/VERSION index bb83058e..a9707166 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.12 +1.0.15 diff --git a/contrib/WFA2-lib b/contrib/WFA2-lib index d7b7ea99..f86a35ab 160000 --- a/contrib/WFA2-lib +++ b/contrib/WFA2-lib @@ -1 +1 @@ -Subproject commit d7b7ea99c8cd941c3e0feea359c217b36a6d43d1 +Subproject commit f86a35abf89933605d81df6e67e42edc0aaf7f55 diff --git a/contrib/multichoose b/contrib/multichoose index e1f94aeb..255192ed 160000 --- a/contrib/multichoose +++ b/contrib/multichoose @@ -1 +1 @@ -Subproject commit e1f94aeb5d52542b000287fd8e0204c78906897e +Subproject commit 255192edd49cfe36557f7f4f0d2d6ee1c702ffbb diff --git a/contrib/tabixpp b/contrib/tabixpp index ae5cdf84..0f551948 160000 --- a/contrib/tabixpp +++ b/contrib/tabixpp @@ -1 +1 @@ -Subproject commit ae5cdf846af85bd1d0e310c05e5c67b037f51a25 +Subproject commit 0f551948d6a6dd10f710161c812614948a36e9ef diff --git a/doc/abba-baba.md b/doc/abba-baba.md index b687b194..62c24a26 100644 --- a/doc/abba-baba.md +++ b/doc/abba-baba.md @@ -72,8 +72,8 @@ type: genotype # LICENSE -Copyright 2011-2024 (C) Erik Garrison and vcflib contributors. MIT licensed. -Copyright 2020-2024 (C) Pjotr Prins. +Copyright 2011-2026 (C) Erik Garrison and vcflib contributors. MIT licensed. +Copyright 2020-2026 (C) Pjotr Prins. void findLengths(string haplotypes[][2], vector group, int core, int lengths[]), int maxI){ -void findLengths(string **haplotypes, vector group, int core, int lengths[]){ +void findLengths(std::vector>& haplotypes, vector group, int core, int lengths[]){ int gmax = group.size(); - int smax = haplotypes[0][0].length(); + int smax = haplotypes[0].first.length(); int matrix[gmax*2][gmax*2]; for(int i = 0 ; i < gmax*2; i++){ @@ -91,14 +77,12 @@ void findLengths(string **haplotypes, vector group, int core, int lengths[] for(int i = 0; i < gmax*2; i++){ //get group member 1 int g = (i < gmax) ? group[i] : group[i-gmax]; - int c = (i < gmax) ? 0 : 1; - string& currentHap = haplotypes[g][c]; + string& currentHap = (i < gmax) ? haplotypes[g].first : haplotypes[g].second; for(int j = i+1; j < gmax*2; j++){ //get group member 2 for comparison int ag = (j < gmax) ? group[j] : group[j-gmax]; - int ac = (j < gmax) ? 0 : 1; - string& altHap = haplotypes[ag][ac]; + string& altHap = (j < gmax) ? haplotypes[ag].first : haplotypes[ag].second; typedef string::const_iterator iter; iter cBeg = currentHap.begin(), cEnd = currentHap.end(); @@ -227,21 +211,7 @@ double totalLL(int dat[], int n, double m){ return ll; } -double var(int dat[], int n, double mean){ - - double sum = 0; - - for(int i = 0; i < n; i++){ - sum += pow( (double(dat[i]) - mean), 2); - } - - double var = sum / (n - 1); - - return var; - -} - -void calc(string **haplotypes, int nhaps, vector pos, vector afs, vector & target, vector & background, vector total, string seqid){ +void calc(std::vector>& haplotypes, int nhaps, const vector& pos, const vector& afs, const vector & target, const vector & background, const vector& total, const string& seqid){ //moved (carson) int tl = 2*target.size(); @@ -251,7 +221,7 @@ void calc(string **haplotypes, int nhaps, vector pos, vector a //treat as buffers to seed findLengths (carson) - for(int snp = 0; snp < haplotypes[0][0].length(); snp++){ + for(int snp = 0; snp < haplotypes[0].first.length(); snp++){ int targetLengths[tl]; int backgroundLengths[bl]; @@ -305,22 +275,6 @@ void calc(string **haplotypes, int nhaps, vector pos, vector a } } -void loadPhased(string **haplotypes, genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); -// if((haplotypes[0][0].size() % 100) == 0){ -// cerr << "string size:" << haplotypes[0][0].size() << endl; -// } - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} - int main(int argc, char** argv) { // set the random seed for MCMC @@ -435,12 +389,12 @@ int main(int argc, char** argv) { if(!variantFile.setRegion(region)){ //check if region is even specified in header bool region_exists = false; vector headerLines = split (variantFile.header, "\n"); - for(vector::iterator it = headerLines.begin(); it != headerLines.end(); it++){ - if((*it).substr(0,8) == "##contig"){ - string contigInfo = (*it).substr(10, (*it).length() -11); + for(const auto& headerLine : headerLines){ + if(headerLine.substr(0,8) == "##contig"){ + string contigInfo = headerLine.substr(10, headerLine.length() -11); vector info = split(contigInfo, ","); - for(vector::iterator sub = info.begin(); sub != info.end(); sub++){ - vector subfield = split((*sub), "="); + for(const auto& sub : info){ + vector subfield = split(sub, "="); if (subfield[0] != "ID") break; if(subfield[1] == region){ region_exists = true; @@ -477,17 +431,15 @@ int main(int argc, char** argv) { Variant var(variantFile); - vector samples = variantFile.sampleNames; + const vector& samples = variantFile.sampleNames; int nsamples = samples.size(); vector ibi, iti, itot; int index = 0, indexi = 0; - for(vector::iterator samp = samples.begin(); samp != samples.end(); samp++){ - - string samplename = (*samp); - + // TODO: fix loop + for(const auto& _ : samples){ if(targetIndex.find(index) != targetIndex.end()){ iti.push_back(indexi); // itot.push_back(indexi); @@ -509,11 +461,7 @@ int main(int argc, char** argv) { vector positions; vector afs; - //string haplotypes [nsamples][2]; - string **haplotypes = new string*[nsamples]; - for (int i = 0; i < nsamples; i++) { - haplotypes[i] = new string[2]; - } + std::vector> haplotypes(nsamples); string currentSeqid = "NA"; @@ -532,10 +480,10 @@ int main(int argc, char** argv) { } if(currentSeqid != var.sequenceName){ - if(haplotypes[0][0].length() > 10){ + if(haplotypes[0].first.length() > 10){ calc(haplotypes, nsamples, positions, afs, iti, ibi, itot, currentSeqid); } - clearHaplotypes(haplotypes, nsamples); + clearHaplotypes(haplotypes); positions.clear(); currentSeqid = var.sequenceName; afs.clear(); @@ -574,28 +522,27 @@ int main(int argc, char** argv) { sindex += 1; } - using Detail::makeUnique; - unique_ptr populationTarget; - unique_ptr populationBackground; - unique_ptr populationTotal; + std::unique_ptr populationTarget; + std::unique_ptr populationBackground; + std::unique_ptr populationTotal; if (type == "PL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } else if (type == "GL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } else if (type == "GP"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } else if (type == "GT"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } populationTarget->loadPop(target, var.position); @@ -611,7 +558,7 @@ int main(int argc, char** argv) { afs.push_back(populationTotal->af); positions.push_back(var.position); - loadPhased(haplotypes, populationTotal.get(), nsamples); + loadPhased(haplotypes, populationTotal.get()); } calc(haplotypes, nsamples, positions, afs, iti, ibi, itot, currentSeqid); diff --git a/src/iHS.cpp b/src/iHS.cpp index 645c1dea..52d2da2e 100644 --- a/src/iHS.cpp +++ b/src/iHS.cpp @@ -9,20 +9,19 @@ #include "Variant.h" #include "split.h" -#include "cdflib.hpp" #include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" #include #include -#include #include -#include -#include -#include +#include #include +#include + #include "gpatInfo.hpp" -#include "makeUnique.h" +#include "phase.hpp" // maaas speed #if defined HAS_OPENMP @@ -170,31 +169,19 @@ void loadGeneticMap(int start, int end){ } } - -void clearHaplotypes(string **haplotypes, int ntarget){ - for(int i= 0; i < ntarget; i++){ - haplotypes[i][0].clear(); - haplotypes[i][1].clear(); - } -} - -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } +void clearHaplotypes(std::vector>& haplotypes) { + for (auto& [first, second] : haplotypes) { + first.clear(); + second.clear(); + } } - void countHaps(int nhaps, map & targetH, - string **haplotypes, int start, int end){ + const std::vector>& haplotypes, int start, int end){ for(int i = 0; i < nhaps; i++){ - std::string h1 = haplotypes[i][0].substr(start, (end - start)) ; - std::string h2 = haplotypes[i][1].substr(start, (end - start)) ; + std::string h1 = haplotypes[i].first.substr(start, (end - start)) ; + std::string h2 = haplotypes[i].second.substr(start, (end - start)) ; if(targetH.find(h1) == targetH.end()){ targetH[h1] = 1; @@ -211,43 +198,42 @@ void countHaps(int nhaps, map & targetH, } } -void computeNs(map & targetH, int start, +void computeNs(const map & targetH, int start, int end, double * sumT, char ref, bool dir){ - for( map::iterator th = targetH.begin(); - th != targetH.end(); th++){ + for( const auto& th : targetH){ - if(th->second < 2){ + if(th.second < 2){ continue; } // end is extending ; check first base if(dir){ - if( th->first[0] == ref){ + if( th.first[0] == ref){ - // std::cerr << "count dat: " << th->first << " " << th->second << " " << ref << " " << dir << endl; + // std::cerr << "count dat: " << th.first << " " << th.second << " " << ref << " " << dir << endl; - *sumT += r8_choose(th->second, 2); + *sumT += r8_choose(th.second, 2); } } // start is extending ; check last base else{ - int last = th->first.size() -1; - if( th->first[last] == ref ){ - // std::cerr << "count dat:" << th->first << " " << th->second << " " << ref << " " << dir << endl; + int last = th.first.size() -1; + if( th.first[last] == ref ){ + // std::cerr << "count dat:" << th.first << " " << th.second << " " << ref << " " << dir << endl; - *sumT += r8_choose(th->second, 2); + *sumT += r8_choose(th.second, 2); } } } } -bool calcEhh(string **haplotypes, int start, +bool calcEhh(std::vector>& haplotypes, int start, int end, char ref, int nhaps, double * ehh, double div, bool dir){ @@ -269,7 +255,7 @@ bool calcEhh(string **haplotypes, int start, return true; } -int integrate(string **haplotypes , +int integrate(std::vector>& haplotypes , vector & pos, bool direction, int maxl, @@ -347,11 +333,11 @@ int integrate(string **haplotypes , return 10; } -void calc(string **haplotypes, int nhaps, +void calc(std::vector>& haplotypes, int nhaps, vector & afs, vector & pos, - vector & target, vector & background, string seqid){ + const vector & , const vector & , const string& seqid){ - int maxl = haplotypes[0][0].length(); + int maxl = haplotypes[0].first.length(); #if defined HAS_OPENMP #pragma omp parallel for schedule(dynamic, 20) @@ -404,19 +390,6 @@ void calc(string **haplotypes, int nhaps, } } -void loadPhased(string **haplotypes, genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} - int main(int argc, char** argv) { globalOpts.threads = 1 ; @@ -570,13 +543,13 @@ int main(int argc, char** argv) { vector samples = variantFile.sampleNames; int nsamples = samples.size(); - for(vector::iterator samp = samples.begin(); samp != samples.end(); samp++){ + // TODO: fix loop + for(const auto& _ : samples){ - string sampleName = (*samp); if(it.find(index) != it.end() ){ - target_h.push_back(indexi); - indexi++; + target_h.push_back(indexi); + indexi++; } index++; } @@ -586,11 +559,8 @@ int main(int argc, char** argv) { vector afs; - string **haplotypes = new string*[target_h.size()]; - for (int i = 0; i < target_h.size(); i++) { - haplotypes[i] = new string[2]; - } + std::vector> haplotypes(target_h.size()); while (variantFile.getNextVariant(var)) { @@ -619,21 +589,20 @@ int main(int argc, char** argv) { sindex += 1; } - using Detail::makeUnique; unique_ptr populationTarget ; if(globalOpts.type == "PL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(globalOpts.type == "GL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(globalOpts.type == "GP"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(globalOpts.type == "GT"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } populationTarget->loadPop(target, var.position); @@ -646,7 +615,7 @@ int main(int argc, char** argv) { } positions.push_back(var.position); afs.push_back(populationTarget->af); - loadPhased(haplotypes, populationTarget.get(), populationTarget->gts.size()); + loadPhased(haplotypes, populationTarget.get()); } if(!globalOpts.geneticMapFile.empty()){ @@ -657,7 +626,7 @@ int main(int argc, char** argv) { calc(haplotypes, target_h.size(), afs, positions, target_h, background_h, globalOpts.seqid); - clearHaplotypes(haplotypes, target_h.size()); + clearHaplotypes(haplotypes); exit(0); diff --git a/src/index.cpp b/src/index.cpp new file mode 100644 index 00000000..8f3c862a --- /dev/null +++ b/src/index.cpp @@ -0,0 +1,20 @@ +#include "index.hpp" + +#include "split.h" + +#include + +#include + +namespace vcflib +{ +void loadIndices(std::map& index, const std::string& set) +{ + const std::vector individuals = split(set, ","); + + for (const auto& individual : individuals) + { + index[std::atoi(individual.c_str())] = 1; + } +} +} \ No newline at end of file diff --git a/src/index.hpp b/src/index.hpp new file mode 100644 index 00000000..744824b0 --- /dev/null +++ b/src/index.hpp @@ -0,0 +1,19 @@ +/* + vcflib C++ library for parsing and manipulating VCF files + + Copyright © 2010-2020 Erik Garrison + Copyright © 2020 Pjotr Prins + + This software is published under the MIT License. See the LICENSE file. +*/ +#pragma once + + +#include +#include + + +namespace vcflib +{ + void loadIndices(std::map& index, const std::string& set); +} diff --git a/src/join.h b/src/join.h index b8d2a800..5691b476 100644 --- a/src/join.h +++ b/src/join.h @@ -21,9 +21,9 @@ // for both class S and T and an ostream, as it is e.g. in the case of strings // and character arrays template -std::string join(std::vector& elems, S& delim) { +std::string join(const std::vector& elems, S& delim) { std::stringstream ss; - typename std::vector::iterator e = elems.begin(); + typename std::vector::const_iterator e = elems.begin(); if (e != elems.end()) { ss << *e++; for (; e != elems.end(); ++e) { diff --git a/src/legacy.cpp b/src/legacy.cpp index fb64088e..49c6c044 100644 --- a/src/legacy.cpp +++ b/src/legacy.cpp @@ -10,8 +10,12 @@ */ #include "legacy.h" +#include "cigar.hpp" +#include "vcf-wfa.h" + #include + namespace vcflib { // parsedAlternates returns a hash of 'ref' and a vector of alts. A @@ -68,9 +72,9 @@ map > VariantLegacy::legacy_parsedAlternates( char anchorChar = 'Q'; // overwrites first pos of sequence if (flankingRefLeft.empty() && flankingRefRight.empty()) { - paddingLen = (useWaveFront ? 10 : max(10, (int) (ref.size()))); - for (auto a: alt) { - paddingLen = max(paddingLen, (int) (a.size())); + paddingLen = (useWaveFront ? 10 : max(10, static_cast (ref.size()))); + for (const auto& a: alt) { + paddingLen = max(paddingLen, static_cast (a.size())); } char padChar = 'Z'; rpadding = string(paddingLen, padChar); // repeat padChar @@ -96,7 +100,7 @@ map > VariantLegacy::legacy_parsedAlternates( // ACCCCCACCCCCACC // padded ref ZZZZZZZZZZZZZZZQACCCCCACCCCCACCZZZZZZZZZZZZZZZ - for (auto alternate: alt) { // iterate ALT strings + for (const auto& alternate: alt) { // iterate ALT strings unsigned int referencePos; string alternateQuery_M; if (OLDPADDING) { diff --git a/src/legacy.h b/src/legacy.h index 1a482bce..5d97d09f 100644 --- a/src/legacy.h +++ b/src/legacy.h @@ -9,11 +9,11 @@ #pragma once -#include #include "Variant.h" -#include "vcf-wfa.h" -#include "allele.hpp" -#include "cigar.hpp" + +#include +#include +#include using namespace std; diff --git a/src/makeUnique.h b/src/makeUnique.h deleted file mode 100644 index 338a2146..00000000 --- a/src/makeUnique.h +++ /dev/null @@ -1,8 +0,0 @@ -#include - -namespace Detail { - template - std::unique_ptr makeUnique(Args &&... args) { - return unique_ptr(new T(forward(args)...)); - } -} diff --git a/src/meltEHH.cpp b/src/meltEHH.cpp index 5cf00439..e7baad30 100644 --- a/src/meltEHH.cpp +++ b/src/meltEHH.cpp @@ -9,20 +9,18 @@ #include "Variant.h" #include "split.h" -#include "cdflib.hpp" #include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" +#include "gpatInfo.hpp" +#include "phase.hpp" +#include #include #include -#include #include -#include -#include -#include #include -#include "gpatInfo.hpp" -#include "makeUnique.h" + // maaas speed #if defined HAS_OPENMP @@ -169,31 +167,19 @@ void loadGeneticMap(int start, int end){ } } - -void clearHaplotypes(string **haplotypes, int ntarget){ - for(int i= 0; i < ntarget; i++){ - haplotypes[i][0].clear(); - haplotypes[i][1].clear(); - } -} - -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } +void clearHaplotypes(std::vector>& haplotypes) { + for (int i = 0; i < haplotypes.size(); i++) { + haplotypes[i].first.clear(); + haplotypes[i].second.clear(); + } } - void countHaps(int nhaps, map & targetH, - string **haplotypes, int start, int end){ + const std::vector>& haplotypes, int start, int end){ for(int i = 0; i < nhaps; i++){ - std::string h1 = haplotypes[i][0].substr(start, (end - start)) ; - std::string h2 = haplotypes[i][1].substr(start, (end - start)) ; + std::string h1 = haplotypes[i].first.substr(start, (end - start)) ; + std::string h2 = haplotypes[i].second.substr(start, (end - start)) ; if(targetH.find(h1) == targetH.end()){ targetH[h1] = 1; @@ -210,43 +196,42 @@ void countHaps(int nhaps, map & targetH, } } -void computeNs(map & targetH, int start, - int end, double * sumT, char ref, bool dir){ +void computeNs(map & targetH, int /*start*/, + int /*end*/, double * sumT, char ref, bool dir){ - for( map::iterator th = targetH.begin(); - th != targetH.end(); th++){ + for(const auto& th : targetH){ - if(th->second < 2){ + if(th.second < 2){ continue; } // end is extending ; check first base if(dir){ - if( th->first[0] == ref){ + if( th.first[0] == ref){ // std::cerr << "count dat: " << th->first << " " << th->second << " " << ref << " " << dir << endl; - *sumT += r8_choose(th->second, 2); + *sumT += r8_choose(th.second, 2); } } // start is extending ; check last base else{ - int last = th->first.size() -1; - if( th->first[last] == ref ){ + int last = th.first.size() -1; + if( th.first[last] == ref ){ // std::cerr << "count dat:" << th->first << " " << th->second << " " << ref << " " << dir << endl; - *sumT += r8_choose(th->second, 2); + *sumT += r8_choose(th.second, 2); } } } } -bool calcEhh(string **haplotypes, int start, +bool calcEhh(const std::vector>& haplotypes, int start, int end, char ref, int nhaps, double * ehh, double div, bool dir){ @@ -268,7 +253,7 @@ bool calcEhh(string **haplotypes, int start, return true; } -int integrate(string ** haplotypes, +int integrate(std::vector>& haplotypes, vector & pos, bool direction, int maxl, @@ -340,11 +325,11 @@ int integrate(string ** haplotypes, return 10; } -void calc(string ** haplotypes, int nhaps, - vector & afs, vector & pos, - vector & target, vector & background, string seqid){ +void calc(std::vector>& haplotypes, int nhaps, + const vector &, vector & pos, + const vector &, const vector &, const string&){ - int maxl = haplotypes[0][0].length(); + int maxl = haplotypes[0].first.length(); for(int snp = 0; snp < maxl; snp++){ @@ -383,25 +368,12 @@ void calc(string ** haplotypes, int nhaps, } } -void loadPhased(string **haplotypes, genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} - int main(int argc, char** argv) { globalOpts.threads = 1 ; globalOpts.af = 0.05; - // zero based index for the target and background indivudals + // zero based index for the target and background individuals map it, ib; @@ -558,13 +530,12 @@ int main(int argc, char** argv) { vector samples = variantFile.sampleNames; int nsamples = samples.size(); - for(vector::iterator samp = samples.begin(); samp != samples.end(); samp++){ - - string sampleName = (*samp); + // TODO: fix loop + for(const auto& _ : samples){ if(it.find(index) != it.end() ){ - target_h.push_back(indexi); - indexi++; + target_h.push_back(indexi); + indexi++; } index++; } @@ -574,10 +545,7 @@ int main(int argc, char** argv) { vector afs; - string **haplotypes = new string*[target_h.size()]; - for (int i = 0; i < target_h.size(); i++) { - haplotypes[i] = new string[2]; - } + std::vector> haplotypes(target_h.size()); while (variantFile.getNextVariant(var)) { @@ -607,21 +575,19 @@ int main(int argc, char** argv) { sindex += 1; } - using Detail::makeUnique; - - unique_ptr populationTarget; + std::unique_ptr populationTarget; if(globalOpts.type == "PL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(globalOpts.type == "GL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(globalOpts.type == "GP"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(globalOpts.type == "GT"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } populationTarget->loadPop(target, var.position); @@ -634,7 +600,7 @@ int main(int argc, char** argv) { } positions.push_back(var.position); afs.push_back(populationTarget->af); - loadPhased(haplotypes, populationTarget.get(), populationTarget->gts.size()); + loadPhased(haplotypes, populationTarget.get()); } if(!globalOpts.geneticMapFile.empty()){ @@ -645,7 +611,7 @@ int main(int argc, char** argv) { calc(haplotypes, target_h.size(), afs, positions, target_h, background_h, globalOpts.seqid); - clearHaplotypes(haplotypes, target_h.size()); + clearHaplotypes(haplotypes); exit(0); diff --git a/src/mt19937ar.h b/src/mt19937ar.h index e471d640..76d8c3ca 100644 --- a/src/mt19937ar.h +++ b/src/mt19937ar.h @@ -49,10 +49,9 @@ http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space) */ +#pragma once -#include - -/* Period parameters */ +/* Period parameters */ #define N 624 #define M 397 #define MATRIX_A 0x9908b0dfUL /* constant vector a */ diff --git a/src/multichoose.h b/src/multichoose.h index 140dafe6..4ad97798 100644 --- a/src/multichoose.h +++ b/src/multichoose.h @@ -54,10 +54,11 @@ std::vector< std::vector > multichoose(int k, std::vector& objects) { } j=k; - while(1){ + while(true){ std::vector multiset; - for(int i=0;i #include #include -#include #include -#include -#include -#include #include #include #include "split.h" #include "gpatInfo.hpp" +#include "stats.hpp" struct options{ std::string file; @@ -147,8 +144,8 @@ int parseOpts(int argc, char** argv) return 1; } -bool sortAF(iHSdat * L, iHSdat * R){ - if(L->af < R->af){ +bool sortAF(const iHSdat& L, const iHSdat& R){ + if(L.af < R.af){ return true; } return false; @@ -165,16 +162,6 @@ bool sortAF(iHSdat * L, iHSdat * R){ */ -double var(vector & data, double mu){ - double variance = 0; - - for(vector::iterator it = data.begin(); it != data.end(); it++){ - variance += pow((*it) - mu,2); - } - - return variance / (data.size() - 1); -} - //------------------------------- SUBROUTINE -------------------------------- /* @@ -187,13 +174,13 @@ double var(vector & data, double mu){ */ -double windowAvg(std::vector & rangeData){ +double windowAvg(const std::vector & rangeData){ long double n = 0; long double s = 0; - for(std::vector::iterator it = rangeData.begin(); it != rangeData.end(); it++){ - s += *it; + for(const auto& elm : rangeData){ + s += elm; n += 1; } @@ -213,33 +200,33 @@ double windowAvg(std::vector & rangeData){ */ -void normalize(std::vector & data, int * pos){ +void normalize(std::vector & data, int * pos){ std::vector windat; int start = *pos; int end = *pos; - while((abs(data[start]->af - data[end]->af ) < globalOpts.afDiff) + while((abs(data[start].af - data[end].af ) < globalOpts.afDiff) && end < data.size() -1 ){ end += 1; } for(int i = start; i <= end; i++){ - windat.push_back(data[i]->iHS); + windat.push_back(data[i].iHS); } double avg = windowAvg(windat); - double sd = sqrt(var(windat, avg)); + double sd = vcflib::sample_standard_deviation(windat, avg); - std::cerr << "start: " << data[start]->af << " " - << "end: " << data[end]->af << " " + std::cerr << "start: " << data[start].af << " " + << "end: " << data[end].af << " " << "n iHS scores: " << windat.size() << " " << "mean: " << avg << " " << "sd: " << sd << std::endl; for(int i = start; i <= end; i++){ - data[i]->niHS = (data[i]->iHS - avg) / (sd); + data[i].niHS = (data[i].iHS - avg) / (sd); } *pos = end; @@ -261,28 +248,25 @@ int main( int argc, char** argv) exit(1); } - std::vector data; + std::vector data; string line; ifstream myfile (globalOpts.file); if (myfile.is_open()) { - while ( getline (myfile,line) ){ - vector lineDat = split(line, '\t'); - - iHSdat * tp = new iHSdat; - tp->seqid = lineDat[0]; - tp->start = lineDat[1]; - tp->af = atof(lineDat[2].c_str()); - tp->ehhR = atof(lineDat[3].c_str()); - tp->ehhA = atof(lineDat[4].c_str()); - tp->iHS = atof(lineDat[5].c_str()); - tp->F1 = lineDat[6].c_str(); - tp->F2 = lineDat[7].c_str(); - tp->niHS = 0; - - data.push_back(tp); - + while ( getline (myfile,line) ) { + vector lineDat = split(line, '\t'); + data.emplace_back(); + auto& tp = data.back(); + tp.seqid = lineDat[0]; + tp.start = lineDat[1]; + tp.af = atof(lineDat[2].c_str()); + tp.ehhR = atof(lineDat[3].c_str()); + tp.ehhA = atof(lineDat[4].c_str()); + tp.iHS = atof(lineDat[5].c_str()); + tp.F1 = lineDat[6].c_str(); + tp.F2 = lineDat[7].c_str(); + tp.niHS = 0; } myfile.close(); @@ -305,15 +289,15 @@ int main( int argc, char** argv) for(int i = 0; i < data.size(); i++){ - std::cout << data[i]->seqid << "\t" - << data[i]->start << "\t" - << data[i]->af << "\t" - << data[i]->ehhR << "\t" - << data[i]->ehhA << "\t" - << data[i]->iHS << "\t" - << data[i]->niHS << "\t" - << data[i]->F1 << "\t" - << data[i]->F2 << std::endl; + std::cout << data[i].seqid << "\t" + << data[i].start << "\t" + << data[i].af << "\t" + << data[i].ehhR << "\t" + << data[i].ehhA << "\t" + << data[i].iHS << "\t" + << data[i].niHS << "\t" + << data[i].F1 << "\t" + << data[i].F2 << std::endl; } diff --git a/src/pFst.cpp b/src/pFst.cpp index 32eecdf6..26121c97 100644 --- a/src/pFst.cpp +++ b/src/pFst.cpp @@ -8,21 +8,17 @@ */ #include "Variant.h" -#include "split.h" #include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" #include #include -#include #include -#include -#include -#include #include +#include + #include "gpatInfo.hpp" -#include "makeUnique.h" using namespace std; using namespace vcflib; @@ -78,16 +74,6 @@ double bound(double v){ return v; } -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } -} double logLbinomial(double x, double n, double p){ @@ -274,36 +260,34 @@ int main(int argc, char** argv) { index += 1; } - unique_ptr populationTarget ; - unique_ptr populationBackground ; - unique_ptr populationTotal ; - - using Detail::makeUnique; + std::unique_ptr populationTarget ; + std::unique_ptr populationBackground ; + std::unique_ptr populationTotal ; if(type == "PO"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "PL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GT"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } populationTotal->loadPop(total , var.position); diff --git a/src/pVst.cpp b/src/pVst.cpp index 8108d55d..1f8ab43e 100644 --- a/src/pVst.cpp +++ b/src/pVst.cpp @@ -8,25 +8,20 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" +#include "stats.hpp" +#include "gpatInfo.hpp" #include #include -#include #include -#include -#include -#include +#include #include #include #include -#include -#include -#include -#include "gpatInfo.hpp" +#include + #if defined HAS_OPENMP #include @@ -109,8 +104,8 @@ double bound(double v){ inline double var(vector & d, double mu){ double variance = 0; - for(vector::iterator it = d.begin(); it != d.end(); it++){ - variance += pow((*it) - mu,2); + for(const auto& it : d){ + variance += pow(it - mu,2); } return variance / (d.size() - 1); @@ -127,26 +122,6 @@ inline double var(vector & d, double mu){ */ -inline double mean(vector & data){ - - double sum = 0; - - for(vector::iterator it = data.begin(); it != data.end(); it++){ - sum += (*it); - } - return sum / data.size(); -} - -inline double mean(vector & data){ - - double sum = 0; - - for(vector::iterator it = data.begin(); it != data.end(); it++){ - sum += (*it); - } - return sum / data.size(); -} - double vst(copyNcounts * d){ double muA = mean(d->total ); @@ -201,16 +176,15 @@ void calc(copyNcounts * d){ int counter = 0; - for(std::vector::iterator it = d->total.begin(); - it!= d->total.end(); it++){ - if(counter < tsize){ - d->target.push_back(*it); - } - else{ - d->background.push_back(*it); - } - counter+=1; - } + for(const auto t : d->total){ + if(counter < tsize){ + d->target.push_back(t); + } + else{ + d->background.push_back(t); + } + counter+=1; + } // std::cerr << "PER\t" << v << "\t" << vst(d) << std::endl; @@ -247,38 +221,25 @@ void calc(copyNcounts * d){ //------------------------------- SUBROUTINE -------------------------------- -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } -} - // gotta load the dat so that we can permute using open MP void loadDat(copyNcounts * d, std::string & type, vector < map< string, vector > > & target, vector < map< string, vector > > & background){ - for(vector < map< string, vector > >::iterator it - = target.begin(); it!= target.end(); it++){ - d->target.push_back( atof((*it)[type].front().c_str()) ); - d->total.push_back( atof((*it)[type].front().c_str()) ); + for(auto& it : target){ + d->target.push_back( atof(it[type].front().c_str()) ); + d->total.push_back( atof(it[type].front().c_str()) ); - d->targetV += (*it)[type].front(); + d->targetV += it[type].front(); d->targetV += ","; } - for(vector < map< string, vector > >::iterator it - = background.begin(); it!= background.end(); it++){ - d->background.push_back( atof((*it)[type].front().c_str()) ); - d->total.push_back( atof((*it)[type].front().c_str()) ); + for(auto& it : background){ + d->background.push_back( atof(it[type].front().c_str()) ); + d->total.push_back( atof(it[type].front().c_str()) ); - d->backgroundV += (*it)[type].front(); + d->backgroundV += it[type].front(); d->backgroundV += ","; } @@ -451,9 +412,8 @@ int main(int argc, char** argv) { } std::map formatMap; - for(std::vector::iterator itz = var.format.begin(); - itz != var.format.end(); itz++){ - formatMap[*itz] = true; + for(const auto& itz : var.format){ + formatMap[itz] = true; } if(formatMap.find(type) == formatMap.end()){ diff --git a/src/pdflib.cpp b/src/pdflib.cpp index fc882acc..dfb16db8 100644 --- a/src/pdflib.cpp +++ b/src/pdflib.cpp @@ -12,8 +12,6 @@ # include # include # include -# include -# include using namespace std; diff --git a/src/pdflib.hpp b/src/pdflib.hpp index d194db1e..201217ca 100644 --- a/src/pdflib.hpp +++ b/src/pdflib.hpp @@ -6,6 +6,8 @@ This software is published under the MIT License. See the LICENSE file. */ +#pragma once + double i4_binomial_pdf ( int n, double p, int k ); int i4_binomial_sample ( int n, double pp ); diff --git a/src/permuteGPAT++.cpp b/src/permuteGPAT++.cpp index fd03130a..1102086a 100644 --- a/src/permuteGPAT++.cpp +++ b/src/permuteGPAT++.cpp @@ -46,17 +46,15 @@ THE SOFTWARE. */ #include -#include "split.h" #include #include #include -#include #include -#include -#include -#include +#include +#include #include -#include + +#include "split.h" struct options{ std::string file; diff --git a/src/permuteGPATsmoother.cpp b/src/permuteGPATsmoother.cpp index c5e731be..1660f758 100644 --- a/src/permuteGPATsmoother.cpp +++ b/src/permuteGPATsmoother.cpp @@ -44,19 +44,18 @@ THE SOFTWARE. */ -#include +#include "gpatInfo.hpp" #include "split.h" + +#include #include #include #include -#include #include -#include #include #include #include -#include -#include "gpatInfo.hpp" + struct options{ std::string file; diff --git a/src/permuteRegions.cpp b/src/permuteRegions.cpp index eefc511e..96978acf 100644 --- a/src/permuteRegions.cpp +++ b/src/permuteRegions.cpp @@ -44,22 +44,22 @@ THE SOFTWARE. */ -#include #include "split.h" +#include "gpatInfo.hpp" +#include "stats.hpp" + +#include #include #include #include #include -#include #include -#include #include #include #include -#include -#include "gpatInfo.hpp" #include + // print lock omp_lock_t lock; @@ -216,38 +216,23 @@ int parseOpts(int argc, char** argv) */ -bool getContiguousWindow(vector & data, vector & load, int n){ +bool getContiguousWindow(const vector & data, vector & load, int n){ int r = rand() % data.size(); if(r+n >= data.size()){ return false; } - if(data[r]->seqid != data[r+n]->seqid){ + if(data[r].seqid != data[r+n].seqid){ return false; } for(int i = r; i < r+n; i++){ - load.push_back(data[i]->score); + load.push_back(data[i].score); } return true; } - -//------------------------------- SUBROUTINE -------------------------------- - -double mean(vector & data){ - - double sum = 0; - - for(vector::iterator it = data.begin(); it != data.end(); it++){ - sum += (*it); - } - return sum / data.size(); -} - - - //------------------------------- SUBROUTINE -------------------------------- /* Function input : score, n, data @@ -275,7 +260,7 @@ void permute(double s, int n, vector & data, getWindow = getContiguousWindow(data, scores, n); } - double ns = mean(scores); + double ns = vcflib::mean(scores); if(ns > s){ *nSuc += 1; @@ -315,7 +300,7 @@ int parse = parseOpts(argc, argv); exit(1); } - vector< score *> data; + vector< score > data; ifstream wcDat (globalOpts.file.c_str()); @@ -339,13 +324,12 @@ int parse = parseOpts(argc, argv); } } - score * sp; - sp = new score; - sp->seqid = region[0] ; - sp->pos = atoi(region[1].c_str()); - sp->score = value ; + data.emplace_back(); + auto& sp = data.back(); - data.push_back(sp); + sp.seqid = region[0] ; + sp.pos = atoi(region[1].c_str()); + sp.score = value ; } } else{ @@ -361,22 +345,22 @@ int parse = parseOpts(argc, argv); ifstream smoothedFile (globalOpts.smoothed.c_str()); - vector sData; + vector sData; if(smoothedFile.is_open()){ while(getline(smoothedFile, line)){ vector region = split(line, "\t"); - smoothedInputData * sp = new smoothedInputData; - - sp->line = line; - sp->score = atof(region[globalOpts.valueIndex].c_str()); - sp->n = atoi(region[globalOpts.nIndex].c_str()); - sp->nPer = 0; - sp->nSuc = 0; - sp->ePv = 0; + sData.emplace_back(); + auto& sp = sData.back(); + + sp.line = line; + sp.score = atof(region[globalOpts.valueIndex].c_str()); + sp.n = atoi(region[globalOpts.nIndex].c_str()); + sp.nPer = 0; + sp.nSuc = 0; + sp.ePv = 0; - sData.push_back(sp); } } smoothedFile.close(); @@ -385,27 +369,18 @@ int parse = parseOpts(argc, argv); #pragma omp parallel for schedule(dynamic, 20) for(int i = 0; i < sData.size(); i++){ - permute(sData[i]->score, sData[i]->n, - data, &sData[i]->nPer, - &sData[i]->nSuc, &sData[i]->ePv); + permute(sData[i].score, sData[i].n, + data, &sData[i].nPer, + &sData[i].nSuc, &sData[i].ePv); omp_set_lock(&lock); - cout << sData[i]->line - << "\t" << sData[i]->nSuc - << "\t" << sData[i]->nPer - << "\t" << sData[i]->ePv << endl; + cout << sData[i].line + << "\t" << sData[i].nSuc + << "\t" << sData[i].nPer + << "\t" << sData[i].ePv << endl; omp_unset_lock(&lock); } - for(vector::iterator itz = data.begin(); - itz != data.end(); itz++){ - delete *itz; - } - for(vector::iterator itz = sData.begin(); - itz != sData.end(); itz++){ - delete *itz; - } - - -return 0; + + return 0; } diff --git a/src/permuteSmooth.cpp b/src/permuteSmooth.cpp index 10b42acd..33cafe27 100644 --- a/src/permuteSmooth.cpp +++ b/src/permuteSmooth.cpp @@ -45,20 +45,19 @@ THE SOFTWARE. */ -#include #include "split.h" +#include "stats.hpp" +#include "gpatInfo.hpp" + +#include #include #include #include #include -#include #include -#include -#include -#include +#include +#include #include -#include -#include "gpatInfo.hpp" #if defined HAS_OPENMP #include @@ -230,7 +229,7 @@ int parseOpts(int argc, char** argv) */ -bool getContiguousWindow(vector & data, +bool getContiguousWindow(const vector & data, vector & load, int n, int * nfail){ int r = rand() % data.size(); @@ -251,21 +250,6 @@ bool getContiguousWindow(vector & data, return true; } - -//------------------------------- SUBROUTINE -------------------------------- - -double mean(vector & data){ - - double sum = 0; - - for(vector::iterator it = data.begin(); it != data.end(); it++){ - sum += (*it); - } - return sum / data.size(); -} - - - //------------------------------- SUBROUTINE -------------------------------- /* Function input : score, n, data @@ -299,7 +283,7 @@ bool permute(double s, int n, vector & data, getWindow = getContiguousWindow(data, scores, n, &nfail); } - double ns = mean(scores); + double ns = vcflib::mean(scores); if(ns > s){ *nSuc += 1; @@ -446,14 +430,12 @@ int parse = parseOpts(argc, argv); } } - for(vector::iterator itz = data.begin(); - itz != data.end(); itz++){ - delete *itz; - } - for(vector::iterator itz = sData.begin(); - itz != sData.end(); itz++){ - delete *itz; - } + for(auto* score : data){ + delete score; + } + for(auto* smoothed : sData){ + delete smoothed; + } return 0; diff --git a/src/phase.cpp b/src/phase.cpp new file mode 100644 index 00000000..aa05d85e --- /dev/null +++ b/src/phase.cpp @@ -0,0 +1,18 @@ +#include "phase.hpp" + +#include "split.h" + +namespace vcflib +{ + void loadPhased(std::vector>& haplotypes, const genotype* pop) { + + int indIndex = 0; + + for (const auto& g : pop->gts) { + vector< string > gs = split(g, "|"); + haplotypes[indIndex].first.append(gs[0]); + haplotypes[indIndex].first.append(gs[1]); + indIndex += 1; + } + } +} \ No newline at end of file diff --git a/src/phase.hpp b/src/phase.hpp new file mode 100644 index 00000000..d4305612 --- /dev/null +++ b/src/phase.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include +#include +#include + +#include "var.hpp" + +namespace vcflib +{ + void loadPhased(std::vector>& haplotypes, const genotype* pop); +} diff --git a/src/plotHaps.cpp b/src/plotHaps.cpp index 82c8a790..74664716 100644 --- a/src/plotHaps.cpp +++ b/src/plotHaps.cpp @@ -8,20 +8,17 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" -#include "makeUnique.h" +#include "index.hpp" +#include "phase.hpp" #include #include -#include #include -#include #include #include #include +#include using namespace std; using namespace vcflib; @@ -49,123 +46,13 @@ void printHelp(void){ exit(1); } -void clearHaplotypes(string **haplotypes, int ntarget){ - for(int i= 0; i < ntarget; i++){ - haplotypes[i][0].clear(); - haplotypes[i][1].clear(); - } -} - -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } -} - -void calc(string **haplotypes, int nhaps, vector afs, vector pos, vector & target, vector & background, string seqid){ - - for(int snp = 0; snp < haplotypes[0][0].length(); snp++){ - - double ehhA = 1; - double ehhR = 1; - - double iHSA = 1; - double iHSR = 1; - - int start = snp; - int end = snp; - int core = snp; - - while( ehhA > 0.05 && ehhR > 0.05 ) { - - start -= 1; - end += 1; - - if(start == -1){ - break; - } - if(end == haplotypes[0][0].length() - 1){ - break; - } - - map targetH; - - double sumrT = 0; - double sumaT = 0; - double nrefT = 0; - double naltT = 0; - - for(int i = 0; i < nhaps; i++){ - targetH[ haplotypes[i][0].substr(start, (end - start)) ]++; - targetH[ haplotypes[i][1].substr(start, (end - start)) ]++; - } - for( map::iterator th = targetH.begin(); th != targetH.end(); th++){ - if( (*th).first.substr((end-start)/2, 1) == "1"){ - sumaT += r8_choose(th->second, 2); - naltT += th->second; - } - else{ - sumrT += r8_choose(th->second, 2); - nrefT += th->second; - } - } - - ehhA = sumaT / (r8_choose(naltT, 2)); - ehhR = sumrT / (r8_choose(nrefT, 2)); - - iHSA += ehhA; - iHSR += ehhR; - } - cout << seqid << "\t" << pos[snp] << "\t" << afs[snp] << "\t" << iHSA << "\t" << iHSR << "\t" << iHSA/iHSR << endl; - } -} - -double EHH(string **haplotypes, int nhaps){ - - map hapcounts; - - for(int i = 0; i < nhaps; i++){ - hapcounts[ haplotypes[i][0] ]++; - hapcounts[ haplotypes[i][1] ]++; - } - - double sum = 0; - double nh = 0; - - for( map::iterator it = hapcounts.begin(); it != hapcounts.end(); it++){ - nh += it->second; - sum += r8_choose(it->second, 2); - } - - double max = (sum / r8_choose(nh, 2)); - - return max; - -} - -void loadPhased(string **haplotypes, genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} - -void printHaplotypes(string **haps, vector target, vector pos){ - for(int snp = 0; snp < haps[0][1].length(); snp++){ +void printHaplotypes(const std::vector>& haps, const std::vector& target, vector pos){ + for(int snp = 0; snp < haps[0].second.length(); snp++){ cout << pos[snp] << "\t" ; - for(int ind = 0; ind < target.size(); ind++){ - cout << haps[target[ind]][0].substr(snp , 1) << "\t"; - cout << haps[target[ind]][1].substr(snp , 1) << "\t"; + for (const int t : target) + { + cout << haps[t].first.substr(snp , 1) << "\t"; + cout << haps[t].second.substr(snp , 1) << "\t"; } cout << endl; } @@ -305,23 +192,20 @@ int main(int argc, char** argv) { int index = 0; int indexi = 0; - for(vector::iterator samp = samples.begin(); samp != samples.end(); samp++){ + for(const auto& _ : samples){ - if(it.find(index) != it.end() ){ - target_h.push_back(indexi); - indexi++; - } - index++; - } + if(it.find(index) != it.end() ){ + target_h.push_back(indexi); + indexi++; + } + index++; + } vector positions; vector afs; - string **haplotypes = new string*[target_h.size()]; - for (int i = 0; i < target_h.size(); i++) { - haplotypes[i] = new string[2]; - } + std::vector> haplotypes(target_h.size()); string currentSeqid = "NA"; @@ -352,28 +236,26 @@ int main(int argc, char** argv) { sindex += 1; } - using Detail::makeUnique; - - unique_ptr populationTarget ; + std::unique_ptr populationTarget ; if(type == "PL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(type == "GT"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } populationTarget->loadPop(target, var.position); positions.push_back(var.position); afs.push_back(populationTarget->af); - loadPhased(haplotypes, populationTarget.get(), populationTarget->gts.size()); + loadPhased(haplotypes, populationTarget.get()); } printHaplotypes( haplotypes, target_h, positions); diff --git a/src/popStats.cpp b/src/popStats.cpp index 0700bbd2..da6485c6 100644 --- a/src/popStats.cpp +++ b/src/popStats.cpp @@ -8,21 +8,17 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" #include #include -#include #include -#include -#include -#include +#include #include +#include + #include "gpatInfo.hpp" -#include "makeUnique.h" using namespace std; using namespace vcflib; @@ -71,18 +67,6 @@ double bound(double v){ return v; } -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } -} - - int main(int argc, char** argv) { // set the random seed for MCMC @@ -232,22 +216,21 @@ int main(int argc, char** argv) { index += 1; } - using Detail::makeUnique; - unique_ptr populationTarget ; + std::unique_ptr populationTarget ; unique_ptr populationBackground ; if(type == "PL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } if(type == "GT"){ - populationTarget = makeUnique(); + populationTarget = std::make_unique(); } populationTarget->loadPop(target, var.position); diff --git a/src/rkmh.cpp b/src/rkmh.cpp index 43def25b..72cc78bf 100644 --- a/src/rkmh.cpp +++ b/src/rkmh.cpp @@ -1,5 +1,9 @@ #include "rkmh.hpp" +#include +#include +#include + namespace rkmh { // Check a string (as a char*) for non-canonical DNA bases diff --git a/src/rkmh.hpp b/src/rkmh.hpp index a6b6a59e..d7fa40bc 100644 --- a/src/rkmh.hpp +++ b/src/rkmh.hpp @@ -1,13 +1,6 @@ #pragma once -#include #include -#include -#include -#include -#include -#include -#include #include "murmur3.hpp" // From Eric's https://github.com/edawson/rkmh diff --git a/src/rnglib.cpp b/src/rnglib.cpp index 0adb3bdd..b2191f37 100644 --- a/src/rnglib.cpp +++ b/src/rnglib.cpp @@ -10,7 +10,6 @@ # include # include # include -# include using namespace std; diff --git a/src/rnglib.hpp b/src/rnglib.hpp index 26ee2d44..3d496db8 100644 --- a/src/rnglib.hpp +++ b/src/rnglib.hpp @@ -6,6 +6,8 @@ This software is published under the MIT License. See the LICENSE file. */ +#pragma once + void advance_state ( int k ); bool antithetic_get ( ); diff --git a/src/segmentFst.cpp b/src/segmentFst.cpp index 9b63a8ad..253f98f8 100644 --- a/src/segmentFst.cpp +++ b/src/segmentFst.cpp @@ -49,13 +49,8 @@ THE SOFTWARE. #include #include #include -#include #include -#include -#include -#include #include -#include #include "split.h" #include "gpatInfo.hpp" diff --git a/src/segmentIhs.cpp b/src/segmentIhs.cpp index d0b9def4..e7010fcd 100644 --- a/src/segmentIhs.cpp +++ b/src/segmentIhs.cpp @@ -49,13 +49,8 @@ THE SOFTWARE. #include #include #include -#include #include -#include -#include -#include #include -#include #include "split.h" #include "gpatInfo.hpp" diff --git a/src/sequenceDiversity.cpp b/src/sequenceDiversity.cpp index ba0171dd..6dcf3d42 100644 --- a/src/sequenceDiversity.cpp +++ b/src/sequenceDiversity.cpp @@ -8,21 +8,19 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" #include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" +#include "gpatInfo.hpp" +#include "phase.hpp" #include #include -#include #include -#include -#include -#include +#include #include -#include "makeUnique.h" -#include "gpatInfo.hpp" +#include + using namespace std; using namespace vcflib; @@ -61,20 +59,10 @@ void printHelp(void){ exit(1); } -void clearHaplotypes(string **haplotypes, int ntarget){ - for(int i= 0; i < ntarget; i++){ - haplotypes[i][0].clear(); - haplotypes[i][1].clear(); - } -} - -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; +void clearHaplotypes(std::vector>& haplotypes){ + for(int i= 0; i < haplotypes.size(); i++){ + haplotypes[i].first.clear(); + haplotypes[i].second.clear(); } } @@ -82,9 +70,8 @@ void pi(map & hapWin, int nHaps, double * pi, double * eHH, int wle double nchooseSum = 0; // summing over all possible haplotypes - for(map::iterator it = hapWin.begin(); - it != hapWin.end(); it++){ - nchooseSum += r8_choose(it->second, 2); + for(const auto& it : hapWin){ + nchooseSum += r8_choose(it.second, 2); } double piSum = 0; @@ -118,24 +105,26 @@ void pi(map & hapWin, int nHaps, double * pi, double * eHH, int wle //calc(haplotypes, nsamples, positions, targetAFS, backgroundAFS, external, derived, windowSize, target_h, background_h, currentSeqid) -void calc(string **haplotypes, int nhaps, vector pos, vector tafs, vector bafs, int external, int derived, int window, vector & target, vector & background, string seqid){ +void calc(const std::vector>& haplotypes, int, + vector pos, const vector&, const vector&, int , + int, int window, const vector & target, const vector & , const string& seqid){ - if(haplotypes[0][0].length() < (window-1) ){ + if(haplotypes[0].first.length() < (window-1) ){ return; } - for(int snpA = 0; snpA < haplotypes[0][0].length() - window; snpA += 1){ + for(int snpA = 0; snpA < haplotypes[0].first.length() - window; snpA += 1){ map targetHaplotypes; - for(int targetIndex = 0; targetIndex < target.size(); targetIndex++ ){ + for(const auto t : target){ string haplotypeA; string haplotypeB; - haplotypeA += haplotypes[target[targetIndex]][0].substr(snpA, window) ; - haplotypeB += haplotypes[target[targetIndex]][1].substr(snpA, window) ; + haplotypeA += haplotypes[t].first.substr(snpA, window) ; + haplotypeB += haplotypes[t].second.substr(snpA, window) ; targetHaplotypes[haplotypeA]++; targetHaplotypes[haplotypeB]++; @@ -157,19 +146,6 @@ void calc(string **haplotypes, int nhaps, vector pos, vector t } -void loadPhased(string **haplotypes, genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} - int main(int argc, char** argv) { // set the random seed for MCMC @@ -356,11 +332,10 @@ int main(int argc, char** argv) { int index = 0, indexi = 0; - for(vector::iterator samp = samples.begin(); samp != samples.end(); samp++){ - string sampleName = (*samp); + for(const auto& _ : samples){ if(targetIndex.find(index) != targetIndex.end() ){ - target_h.push_back(indexi); - indexi++; + target_h.push_back(indexi); + indexi++; } if(backgroundIndex.find(index) != backgroundIndex.end()){ background_h.push_back(indexi); @@ -373,11 +348,8 @@ int main(int argc, char** argv) { vector targetAFS; vector backgroundAFS; - string **haplotypes = new string*[nsamples]; - for (int i = 0; i < nsamples; i++) { - haplotypes[i] = new string[2]; - } - + std::vector> haplotypes(nsamples); + string currentSeqid = "NA"; while (variantFile.getNextVariant(var)) { @@ -391,10 +363,10 @@ int main(int argc, char** argv) { continue; } if(currentSeqid != var.sequenceName){ - if(haplotypes[0][0].length() > windowSize){ + if(haplotypes[0].first.length() > windowSize){ calc(haplotypes, nsamples, positions, targetAFS, backgroundAFS, external, derived, windowSize, target_h, background_h, currentSeqid); } - clearHaplotypes(haplotypes, nsamples); + clearHaplotypes(haplotypes); positions.clear(); currentSeqid = var.sequenceName; targetAFS.clear(); @@ -421,31 +393,30 @@ int main(int argc, char** argv) { sindex += 1; } - unique_ptr populationTarget ; - unique_ptr populationBackground; - unique_ptr populationTotal ; + std::unique_ptr populationTarget ; + std::unique_ptr populationBackground; + std::unique_ptr populationTotal ; - using Detail::makeUnique; if(type == "PL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GT"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } populationTarget->loadPop(target, var.position); @@ -461,7 +432,7 @@ int main(int argc, char** argv) { targetAFS.push_back(populationTarget->af); backgroundAFS.push_back(populationBackground->af); positions.push_back(var.position); - loadPhased(haplotypes, populationTotal.get(), nsamples); + loadPhased(haplotypes, populationTotal.get()); } diff --git a/src/simde b/src/simde index 5e225b1c..099e7116 160000 --- a/src/simde +++ b/src/simde @@ -1 +1 @@ -Subproject commit 5e225b1c6a9241df91a97ade64fd3ebe39b3e6fb +Subproject commit 099e7116c8465043afed2b7caad63cefc4dd2657 diff --git a/src/smoother.cpp b/src/smoother.cpp index 3a7fc83e..78babcd0 100644 --- a/src/smoother.cpp +++ b/src/smoother.cpp @@ -14,11 +14,10 @@ #include #include #include +#include + #include "split.h" -#include -#include #include "gpatInfo.hpp" -#include using namespace std; @@ -70,14 +69,13 @@ void printHelp(void){ cerr << endl << endl; } -double ngreater(list & rangeData, double val){ +double ngreater(const std::list & rangeData, double val){ double n = 0; - for(list::iterator it = rangeData.begin(); - it != rangeData.end(); it++ ){ - if(it->score >= val){ + for(const auto& elm : rangeData){ + if(elm.score >= val){ n += 1; } } @@ -85,26 +83,26 @@ double ngreater(list & rangeData, double val){ } -double windowAvg(list & rangeData){ +double windowAvg(const std::list& rangeData){ double n = 0; double s = 0; - for(list::iterator it = rangeData.begin(); it != rangeData.end(); it++){ - s += it->score; + for(const auto& elm : rangeData){ + s += elm.score; n += 1; } return (s/n); } //calculation of Patterson's D statistic -double dStatistic(list & rangeData){ +double dStatistic(const std::list & rangeData){ double abba = 0; double baba = 0; double dstat ; - for(list::iterator it = rangeData.begin(); it != rangeData.end(); it++){ - if(it->score == 0){ // means we have BABA locus + for(const auto& elm : rangeData){ + if(elm.score == 0){ // means we have BABA locus baba += 1; } else{ // count towards ABBA locus @@ -115,7 +113,7 @@ double dStatistic(list & rangeData){ return (dstat); } -void processSeqid(ifstream & file, string seqid, streampos offset, opts & opt){ +void processSeqid(ifstream & file, const string& seqid, streampos offset, opts & opt){ string line ; @@ -380,9 +378,9 @@ int main(int argc, char** argv) { cerr << "FATAL: no lines -- or -- couldn't open file" << endl; } - for( map< string, streampos>::iterator it = seqidIndex.begin(); it != seqidIndex.end(); it++){ - cerr << "INFO: processing seqid : "<< (it->first) << endl; - processSeqid(ifs, (it->first),(it->second), opt); + for(const auto&[first, second] : seqidIndex) { + cerr << "INFO: processing seqid : "<< first << endl; + processSeqid(ifs, first, second, opt); } ifs.close(); diff --git a/src/split.h b/src/split.h index e2179dc3..ce8bcd53 100644 --- a/src/split.h +++ b/src/split.h @@ -13,8 +13,7 @@ // functions to split a string by a specific delimiter #include #include -#include -#include + // thanks to Evan Teran, http://stackoverflow.com/questions/236129/how-to-split-a-string/236803#236803 diff --git a/src/splitUniqStarts.cpp b/src/splitUniqStarts.cpp index 88792b77..418e736c 100644 --- a/src/splitUniqStarts.cpp +++ b/src/splitUniqStarts.cpp @@ -8,18 +8,11 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" #include #include -#include #include -#include -#include -#include #include #include "gpatInfo.hpp" diff --git a/src/ssw_cpp.hpp b/src/ssw_cpp.hpp index be464fef..060a1cc1 100644 --- a/src/ssw_cpp.hpp +++ b/src/ssw_cpp.hpp @@ -10,7 +10,7 @@ #ifndef VCFLIB_COMPLETE_STRIPED_SMITH_WATERMAN_CPP_H_ #define VCFLIB_COMPLETE_STRIPED_SMITH_WATERMAN_CPP_H_ -#include +#include #include #include diff --git a/src/stats.cpp b/src/stats.cpp new file mode 100644 index 00000000..769b906f --- /dev/null +++ b/src/stats.cpp @@ -0,0 +1,61 @@ +#include "stats.hpp" + +#include +#include +#include + +using namespace std; + +namespace vcflib +{ + double median(vector& v) + { + size_t n = v.size() / 2; + nth_element(v.begin(), v.begin() + n, v.end()); + return v[n]; + } + + double mean(const vector& data) + { + double sum = accumulate(data.cbegin(), data.cend(), 0.0); + return sum / data.size(); + } + + + double mean(const vector& data) + { + double sum = 0; + + for (const auto d : data) { + sum += d; + } + return sum / data.size(); + } + + + double variance(const vector & data, const double mean) { + double total = 0; + for (const auto x : data) { + total += (x - mean) * (x - mean); + } + return total / (data.size()); + } + + double sample_variance(const std::vector &data, double mean) { + double variance = 0; + + for(const auto& d : data){ + variance += pow(d - mean,2); + } + + return variance / (data.size() - 1); + } + + double standard_deviation(const vector & data, const double mean) { + return sqrt(variance(data, mean)); + } + + double sample_standard_deviation(const std::vector &data, double mean) { + return sqrt(sample_variance(data, mean)); + } +} diff --git a/src/stats.hpp b/src/stats.hpp new file mode 100644 index 00000000..970238aa --- /dev/null +++ b/src/stats.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include + +namespace vcflib +{ + double median(std::vector& v); + + double mean(const std::vector& data); + double mean(const std::vector& data); + + double variance(const std::vector & data, double mean); + double sample_variance(const std::vector & data, double mean); + + double standard_deviation(const std::vector & data, double mean); + double sample_standard_deviation(const std::vector & data, double mean); +} diff --git a/src/var.cpp b/src/var.cpp index 91257070..51ddd6c7 100644 --- a/src/var.cpp +++ b/src/var.cpp @@ -19,15 +19,18 @@ #include "var.hpp" -genotype::~genotype(){} +#include +#include -zvar::~zvar(){} +genotype::~genotype() = default; + +zvar::~zvar() = default; void zvar::setPopName(string popName){ - name = popName; + name = std::move(popName); } -pooled::~pooled(){} +pooled::~pooled() = default; double pooled::bound(double v){ if(v <= 0.00001){ @@ -39,7 +42,7 @@ double pooled::bound(double v){ return v; } -gl::~gl(){} +gl::~gl() = default; gl::gl(void){ nalt = 0; @@ -56,7 +59,7 @@ gl::gl(void){ beta = 0.01; } -pl::~pl(){} +pl::~pl() = default; pl::pl(void){ nalt = 0; @@ -92,7 +95,7 @@ gp::gp(void){ } -gt::~gt(){} +gt::~gt() = default; gt::gt(void){ nalt = 0; @@ -153,20 +156,17 @@ double pl::unphred(map< string, vector > & geno, int index){ } void pooled::loadPop(vector< map< string, vector > > & group, long int position){ - vector< map< string, vector > >::iterator targ_it = group.begin(); - + for(auto& target : group){ - for(; targ_it != group.end(); targ_it++){ - - string genotype = (*targ_it)["GT"].front(); + string genotype = target["GT"].front(); if(genotype == "./."){ continue; } - string allelecounts = (*targ_it)["AD"].front(); + // string allelecounts = target["AD"].front(); - vector ac = (*targ_it)["AD"]; + vector ac = target["AD"]; npop += 1; @@ -257,11 +257,9 @@ void pooled::estimatePosterior(void){ void genotype::loadPop( vector< map< string, vector > >& group, long int position){ pos = position ; - vector< map< string, vector > >::iterator targ_it = group.begin(); - - for(; targ_it != group.end(); targ_it++){ + for(auto& target : group){ - string genotype = (*targ_it)["GT"].front(); + string genotype = target["GT"].front(); if(genotype == "./0" || genotype == "./1" || genotype == "."){ genotype = "./."; @@ -275,9 +273,9 @@ void genotype::loadPop( vector< map< string, vector > >& group, long int double sum = 0; if(genotype != "./."){ - double pa = unphred( (*targ_it), 0) ; - double pab = unphred( (*targ_it), 1) ; - double pbb = unphred( (*targ_it), 2) ; + double pa = unphred( target, 0) ; + double pab = unphred( target, 1) ; + double pbb = unphred( target, 2) ; double norm = log(exp(pa) + exp(pab) + exp(pbb)) ; @@ -298,6 +296,7 @@ void genotype::loadPop( vector< map< string, vector > >& group, long int phredsCDF.push_back(sum); } else{ + // TODO: 1/3 is 0, possibly a bug? phreds.push_back(log(1/3)); phreds.push_back(log(1/3)); phreds.push_back(log(1/3)); diff --git a/src/var.hpp b/src/var.hpp index ec3cef8d..de5b26bb 100644 --- a/src/var.hpp +++ b/src/var.hpp @@ -15,11 +15,6 @@ #include #include #include -#include -#include -#include -#include -#include "split.h" using namespace std; diff --git a/src/vcf-c-api.cpp b/src/vcf-c-api.cpp index e2ddf734..28cf8c03 100644 --- a/src/vcf-c-api.cpp +++ b/src/vcf-c-api.cpp @@ -117,7 +117,7 @@ const char **var_geno(void *var, const char **ret) { auto v = static_cast(var); auto samples = v->samples; int idx = 0; - for (auto sname: v->sampleNames) { + for (const auto& sname: v->sampleNames) { // cout << sname ; // cout << samples[sname]["GT"].front() << endl; diff --git a/src/vcf-c-api.h b/src/vcf-c-api.h index 43f52315..e879a15b 100644 --- a/src/vcf-c-api.h +++ b/src/vcf-c-api.h @@ -5,6 +5,7 @@ // do not use extern "C" because this file ought to be ready for a C compiler (!C++) // VCF constructors +#pragma once void *var_parse(const char *line, bool parse_samples); diff --git a/src/vcf-wfa.cpp b/src/vcf-wfa.cpp index 04bead94..5794ecb7 100644 --- a/src/vcf-wfa.cpp +++ b/src/vcf-wfa.cpp @@ -10,6 +10,13 @@ #include "Variant.h" #include "vcf-wfa.h" +#include "convert.h" + +#include "cigar.hpp" +#include "join.h" +#include "rkmh.hpp" + + namespace vcflib { // parsedAlternates returns a hash of 'ref' and a vector of alts. A @@ -78,11 +85,10 @@ map,bool> > WfaVariant::wfa_parsedAlternates( */ // #pragma omp parallel for - for (auto a: alt) { // iterate ALT strings + for (const auto& alternate: alt) { // iterate ALT strings //for (uint64_t idx = 0; idx < alt.size(); ++idx) { //auto& a = alt[idx]; // unsigned int referencePos; - string alternate = a; pair, bool>& _v = variantAlleles[alternate]; bool is_inv = false; // get the alt/ref mapping in inversion space @@ -93,7 +99,7 @@ map,bool> > WfaVariant::wfa_parsedAlternates( && max((int)ref.size(), (int)alt.size()) > invMinLen) { // check if it's more likely for us to align as an inversion auto alt_sketch = rkmh::hash_sequence( - a.c_str(), a.size(), invKmerLen, a.size()-invKmerLen+1); + alternate.c_str(), alternate.size(), invKmerLen, alternate.size()-invKmerLen+1); if (rkmh::compare(alt_sketch, ref_sketch_fwd, invKmerLen) > rkmh::compare(alt_sketch, ref_sketch_rev, invKmerLen)) { is_inv = true; @@ -334,22 +340,22 @@ void Variant::reduceAlleles( map, bool> > varAlleles, VariantCallFile &variantFile, Variant var, - string parseFlag, + const string& parseFlag, bool keepInfo, bool keepGeno, bool debug) { set alleles; // collect unique alleles - for (auto a: varAlleles) { - for (auto va: a.second.first) { + for (const auto& a: varAlleles) { + for (const auto& va: a.second.first) { if (debug) cerr << a.first << " " << va << endl; alleles.insert(va); // only inserts first unique allele and ignores next ones } } int altcount = 0; - for (auto a: alleles) { + for (const auto& a: alleles) { if (a.ref != a.alt) { ++altcount; if (debug) cerr << altcount << "$" << a << endl; @@ -363,9 +369,9 @@ void Variant::reduceAlleles( // collect variant allele indexed membership map > variantAlleleIndexes; // from serialized VariantAllele to indexes - for (auto a: varAlleles) { + for (const auto& a: varAlleles) { int index = var.altAlleleIndexes[a.first] + 1; // make non-relative - for (auto va: a.second.first) { + for (const auto& va: a.second.first) { variantAlleleIndexes[va].push_back(index); } } @@ -379,10 +385,10 @@ void Variant::reduceAlleles( }; map alleleStuff; - for (auto a: var.alt) { - auto varalleles = varAlleles[a].first; + for (const auto& a: var.alt) { + const auto& varalleles = varAlleles[a].first; bool is_inv = varAlleles[a].second; - for (auto va: varalleles) { + for (const auto& va: varalleles) { alleleStuff[va].in_inv += is_inv; } } @@ -390,13 +396,13 @@ void Variant::reduceAlleles( bool hasAf = false; if (var.info.find("AF") != var.info.end()) { hasAf = true; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - vector& vars = varAlleles[*a].first; - for (vector::iterator va = vars.begin(); va != vars.end(); ++va) { + for (const auto& a : var.alt) { + const vector& vars = varAlleles[a].first; + for (const auto& va : vars) { double freq; try { - convert(var.info["AF"].at(var.altAlleleIndexes[*a]), freq); - alleleStuff[*va].freq += freq; + convert(var.info["AF"].at(var.altAlleleIndexes[a]), freq); + alleleStuff[va].freq += freq; } catch (...) { cerr << "vcfallelicprimitives WARNING: AF does not have count == alts @ " << var.sequenceName << ":" << var.position << endl; @@ -408,9 +414,9 @@ void Variant::reduceAlleles( bool hasAc = false; if (var.info.find("AC") != var.info.end()) { hasAc = true; - for (auto a: var.alt) { - auto vars = varAlleles[a].first; - for (auto va: vars) { + for (const auto& a: var.alt) { + const auto& vars = varAlleles[a].first; + for (const auto& va: vars) { int count; try { convert(var.info["AC"].at(var.altAlleleIndexes[a]), count); @@ -424,21 +430,20 @@ void Variant::reduceAlleles( } if (keepInfo) { - for (map >::iterator infoit = var.info.begin(); - infoit != var.info.end(); ++infoit) { - string key = infoit->first; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - vector& vars = varAlleles[*a].first; - for (vector::iterator va = vars.begin(); va != vars.end(); ++va) { + for (const auto& infoit : var.info) { + const string& key = infoit.first; + for (const auto& alternate : var.alt) { + const vector& vars = varAlleles[alternate].first; + for (const auto& va : vars) { string val; vector& vals = var.info[key]; if (vals.size() == var.alt.size()) { // allele count for info - val = vals.at(var.altAlleleIndexes[*a]); + val = vals.at(var.altAlleleIndexes[alternate]); } else if (vals.size() == 1) { // site-wise count val = vals.front(); } // don't handle other multiples... how would we do this without going crazy? if (!val.empty()) { - alleleStuff[*va].info[key] = val; + alleleStuff[va].info[key] = val; } } } @@ -470,8 +475,8 @@ void Variant::reduceAlleles( vector& originalIndexes = variantAlleleIndexes[*a]; string type; int len = 0; - if (a->ref.size() && a->alt.size() - && a->ref.at(0) == a->alt.at(0)) { // well-behaved indels + if (!a->ref.empty() && !a->alt.empty() + && a->ref.at(0) == a->alt.at(0)) { // well-behaved indels if (a->ref.size() > a->alt.size()) { type = "del"; len = a->ref.size() - a->alt.size(); @@ -532,9 +537,7 @@ void Variant::reduceAlleles( v.info["AC"].push_back(convert(alleleStuff[*a].count)); } if (keepInfo) { - for (map >::iterator infoit = var.info.begin(); - infoit != var.info.end(); ++infoit) { - string key = infoit->first; + for (const auto&[key, _] : var.info) { if (key != "AF" && key != "AC" && key != "TYPE" && key != "LEN") { // don't clobber previous v.info[key].push_back(alleleStuff[*a].info[key]); } @@ -546,16 +549,16 @@ void Variant::reduceAlleles( v.sequenceName = var.sequenceName; v.position = a->position; // ... by definition, this should be == if the variant was found if (v.ref.size() < a->ref.size()) { - for (vector::iterator va = v.alt.begin(); va != v.alt.end(); ++va) { - *va += a->ref.substr(v.ref.size()); + for (auto& va : v.alt) { + va += a->ref.substr(v.ref.size()); } v.ref = a->ref; } v.alt.push_back(a->alt); int alleleIndex = v.alt.size(); - for (vector::iterator i = originalIndexes.begin(); i != originalIndexes.end(); ++i) { - unpackedAlleleIndexes[*i][v.position] = alleleIndex; + for (const auto& originalIndex : originalIndexes) { + unpackedAlleleIndexes[originalIndex][v.position] = alleleIndex; //unpackedAlleleInversions[*i] = v.inv } // add null allele @@ -595,31 +598,30 @@ void Variant::reduceAlleles( } // genotypes - for (vector::iterator s = var.sampleNames.begin(); s != var.sampleNames.end(); ++s) { - string& sampleName = *s; - if (var.samples.find(sampleName) == var.samples.end()) { + for (auto& sampleName : var.sampleNames) { + auto samplesIt = var.samples.find(sampleName); + if (samplesIt == var.samples.end()) { continue; } - map >& sample = var.samples[sampleName]; + map >& sample = samplesIt->second; if (sample.find("GT") == sample.end()) { continue; } string& genotype = sample["GT"].front(); vector genotypeStrs = split(genotype, "|/"); vector genotypeIndexes; - for (vector::iterator s = genotypeStrs.begin(); s != genotypeStrs.end(); ++s) { + for (const auto& genotypeStr : genotypeStrs) { int i; - if (!convert(*s, i)) { + if (!convert(genotypeStr, i)) { genotypeIndexes.push_back(ALLELE_NULL); } else { genotypeIndexes.push_back(i); } } map > positionIndexes; - for (vector::iterator g = genotypeIndexes.begin(); g != genotypeIndexes.end(); ++g) { - int oldIndex = *g; - for (map::iterator v = variants.begin(); v != variants.end(); ++v) { - const long unsigned int& p = v->first; + for (const auto oldIndex : genotypeIndexes) { + for (const auto& v : variants) { + const long unsigned int& p = v.first; if (oldIndex == 0) { // reference positionIndexes[p].push_back(0); } else { @@ -627,13 +629,13 @@ void Variant::reduceAlleles( } } } - for (map::iterator v = variants.begin(); v != variants.end(); ++v) { - Variant& variant = v->second; - vector& gtints = positionIndexes[v->first]; + for (auto& v : variants) { + Variant& variant = v.second; + vector& gtints = positionIndexes[v.first]; vector gtstrs; - for (vector::iterator i = gtints.begin(); i != gtints.end(); ++i) { - if (*i != ALLELE_NULL) { - gtstrs.push_back(convert(*i)); + for (const auto i : gtints) { + if (i != ALLELE_NULL) { + gtstrs.push_back(convert(i)); } else { gtstrs.push_back("."); } diff --git a/src/vcf-wfa.h b/src/vcf-wfa.h index 20d30e99..5220f430 100644 --- a/src/vcf-wfa.h +++ b/src/vcf-wfa.h @@ -9,7 +9,7 @@ #pragma once -#include "wavefront/wfa.hpp" +#include namespace vcflib { diff --git a/src/vcf2dag.cpp b/src/vcf2dag.cpp index 06abf170..b13f1a03 100644 --- a/src/vcf2dag.cpp +++ b/src/vcf2dag.cpp @@ -7,14 +7,13 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" #include "BedReader.h" -#include "IntervalTree.h" + #include -#include "Fasta.h" -#include -#include -#include +#include using namespace std; using namespace vcflib; @@ -153,7 +152,8 @@ int main(int argc, char** argv) { vector& idxs = var.info[idname+".alt"]; idxs.clear(); - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { + // TODO: fix for loop + for (const auto& _ : var.alt) { idxs.push_back(convert(uid++)); } cout << var << endl; diff --git a/src/vcf2fasta.cpp b/src/vcf2fasta.cpp index 8e818e7e..0ff62481 100644 --- a/src/vcf2fasta.cpp +++ b/src/vcf2fasta.cpp @@ -9,11 +9,9 @@ #include "Variant.h" #include "convert.h" -#include "join.h" -#include "split.h" -#include + #include -#include "Fasta.h" +#include #include #include @@ -34,7 +32,7 @@ class SampleFastaFile { string seqname; int linewidth; - void write(string sequence) { + void write(const string& sequence) { linebuffer += sequence; while (linebuffer.length() > linewidth) { fastafile << linebuffer.substr(0, linewidth) << endl; @@ -42,9 +40,9 @@ class SampleFastaFile { } } - SampleFastaFile(void) { } + SampleFastaFile(void) = default; - void open(string& m_filename, string& m_seqname, int m_linewidth = 80) { + void open(const string& m_filename, const string& m_seqname, int m_linewidth = 80) { filename = m_filename; seqname = m_seqname; pos = 0; @@ -101,20 +99,21 @@ map& getPloidies(Variant& var, map& ploidies, int defa } void closeOutputs(map >& outputs) { - for (map >::iterator f = outputs.begin(); f != outputs.end(); ++f) { - for (map::iterator s = f->second.begin(); s != f->second.end(); ++s) { - delete s->second; + // TODO: revisit, potential for memory leaks + for (auto& f : outputs) { + for (auto& s : f.second) { + delete s.second; } } } -void initOutputs(map >& outputs, vector& sampleNames, string& seqName, map& ploidies, string& prefix) { +void initOutputs(map >& outputs, const vector& sampleNames, const string& seqName, map& ploidies, string& prefix) { closeOutputs(outputs); - for (vector::iterator s = sampleNames.begin(); s != sampleNames.end(); ++s) { - map& outs = outputs[*s]; - int p = ploidies[*s]; + for (const auto& sampleName: sampleNames) { + map& outs = outputs[sampleName]; + int p = ploidies[sampleName]; for (int i = 0; i < p; ++i) { - string thisSeqName = *s + "_" + seqName + ":" + convert(i); + string thisSeqName = sampleName + "_" + seqName + ":" + convert(i); string fileName = prefix + thisSeqName + ".fa"; if (!outs[i]) { SampleFastaFile* fp = new SampleFastaFile; @@ -142,10 +141,10 @@ void vcf2fasta(VariantCallFile& variantFile, FastaReference& reference, string& if (var.sequenceName != lastSeq || lastSeq.empty()) { if (!lastSeq.empty()) { string ref5prime = reference.getSubSequence(lastSeq, lastEnd, reference.sequenceLength(lastSeq)-lastEnd); - for (map >::iterator s = outputs.begin(); s != outputs.end(); ++s) { - map& f = s->second; - for (map::iterator o = f.begin(); o != f.end(); ++o) { - o->second->write(ref5prime); + for (auto& s : outputs) { + map& f = s.second; + for (auto& o : f) { + o.second->write(ref5prime); } } } @@ -200,10 +199,10 @@ void vcf2fasta(VariantCallFile& variantFile, FastaReference& reference, string& // write last sequences { string ref5prime = reference.getSubSequence(lastSeq, lastEnd, reference.sequenceLength(lastSeq)-lastEnd); - for (map >::iterator s = outputs.begin(); s != outputs.end(); ++s) { - map& f = s->second; - for (map::iterator o = f.begin(); o != f.end(); ++o) { - o->second->write(ref5prime); + for (auto& s : outputs) { + map& f = s.second; + for (auto& o : f) { + o.second->write(ref5prime); } } } diff --git a/src/vcf2tsv.cpp b/src/vcf2tsv.cpp index 85c9a327..9fc2a97e 100644 --- a/src/vcf2tsv.cpp +++ b/src/vcf2tsv.cpp @@ -10,6 +10,13 @@ #include "Variant.h" #include +#include +#include +#include + +#include "join.h" + + using namespace std; using namespace vcflib; @@ -26,17 +33,16 @@ void loadGenoSS(std::stringstream & ss, std::stringstream & info, vcflib::Variant & var, vcflib::VariantCallFile & vcf, - std::string & nullval, - std::vector & formatfields){ - - - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - const string& sampleName = s->first; + const std::string & nullval, + const std::vector & formatfields){ + for (const auto& s : var.samples) { + const string& sampleName = s.first; ss << info.str() << "\t" << sampleName; - map >& sample = s->second; - for (vector::iterator f = formatfields.begin(); f != formatfields.end(); ++f) { - if (sample.find(*f) != sample.end()) { - ss << "\t" << join(sample[*f], ","); + const map >& sample = s.second; + for (const auto& f : formatfields) { + const auto sampleIt = sample.find(f); + if (sampleIt != sample.end()) { + ss << "\t" << join(sampleIt->second, ","); } else { ss << "\t" << nullval; } @@ -68,25 +74,23 @@ void loadInfoSS(std::stringstream & ss, << var.filter; - for(std::map::iterator it = infoToKeep.begin(); it != infoToKeep.end(); it++){ - - - if(var.info.find(it->first) == var.info.end()){ + for(const auto& it : infoToKeep) { + if(var.info.find(it.first) == var.info.end()){ o << "\t" << nullval ; } else{ - if(it->second == true){ - o << "\t" << var.info[it->first].front(); + if(it.second == true){ + o << "\t" << var.info[it.first].front(); } else{ - if(vcf.infoCounts.find(it->first) == vcf.infoCounts.end()){ + if(vcf.infoCounts.find(it.first) == vcf.infoCounts.end()){ - if(vcf.infoCounts[it->first] == ALLELE_NUMBER){ - o << "\t" << var.info[it->first].at(altindex) ; + if(vcf.infoCounts[it.first] == ALLELE_NUMBER){ + o << "\t" << var.info[it.first].at(altindex) ; } } else{ - o << "\t" << join(var.info[it->first], ",") ; + o << "\t" << join(var.info[it.first], ",") ; } } } diff --git a/src/vcfToHap.cpp b/src/vcfToHap.cpp index 804fde75..4816aad3 100644 --- a/src/vcfToHap.cpp +++ b/src/vcfToHap.cpp @@ -12,7 +12,8 @@ #include "cdflib.hpp" #include "pdflib.hpp" #include "var.hpp" -#include "makeUnique.h" +#include "index.hpp" +#include "phased.hpp" #include #include @@ -173,28 +174,6 @@ void clearHaplotypes(string haplotypes[][2], int ntarget){ } } -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } -} - -void loadPhased(string haplotypes[][2], genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} int main(int argc, char** argv) { @@ -365,8 +344,8 @@ int main(int argc, char** argv) { vector afs; - string haplotypes [target_h.size()][2]; - + vector> haplotypes(target_h.size()); + while (variantFile.getNextVariant(var)) { @@ -398,16 +377,16 @@ int main(int argc, char** argv) { unique_ptr populationTarget ; if(globalOpts.type == "PL"){ - populationTarget makeUnique(); + populationTarget std::make_unique(); } if(globalOpts.type == "GL"){ - populationTarget makeUnique(); + populationTarget std::make_unique(); } if(globalOpts.type == "GP"){ - populationTarget makeUnique(); + populationTarget std::make_unique(); } if(globalOpts.type == "GT"){ - populationTarget makeUnique(); + populationTarget std::make_unique(); } populationTarget->loadPop(target, var.sequenceName, var.position); @@ -418,7 +397,7 @@ int main(int argc, char** argv) { } positions.push_back(var.position); afs.push_back(populationTarget->af); - loadPhased(haplotypes, populationTarget.get(), populationTarget->gts.size()); + loadPhased(haplotypes, populationTarget.get()); } if(!globalOpts.geneticMapFile.empty()){ @@ -427,8 +406,8 @@ int main(int argc, char** argv) { cerr << "INFO: finished loading genetics map" << endl; } - if(positions.size() != haplotypes[0][0].size()){ - std::cerr << "FATAL: there are " << positions.size() << " and " << haplotypes[0][0].size() << " haplotype SNPs" << endl; + if(positions.size() != haplotypes[0].first.size()){ + std::cerr << "FATAL: there are " << positions.size() << " and " << haplotypes[0].first.size() << " haplotype SNPs" << endl; exit(1); } diff --git a/src/vcfaddinfo.cpp b/src/vcfaddinfo.cpp index 31d6cf5a..64c7dca6 100644 --- a/src/vcfaddinfo.cpp +++ b/src/vcfaddinfo.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include diff --git a/src/vcfafpath.cpp b/src/vcfafpath.cpp index 4fccd64d..f3066e76 100644 --- a/src/vcfafpath.cpp +++ b/src/vcfafpath.cpp @@ -7,11 +7,14 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" -#include #include #include +#include "join.h" + using namespace std; using namespace vcflib; diff --git a/src/vcfallelicprimitives.cpp b/src/vcfallelicprimitives.cpp index 6ac8f92b..4fe7aabf 100644 --- a/src/vcfallelicprimitives.cpp +++ b/src/vcfallelicprimitives.cpp @@ -175,7 +175,7 @@ int main(int argc, char** argv) { // we can't decompose *1* bp events, these are already in simplest-form whether SNPs or indels // we also don't handle anything larger than maxLength bp int max_allele_length = 0; - for (auto allele: var.alt) { + for (const auto& allele: var.alt) { if (debug) cerr << allele << ":" << allele.length() << "," << max_allele_length << endl; global_max_length = max(allele.length(),global_max_length); if (allele.length() >= max_allele_length) { @@ -215,8 +215,8 @@ int main(int argc, char** argv) { set alleles; // collect unique alleles - for (auto a: varAlleles) { - for (auto va: a.second) { + for (const auto& a: varAlleles) { + for (const auto& va: a.second) { if (debug) cerr << a.first << " " << va << endl; alleles.insert(va); // only inserts first unique allele and ignores if two are the same } @@ -224,7 +224,7 @@ int main(int argc, char** argv) { // count unique alleles int altcount = 0; - for (auto a: alleles) { + for (const auto& a: alleles) { if (a.ref != a.alt) { ++altcount; if (debug) cerr << altcount << "$" << a << endl; @@ -239,9 +239,9 @@ int main(int argc, char** argv) { // collect variant allele indexed membership map > variantAlleleIndexes; // from serialized VariantAllele to indexes - for (auto a: varAlleles) { + for (const auto& a: varAlleles) { int index = var.altAlleleIndexes[a.first] + 1; // make non-relative - for (auto va: a.second) { + for (const auto& va: a.second) { variantAlleleIndexes[va].push_back(index); } } @@ -258,9 +258,9 @@ int main(int argc, char** argv) { bool hasAf = false; if (var.info.find("AF") != var.info.end()) { hasAf = true; - for (auto a: var.alt) { - auto& vars = varAlleles[a]; - for (auto va: vars) { + for (const auto& a: var.alt) { + const auto& vars = varAlleles[a]; + for (const auto& va: vars) { double freq; try { convert(var.info["AF"].at(var.altAlleleIndexes[a]), freq); @@ -277,13 +277,13 @@ int main(int argc, char** argv) { bool hasAc = false; if (var.info.find("AC") != var.info.end()) { hasAc = true; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - vector& vars = varAlleles[*a]; - for (vector::iterator va = vars.begin(); va != vars.end(); ++va) { + for (const auto& a : var.alt) { + vector& vars = varAlleles[a]; + for (const auto& va : vars) { int freq; try { - convert(var.info["AC"].at(var.altAlleleIndexes[*a]), freq); - alleleStuff[*va].count += freq; + convert(var.info["AC"].at(var.altAlleleIndexes[a]), freq); + alleleStuff[va].count += freq; } catch (...) { cerr << "vcfallelicprimitives WARNING: AC does not have count == alts @ " << var.sequenceName << ":" << var.position << endl; @@ -293,13 +293,13 @@ int main(int argc, char** argv) { } if (keepInfo) { - for (auto infoit: var.info) { - string key = infoit.first; - for (auto a: var.alt) { + for (const auto& infoit: var.info) { + const string& key = infoit.first; + for (const auto& a: var.alt) { vector& vars = varAlleles[a]; - for (auto va: vars) { + for (const auto& va: vars) { string val; - vector& vals = var.info[key]; + const vector& vals = var.info[key]; if (vals.size() == var.alt.size()) { // allele count for info val = vals.at(var.altAlleleIndexes[a]); } else if (vals.size() == 1) { // site-wise count @@ -402,8 +402,8 @@ int main(int argc, char** argv) { v.info["AC"].push_back(convert(alleleStuff[a].count)); } if (keepInfo) { - for (auto infoit: var.info) { - string key = infoit.first; + for (const auto& infoit: var.info) { + const string& key = infoit.first; if (key != "AF" && key != "AC" && key != "TYPE" && key != "LEN") { // don't clobber previous v.info[key].push_back(alleleStuff[a].info[key]); } @@ -431,9 +431,9 @@ int main(int argc, char** argv) { } // handle deletions - for (auto a: alleles) { - const auto ref = a.ref; - const auto alt = a.alt; + for (const auto& a: alleles) { + const auto& ref = a.ref; + const auto& alt = a.alt; int len = 0; if (ref.at(0) == alt.at(0) && ref.size() > alt.size()) { @@ -454,8 +454,7 @@ int main(int argc, char** argv) { } // genotypes - for (auto s: var.sampleNames) { - string& sampleName = s; + for (const auto& sampleName : var.sampleNames) { if (var.samples.find(sampleName) == var.samples.end()) { continue; } @@ -466,7 +465,7 @@ int main(int argc, char** argv) { string& genotype = sample["GT"].front(); vector genotypeStrs = split(genotype, "|/"); vector genotypeIndexes; - for (auto gs: genotypeStrs) { + for (const auto& gs: genotypeStrs) { int i; if (!convert(gs, i)) { genotypeIndexes.push_back(ALLELE_NULL); diff --git a/src/vcfannotate.cpp b/src/vcfannotate.cpp index d500d4a9..a3bbf0b5 100644 --- a/src/vcfannotate.cpp +++ b/src/vcfannotate.cpp @@ -11,6 +11,8 @@ #include "BedReader.h" #include +#include "join.h" + using namespace std; using namespace vcflib; @@ -120,8 +122,8 @@ int main(int argc, char** argv) { vector overlaps = bed.targetsOverlapping(record); vector annotations; if (!overlaps.empty()) { - for (vector::iterator t = overlaps.begin(); t != overlaps.end(); ++t) { - annotations.push_back((*t)->desc); + for (const auto& t : overlaps) { + annotations.push_back(t->desc); } var.info[annotationInfoKey].push_back(join(annotations, ":")); } else if (!defaultAnnotationValue.empty()) { diff --git a/src/vcfannotategenotypes.cpp b/src/vcfannotategenotypes.cpp index 309e7273..a900471e 100644 --- a/src/vcfannotategenotypes.cpp +++ b/src/vcfannotategenotypes.cpp @@ -8,9 +8,7 @@ */ #include "Variant.h" -#include "split.h" #include -#include #include using namespace std; @@ -65,15 +63,15 @@ void annotateWithGenotypes(Variant& varA, Variant& varB, string& annotationTag) string& otherGenotype = other["GT"].front(); // XXX this must compare the genotypes in the two files - if (otherGenotype.find("|") != string::npos) { + if (otherGenotype.find('|') != string::npos) { vector gtB = decomposePhasedGenotype(otherGenotype); vector gtnew; gtnew.reserve(gtB.size()); - for (vector::iterator g = gtB.begin(); g != gtB.end(); ++g) { - map::iterator f = varBconvertToVarA.find(*g); + for (const int g : gtB) { + map::iterator f = varBconvertToVarA.find(g); if (f != varBconvertToVarA.end()) { - gtnew.push_back(*g); + gtnew.push_back(g); } else { gtnew.push_back(NULL_ALLELE); } @@ -82,12 +80,12 @@ void annotateWithGenotypes(Variant& varA, Variant& varB, string& annotationTag) } else { map gtB = decomposeGenotype(otherGenotype); map gtnew; - for (map::iterator g = gtB.begin(); g != gtB.end(); ++g) { - map::iterator f = varBconvertToVarA.find(g->first); + for (const auto& g : gtB) { + map::iterator f = varBconvertToVarA.find(g.first); if (f != varBconvertToVarA.end()) { - gtnew[f->second] += g->second; + gtnew[f->second] += g.second; } else { - gtnew[NULL_ALLELE] += g->second; + gtnew[NULL_ALLELE] += g.second; } } sample[annotationTag].push_back(genotypeToString(gtnew)); @@ -211,15 +209,15 @@ int main(int argc, char** argv) { map, Variant> varsAParsed; map, Variant> varsBParsed; - for (vector::iterator v = varsA.begin(); v != varsA.end(); ++v) { - varsAParsed[make_pair(v->ref, v->alt.front())] = *v; + for (const auto& v : varsA) { + varsAParsed[make_pair(v.ref, v.alt.front())] = v; } - for (vector::iterator v = varsB.begin(); v != varsB.end(); ++v) { - varsBParsed[make_pair(v->ref, v->alt.front())] = *v; + for (const auto& v : varsB) { + varsBParsed[make_pair(v.ref, v.alt.front())] = v; } - for (map, Variant>::iterator vs = varsAParsed.begin(); vs != varsAParsed.end(); ++vs) { - Variant& varA = vs->second; + for (auto& vs : varsAParsed) { + Variant& varA = vs.second; annotateWithBlankGenotypes(varA, annotag); if (varsBParsed.find(make_pair(varA.ref, varA.alt.front())) != varsBParsed.end()) { Variant& varB = varsBParsed[make_pair(varA.ref, varA.alt.front())]; // TODO cleanup @@ -239,8 +237,7 @@ int main(int argc, char** argv) { varA.infoFlags[annotag + ".has_variant"] = true; cout << varA << endl; } else { - for (vector::iterator v = varsA.begin(); v != varsA.end(); ++v) { - Variant& varA = *v; + for (auto& varA : varsA) { annotateWithBlankGenotypes(varA, annotag); cout << varA << endl; } diff --git a/src/vcfbreakmulti.cpp b/src/vcfbreakmulti.cpp index 3c7833a9..afcb223b 100644 --- a/src/vcfbreakmulti.cpp +++ b/src/vcfbreakmulti.cpp @@ -9,7 +9,6 @@ #include "Variant.h" #include "convert.h" -#include #include using namespace std; @@ -96,6 +95,7 @@ int main(int argc, char** argv) { } vector variants; + variants.reserve(numalt); for (int i = 0; i < numalt; ++i) { variants.push_back(var); } @@ -108,13 +108,13 @@ int main(int argc, char** argv) { altsToRemove.push_back(var.alt.at(j)); } } - for (vector::iterator a = altsToRemove.begin(); a != altsToRemove.end(); ++a) { - v.removeAlt(*a); + for (const auto& a : altsToRemove) { + v.removeAlt(a); } } - for (vector::iterator v = variants.begin(); v != variants.end(); ++v) { - cout << *v << endl; + for (auto& v : variants) { + cout << v << endl; } } diff --git a/src/vcfcheck.cpp b/src/vcfcheck.cpp index dc35ea06..2c6ee627 100644 --- a/src/vcfcheck.cpp +++ b/src/vcfcheck.cpp @@ -9,11 +9,10 @@ */ #include "Variant.h" -#include "split.h" #include "Fasta.h" #include "gpatInfo.hpp" #include -#include +#include using namespace std; using namespace vcflib; diff --git a/src/vcfclassify.cpp b/src/vcfclassify.cpp index d6779fd4..0e2e26bc 100644 --- a/src/vcfclassify.cpp +++ b/src/vcfclassify.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include @@ -16,7 +16,7 @@ using namespace std; using namespace vcflib; -bool isTransition(string& ref, string& alt) { +bool isTransition(const string& ref, const string& alt) { if (((ref == "A" && alt == "G") || (ref == "G" && alt == "A")) || ((ref == "C" && alt == "T") || (ref == "T" && alt == "C"))) { return true; @@ -25,22 +25,18 @@ bool isTransition(string& ref, string& alt) { } } -bool hasTransition(Variant& var) { - string& ref = var.ref; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string& alt = *a; - if (isTransition(ref, alt)) { +bool hasTransition(const Variant& var) { + for (const auto& alt : var.alt) { + if (isTransition(var.ref, alt)) { return true; } } return false; } -bool hasTransversion(Variant& var) { - string& ref = var.ref; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string& alt = *a; - if (!isTransition(ref, alt)) { +bool hasTransversion(const Variant& var) { + for (const auto& alt : var.alt) { + if (!isTransition(var.ref, alt)) { return true; } } @@ -49,8 +45,7 @@ bool hasTransversion(Variant& var) { bool hasInsertion(Variant& var) { string& ref = var.ref; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string& alt = *a; + for (const auto& alt : var.alt) { if (ref.size() < alt.size()) { return true; } @@ -59,10 +54,8 @@ bool hasInsertion(Variant& var) { } bool hasDeletion(Variant& var) { - string& ref = var.ref; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string& alt = *a; - if (ref.size() > alt.size()) { + for (const auto& alt : var.alt) { + if (var.ref.size() > alt.size()) { return true; } } @@ -70,10 +63,8 @@ bool hasDeletion(Variant& var) { } bool hasMNP(Variant& var) { - string& ref = var.ref; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string& alt = *a; - if (ref.size() > 1 && alt.size() == ref.size()) { + for (const auto& alt : var.alt) { + if (var.ref.size() > 1 && alt.size() == var.ref.size()) { return true; } } @@ -81,10 +72,8 @@ bool hasMNP(Variant& var) { } bool hasSNP(Variant& var) { - string& ref = var.ref; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string& alt = *a; - if (ref.size() == 1 && alt.size() == 1) { + for (const auto& alt : var.alt) { + if (var.ref.size() == 1 && alt.size() == 1) { return true; } } diff --git a/src/vcfcleancomplex.cpp b/src/vcfcleancomplex.cpp index 91adbc03..2795a5b5 100644 --- a/src/vcfcleancomplex.cpp +++ b/src/vcfcleancomplex.cpp @@ -8,7 +8,7 @@ */ #include "legacy.h" -#include "split.h" + #include #include #include @@ -60,9 +60,9 @@ int main(int argc, char** argv) { string& alternate = var.alt.front(); vector& vs = parsedAlts[alternate]; vector valleles; - for (vector::iterator a = vs.begin(); a != vs.end(); ++a) { - if (a->ref != a->alt) { - valleles.push_back(*a); + for (const auto& a : vs) { + if (a.ref != a.alt) { + valleles.push_back(a); } } if (valleles.size() == 1) { diff --git a/src/vcfcombine.cpp b/src/vcfcombine.cpp index 41527b01..0a8b2703 100644 --- a/src/vcfcombine.cpp +++ b/src/vcfcombine.cpp @@ -141,20 +141,20 @@ int main(int argc, char** argv) { { // populate the meta information lines string column_headers_line; - for (vector::const_iterator meta_iter = header_lines.begin(); meta_iter != header_lines.end(); ++meta_iter) + for (const auto& meta : header_lines) { - vcf_header.addMetaInformationLine(*meta_iter); - if ((*meta_iter).find("#CHROM") != string::npos) // store the header column position + vcf_header.addMetaInformationLine(meta); + if (meta.find("#CHROM") != string::npos) // store the header column position { - column_headers_line = (*meta_iter); + column_headers_line = meta; } } if (column_headers_line.size() > 0) // if there are header columns then add them { vector header_columns = split(column_headers_line, "\t"); - for (vector::const_iterator column_iter = header_columns.begin(); column_iter != header_columns.end(); ++column_iter) + for (const auto& column : header_columns) { - vcf_header.addHeaderColumn(*column_iter); + vcf_header.addHeaderColumn(column); } } } diff --git a/src/vcfcommonsamples.cpp b/src/vcfcommonsamples.cpp index 2d66ad10..1dead38e 100644 --- a/src/vcfcommonsamples.cpp +++ b/src/vcfcommonsamples.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include diff --git a/src/vcfcreatemulti.cpp b/src/vcfcreatemulti.cpp index a29c38db..980a8ad7 100644 --- a/src/vcfcreatemulti.cpp +++ b/src/vcfcreatemulti.cpp @@ -11,7 +11,6 @@ extern "C" { #include "vcf-c-api.h" } -#include #include #include #include "progress.h" @@ -48,6 +47,7 @@ Type: transformation // pointers (for zig). vector ptr_vec(vector &vars) { vector ptrs; + ptrs.reserve(vars.size()); for (auto &v: vars) { ptrs.push_back(&v); } @@ -82,10 +82,10 @@ Variant createMultiallelic_legacy(vector& vars) { mvar.ref = ref; // Correct alts using the new reference - for (vector::iterator v = vars.begin(); v != vars.end(); ++v) { + for (const auto& v : vars) { // add alternates and splice them into the reference - int p5diff = v->position - mvar.position; - int p3diff = (mvar.position + mvar.ref.size()) - (v->position + v->ref.size()); + int p5diff = v.position - mvar.position; + int p3diff = (mvar.position + mvar.ref.size()) - (v.position + v.ref.size()); string before; string after; if (p5diff > 0) { @@ -95,15 +95,15 @@ Variant createMultiallelic_legacy(vector& vars) { after = mvar.ref.substr(mvar.ref.size() - p3diff); } if (p5diff || p3diff) { - for (vector::iterator a = v->alt.begin(); a != v->alt.end(); ++a) { + for (const auto& a : v.alt) { mvar.alt.push_back(before); string& alt = mvar.alt.back(); - alt.append(*a); + alt.append(a); alt.append(after); } } else { - for (vector::iterator a = v->alt.begin(); a != v->alt.end(); ++a) { - mvar.alt.push_back(*a); + for (const auto& a : v.alt) { + mvar.alt.push_back(a); } } } @@ -250,7 +250,7 @@ int main(int argc, char** argv) { // that the window may get expanded at every step. auto first = vars.front(); auto maxpos = first.position + first.ref.size(); - for (auto v: vars) { + for (const auto& v: vars) { if (maxpos < v.position + v.ref.size()) { maxpos = v.position + v.ref.size(); } diff --git a/src/vcfdistance.cpp b/src/vcfdistance.cpp index 2ef82368..ea28cf80 100644 --- a/src/vcfdistance.cpp +++ b/src/vcfdistance.cpp @@ -7,8 +7,9 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" #include "Variant.h" -#include "split.h" + #include #include diff --git a/src/vcfentropy.cpp b/src/vcfentropy.cpp index b61036c3..a947aab7 100644 --- a/src/vcfentropy.cpp +++ b/src/vcfentropy.cpp @@ -7,11 +7,12 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" -#include "split.h" -#include "Fasta.h" +#include #include -#include "disorder.h" +#include using namespace std; using namespace vcflib; diff --git a/src/vcfevenregions.cpp b/src/vcfevenregions.cpp index df05e237..a824546c 100644 --- a/src/vcfevenregions.cpp +++ b/src/vcfevenregions.cpp @@ -8,8 +8,8 @@ */ #include "Variant.h" -#include "split.h" -#include "Fasta.h" + +#include #include #include diff --git a/src/vcffixup.cpp b/src/vcffixup.cpp index ef4f396d..4d79b9f6 100644 --- a/src/vcffixup.cpp +++ b/src/vcffixup.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include @@ -18,14 +18,13 @@ using namespace vcflib; int countAlts(Variant& var, int alleleIndex) { int alts = 0; - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - map >& sample = s->second; - map >::iterator gt = sample.find("GT"); + for (const auto& [_, sample] : var.samples) { + const auto gt = sample.find("GT"); if (gt != sample.end()) { map genotype = decomposeGenotype(gt->second.front()); - for (map::iterator g = genotype.begin(); g != genotype.end(); ++g) { - if (g->first == alleleIndex) { - alts += g->second; + for (const auto&[genotypeKey, genotypeValue] : genotype) { + if (genotypeKey == alleleIndex) { + alts += genotypeValue; } } } @@ -35,15 +34,15 @@ int countAlts(Variant& var, int alleleIndex) { int countAlleles(Variant& var) { int alleles = 0; - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - map >& sample = s->second; - map >::iterator gt = sample.find("GT"); + for (const auto& s : var.samples) { + const map >& sample = s.second; + const auto gt = sample.find("GT"); if (gt != sample.end()) { map genotype = decomposeGenotype(gt->second.front()); - for (map::iterator g = genotype.begin(); g != genotype.end(); ++g) { - if (g->first != NULL_ALLELE) { - alleles += g->second; - } + for (const auto& g : genotype) { + if (g.first != NULL_ALLELE) { + alleles += g.second; + } } } } diff --git a/src/vcfflatten.cpp b/src/vcfflatten.cpp index e8ef3919..643e2ae8 100644 --- a/src/vcfflatten.cpp +++ b/src/vcfflatten.cpp @@ -128,8 +128,8 @@ int main(int argc, char** argv) { int ploidy = 2; vector > genotypesToKeep = multichoose(ploidy, alleleIndexes); map genotypeIndexesToKeep; - for (vector >::iterator k = genotypesToKeep.begin(); k != genotypesToKeep.end(); ++k) { - pair genotype = make_pair(k->front(), k->back()); // vectors are guaranteed to be diploid per multichoose + for (const auto& k : genotypesToKeep) { + pair genotype = make_pair(k.front(), k.back()); // vectors are guaranteed to be diploid per multichoose genotypeIndexesToKeep[genotypeIndexes[genotype]] = true; } // we are diploid, so there should be exactly 3 genotypes @@ -139,10 +139,8 @@ int main(int argc, char** argv) { // for all the infocounts // find the ones which are == GENOTYPE_NUMBER or ALLELE_NUMBER // and fix em up - for (map::iterator c = variantFile.infoCounts.begin(); c != variantFile.infoCounts.end(); ++c) { - int count = c->second; + for (const auto& [key, count]: variantFile.infoCounts) { if (count == GENOTYPE_NUMBER) { - string key = c->first; map >::iterator v = var.info.find(key); if (v != var.info.end()) { vector& vals = v->second; @@ -156,7 +154,6 @@ int main(int argc, char** argv) { vals = tokeep; } } else if (count == ALLELE_NUMBER) { - string key = c->first; map >::iterator v = var.info.find(key); if (v != var.info.end()) { vector& vals = v->second; @@ -178,10 +175,8 @@ int main(int argc, char** argv) { // for each sample // remove info fields which now refer to nothing - for (map::iterator c = variantFile.formatCounts.begin(); c != variantFile.formatCounts.end(); ++c) { - int count = c->second; + for (const auto& [key, count] : variantFile.formatCounts) { if (count == GENOTYPE_NUMBER) { - string key = c->first; for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { map >& sample = s->second; map >::iterator v = sample.find(key); @@ -198,9 +193,7 @@ int main(int argc, char** argv) { } } } else if (count == ALLELE_NUMBER) { - string key = c->first; - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - map >& sample = s->second; + for (auto& [_, sample] : var.samples) { map >::iterator v = sample.find(key); if (v != sample.end()) { vector& vals = v->second; diff --git a/src/vcfgeno2alleles.cpp b/src/vcfgeno2alleles.cpp index 76fd0aa3..c338124e 100644 --- a/src/vcfgeno2alleles.cpp +++ b/src/vcfgeno2alleles.cpp @@ -9,8 +9,10 @@ #include "Variant.h" #include "split.h" + #include #include +#include using namespace std; using namespace vcflib; diff --git a/src/vcfgeno2haplo.cpp b/src/vcfgeno2haplo.cpp index d45cbadb..1f5bfeb5 100644 --- a/src/vcfgeno2haplo.cpp +++ b/src/vcfgeno2haplo.cpp @@ -8,13 +8,16 @@ */ #include "Variant.h" -#include -#include "Fasta.h" #include "gpatInfo.hpp" -#include +#include "convert.h" +#include "join.h" + +#include +#include #include #include + using namespace std; using namespace vcflib; @@ -37,20 +40,6 @@ void printSummary(char** argv) { exit(0); } -bool isPhased(Variant& var) { - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - map >& sample = s->second; - map >::iterator g = sample.find("GT"); - if (g != sample.end()) { - string gt = g->second.front(); - if (gt.size() > 1 && gt.find("|") == string::npos) { - return false; - } - } - } - return true; -} - int main(int argc, char** argv) { string vcfFileName; @@ -168,7 +157,7 @@ int main(int argc, char** argv) { cout << cluster.front() << endl; cluster.clear(); } - } else if (isPhased(var)) { + } else if (var.isPhased()) { if (cluster.empty() || cluster.back().sequenceName == var.sequenceName && var.position - cluster.back().position + cluster.back().ref.size() - 1 <= windowsize) { @@ -385,8 +374,7 @@ int main(int argc, char** argv) { outputVar.format = cluster.front().format; // now the genotypes - for (vector::iterator s = var.sampleNames.begin(); s != var.sampleNames.end(); ++s) { - string& sampleName = *s; + for (auto& sampleName : var.sampleNames) { vector gt; vector > & hs = sampleHaplotypes[sampleName]; for (vector >::iterator h = hs.begin(); h != hs.end(); ++h) { diff --git a/src/vcfgenosamplenames.cpp b/src/vcfgenosamplenames.cpp index 3bd6cfc1..2e184795 100644 --- a/src/vcfgenosamplenames.cpp +++ b/src/vcfgenosamplenames.cpp @@ -59,10 +59,9 @@ Type: transformation Variant var(variantFile); while (variantFile.getNextVariant(var)) { var.format.push_back("SN"); - for (map > >::iterator s = var.samples.begin(); - s != var.samples.end(); ++s) { - s->second["SN"].clear(); - s->second["SN"].push_back(s->first); + for (auto& s : var.samples) { + s.second["SN"].clear(); + s.second["SN"].push_back(s.first); } cout << var << endl; } diff --git a/src/vcfgenosummarize.cpp b/src/vcfgenosummarize.cpp index 64bb6031..2386e92e 100644 --- a/src/vcfgenosummarize.cpp +++ b/src/vcfgenosummarize.cpp @@ -7,12 +7,12 @@ This software is published under the MIT License. See the LICENSE file. */ + #include "Variant.h" -#include "split.h" +#include "convert.h" + #include -#include #include -#include using namespace std; using namespace vcflib; diff --git a/src/vcfgenotypecompare.cpp b/src/vcfgenotypecompare.cpp index 072eda21..7f8ec642 100644 --- a/src/vcfgenotypecompare.cpp +++ b/src/vcfgenotypecompare.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include diff --git a/src/vcfgenotypes.cpp b/src/vcfgenotypes.cpp index 5ba6eb34..ae21310e 100644 --- a/src/vcfgenotypes.cpp +++ b/src/vcfgenotypes.cpp @@ -8,10 +8,12 @@ */ #include "Variant.h" -#include "split.h" +#include "join.h" + #include #include + using namespace std; using namespace vcflib; diff --git a/src/vcfglbound.cpp b/src/vcfglbound.cpp index cc49dfb0..69563502 100644 --- a/src/vcfglbound.cpp +++ b/src/vcfglbound.cpp @@ -7,8 +7,9 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" -#include "split.h" #include using namespace std; @@ -131,15 +132,15 @@ int main(int argc, char** argv) { // find the gl max vector& glstrs = l->second; vector gls; - for (vector::iterator gl = glstrs.begin(); gl != glstrs.end(); ++gl) { + for (const auto& gl : glstrs) { double d; - convert(*gl, d); + convert(gl, d); gls.push_back(d); } isbroken = false; // reset every iteration - for (vector::iterator g = gls.begin(); g != gls.end(); ++g) { - if (*g > 0) { + for (const auto g : gls) { + if (g > 0) { isbroken = true; break; } @@ -156,22 +157,22 @@ int main(int argc, char** argv) { // normalize GLs to -10 min 0 max using division by max and bounding at -10 double minGL = 0; - for (vector::iterator g = gls.begin(); g != gls.end(); ++g) { - if (*g < minGL) minGL = *g; + for (const auto g : gls) { + if (g < minGL) minGL = g; } double maxGL = minGL; - for (vector::iterator g = gls.begin(); g != gls.end(); ++g) { - if (*g > maxGL) maxGL = *g; + for (const auto g : gls) { + if (g > maxGL) maxGL = g; } // modify gls - for (vector::iterator g = gls.begin(); g != gls.end(); ++g) { - *g = max(glBound, *g - maxGL); + for (auto& g : gls) { + g = max(glBound, g - maxGL); } // and pack back into GL field glstrs.clear(); - for (vector::iterator g = gls.begin(); g != gls.end(); ++g) { - glstrs.push_back(convert(*g)); + for (const auto& g : gls) { + glstrs.push_back(convert(g)); } } } diff --git a/src/vcfglxgt.cpp b/src/vcfglxgt.cpp index 216541ec..e590d59a 100644 --- a/src/vcfglxgt.cpp +++ b/src/vcfglxgt.cpp @@ -7,10 +7,14 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" #include "split.h" #include +#include "join.h" + using namespace std; using namespace vcflib; @@ -124,9 +128,9 @@ int main(int argc, char** argv) { string& gt = g->second.front(); // if we are fixing null but the genotype is fully specified, continue - if (fixNull && gt.find(".") == string::npos) continue; + if (fixNull && gt.find('.') == string::npos) continue; string splitter = "/"; - if (gt.find("|") != string::npos) splitter = "|"; + if (gt.find('|') != string::npos) splitter = "|"; int samplePloidy = split(gt, splitter).size(); int numAlleles = var.alt.size() + 1; // including reference diff --git a/src/vcfhetcount.cpp b/src/vcfhetcount.cpp index b86b07c5..90e86f84 100644 --- a/src/vcfhetcount.cpp +++ b/src/vcfhetcount.cpp @@ -47,21 +47,19 @@ int main(int argc, char** argv) { unsigned int hetAlleleCount = 0; map hetCounts; - for (vector::iterator s = variantFile.sampleNames.begin(); s != variantFile.sampleNames.end(); ++s) { - hetCounts[*s] = 0; + for (const auto& sampleName : variantFile.sampleNames) { + hetCounts[sampleName] = 0; } Variant var(variantFile); while (variantFile.getNextVariant(var)) { //cout << var << endl; - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - string name = s->first; - map >& sample = s->second; + for (auto& [name, sample] : var.samples) { string& genotype = sample["GT"].front(); vector gt = split(genotype, "|/"); int alt = 0; - for (vector::iterator g = gt.begin(); g != gt.end(); ++g) { - if (*g != "0") + for (const auto& g : gt) { + if (g != "0") ++alt; } if (alt != gt.size()) { diff --git a/src/vcfhethomratio.cpp b/src/vcfhethomratio.cpp index 3d52e299..3485cec6 100644 --- a/src/vcfhethomratio.cpp +++ b/src/vcfhethomratio.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include @@ -42,17 +42,15 @@ int main(int argc, char** argv) { map hetCounts; map homCounts; - for (vector::iterator s = variantFile.sampleNames.begin(); s != variantFile.sampleNames.end(); ++s) { - hetCounts[*s] = 0; - homCounts[*s] = 0; + for (const auto& s : variantFile.sampleNames) { + hetCounts[s] = 0; + homCounts[s] = 0; } Variant var(variantFile); while (variantFile.getNextVariant(var)) { //cout << var << endl; - for (map > >::iterator s = var.samples.begin(); s != var.samples.end(); ++s) { - string name = s->first; - map >& sample = s->second; + for (auto& [name, sample] : var.samples) { string& gt = sample["GT"].front(); map genotype = decomposeGenotype(gt); if (isHet(genotype)) { diff --git a/src/vcfinfo2qual.cpp b/src/vcfinfo2qual.cpp index ada6722d..943414dd 100644 --- a/src/vcfinfo2qual.cpp +++ b/src/vcfinfo2qual.cpp @@ -7,6 +7,8 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" using namespace std; @@ -45,10 +47,9 @@ int main(int argc, char** argv) { while (variantFile.getNextVariant(var)) { vector& ivs = var.info[key]; double vs = 0; - for (vector::iterator i = ivs.begin(); - i != ivs.end(); ++i) { + for (const auto& i : ivs) { double v; - convert(*i, v); + convert(i, v); vs += v; } var.quality = vs / (double) ivs.size(); diff --git a/src/vcfinfosummarize.cpp b/src/vcfinfosummarize.cpp index 1f413859..f7351e94 100644 --- a/src/vcfinfosummarize.cpp +++ b/src/vcfinfosummarize.cpp @@ -8,13 +8,15 @@ */ #include "Variant.h" -#include "split.h" +#include "stats.hpp" #include "Fasta.h" #include "gpatInfo.hpp" #include #include +#include "convert.h" #include + using namespace std; using namespace vcflib; @@ -38,18 +40,6 @@ void printSummary(char** argv) { exit(0); } -double median(vector &v) -{ - size_t n = v.size() / 2; - nth_element(v.begin(), v.begin()+n, v.end()); - return v[n]; -} - -double mean(vector &v) -{ - double sum = accumulate(v.begin(), v.end(), 0.0); - return sum / v.size(); -} enum StatType { MEAN, MEDIAN, MIN, MAX }; diff --git a/src/vcfintersect.cpp b/src/vcfintersect.cpp index a1459e73..1a262459 100644 --- a/src/vcfintersect.cpp +++ b/src/vcfintersect.cpp @@ -13,8 +13,10 @@ #include #include "Fasta.h" #include +#include "convert.h" #include #include +#include using namespace std; using namespace vcflib; @@ -314,8 +316,8 @@ int main(int argc, char** argv) { Variant* v = &otherVariants[ovar.sequenceName].back(); otherVariantIntervals[ovar.sequenceName].push_back(Interval(left, right, v)); } - for (map > >::iterator j = otherVariantIntervals.begin(); j != otherVariantIntervals.end(); ++j) { - variantIntervals[j->first] = IntervalTree((vector >&&)j->second); + for (const auto&[key, value] : otherVariantIntervals) { + variantIntervals[key] = IntervalTree((vector >&&)value); } } @@ -375,8 +377,8 @@ int main(int argc, char** argv) { vector overlapping; - for (vector >::iterator r = results.begin(); r != results.end(); ++r) { - overlapping.push_back(r->value); + for (const auto& r : results) { + overlapping.push_back(r.value); } @@ -528,8 +530,8 @@ int main(int argc, char** argv) { if (!var.alt.empty()) { vector& vars = variants[var.position]; int numalts = 0; - for (vector::iterator v = vars.begin(); v != vars.end(); ++v) { - numalts += (*v)->alt.size(); + for (const auto& v : vars) { + numalts += v->alt.size(); } if (numalts + var.alt.size() == originalVar.alt.size()) { variants[var.position].clear(); @@ -539,10 +541,10 @@ int main(int argc, char** argv) { } } - for (map >::iterator v = variants.begin(); v != variants.end(); ++v) { - for (vector::iterator o = v->second.begin(); o != v->second.end(); ++o) { - cout << **o << endl; - lastOutputPosition = max(lastOutputPosition, (*o)->position); + for (const auto& v : variants) { + for (const auto& o : v.second) { + cout << *o << endl; + lastOutputPosition = max(lastOutputPosition, o->position); } } } else { diff --git a/src/vcfkeepgeno.cpp b/src/vcfkeepgeno.cpp index fafacacf..61f4e474 100644 --- a/src/vcfkeepgeno.cpp +++ b/src/vcfkeepgeno.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include @@ -54,9 +54,9 @@ int main(int argc, char** argv) { Variant var(variantFile); vector formatIds = variantFile.formatIds(); - for (vector::iterator i = formatIds.begin(); i != formatIds.end(); ++i) { - if (!fieldsToKeep.count(*i)) { - variantFile.removeGenoHeaderLine(*i); + for (const auto& i : formatIds) { + if (!fieldsToKeep.count(i)) { + variantFile.removeGenoHeaderLine(i); } } diff --git a/src/vcfkeepinfo.cpp b/src/vcfkeepinfo.cpp index 075cfc7a..64c1d776 100644 --- a/src/vcfkeepinfo.cpp +++ b/src/vcfkeepinfo.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include @@ -46,11 +46,11 @@ int main(int argc, char** argv) { Variant var(variantFile); vector fieldsToErase; - vector infoIds = variantFile.infoIds(); - for (vector::iterator i = infoIds.begin(); i != infoIds.end(); ++i) { - if (!fieldsToKeep.count(*i)) { - fieldsToErase.push_back(*i); - variantFile.removeInfoHeaderLine(*i); + const vector infoIds = variantFile.infoIds(); + for (const auto& infoId : infoIds) { + if (!fieldsToKeep.count(infoId)) { + fieldsToErase.push_back(infoId); + variantFile.removeInfoHeaderLine(infoId); } } @@ -59,14 +59,18 @@ int main(int argc, char** argv) { // print the records, filtering is done via the setting of varA's output sample names while (variantFile.getNextVariant(var)) { - for (map >::iterator i = var.info.begin(); i != var.info.end(); ++i) { + for (map >::iterator i = var.info.begin(); i != var.info.end(); ) { if (!fieldsToKeep.count(i->first)) { i = var.info.erase(i); + } else { + ++i; } } - for (map::iterator i = var.infoFlags.begin(); i != var.infoFlags.end(); ++i) { + for (map::iterator i = var.infoFlags.begin(); i != var.infoFlags.end(); ) { if (!fieldsToKeep.count(i->first)) { i = var.infoFlags.erase(i); + } else { + ++i; } } cout << var << endl; diff --git a/src/vcfkeepsamples.cpp b/src/vcfkeepsamples.cpp index 356fb94d..61c27e41 100644 --- a/src/vcfkeepsamples.cpp +++ b/src/vcfkeepsamples.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include diff --git a/src/vcfld.cpp b/src/vcfld.cpp index a232750c..ef70174f 100644 --- a/src/vcfld.cpp +++ b/src/vcfld.cpp @@ -8,21 +8,19 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" -#include "makeUnique.h" +#include "index.hpp" +#include "gpatInfo.hpp" +#include "phase.hpp" + #include #include -#include #include -#include -#include -#include +#include #include -#include "gpatInfo.hpp" +#include + using namespace std; using namespace vcflib; @@ -52,26 +50,18 @@ void printHelp(void){ exit(1); } -void clearHaplotypes(string **haplotypes, int ntarget){ - for(int i= 0; i < ntarget; i++){ - haplotypes[i][0].clear(); - haplotypes[i][1].clear(); - } -} - -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; +void clearHaplotypes(std::vector>& haplotypes) { + for(int i= 0; i < haplotypes.size(); i++){ + haplotypes[i].first.clear(); + haplotypes[i].second.clear(); } } -void calc(string **haplotypes, int nhaps, vector pos, vector tafs, vector bafs, int external, long int window, int derived, vector & target, vector & background, string seqid){ +void calc(const std::vector>& haplotypes, int , + const vector& pos, const vector& tafs, const vector& bafs, int external, + long int, int derived, const vector & target, const vector &, const string& seqid){ - for(int long snpA = 0; snpA < haplotypes[0][0].length() - 100; snpA++){ + for(int long snpA = 0; snpA < haplotypes[0].first.length() - 100; snpA++){ double sumLD = 0; double nLD = 0; @@ -85,13 +75,13 @@ void calc(string **haplotypes, int nhaps, vector pos, vector t targetHaplotypes["10"] = 1; targetHaplotypes["00"] = 1; - for(int targetIndex = 0; targetIndex < target.size(); targetIndex++ ){ + for(const auto currentTarget : target){ string haplotypeA; string haplotypeB; - haplotypeA += haplotypes[target[targetIndex]][0].substr(snpA, 1) += haplotypes[target[targetIndex]][0].substr(snpB, 1); - haplotypeB += haplotypes[target[targetIndex]][1].substr(snpA, 1) += haplotypes[target[targetIndex]][1].substr(snpB, 1); + haplotypeA += haplotypes[currentTarget].first.substr(snpA, 1) += haplotypes[currentTarget].first.substr(snpB, 1); + haplotypeB += haplotypes[currentTarget].second.substr(snpA, 1) += haplotypes[currentTarget].second.substr(snpB, 1); targetHaplotypes[haplotypeA]++; targetHaplotypes[haplotypeB]++; @@ -133,17 +123,8 @@ void calc(string **haplotypes, int nhaps, vector pos, vector t } -void loadPhased(string **haplotypes, genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } +int get_value(int derived) { + return derived; } int main(int argc, char** argv) { @@ -262,7 +243,7 @@ int main(int argc, char** argv) { } case 'd': { - derived == 1; + get_value(derived) == 1; cerr << "INFO: count haplotypes \"11\" rather than \"00\"" << endl; break; } @@ -341,11 +322,8 @@ int main(int argc, char** argv) { vector targetAFS; vector backgroundAFS; - string **haplotypes = new string*[nsamples]; - for (int i = 0; i < nsamples; i++) { - haplotypes[i] = new string[2]; - } - + std::vector> haplotypes(nsamples); + string currentSeqid = "NA"; while (variantFile.getNextVariant(var)) { @@ -361,10 +339,10 @@ int main(int argc, char** argv) { } if(currentSeqid != var.sequenceName){ - if(haplotypes[0][0].length() > 10){ + if(haplotypes[0].first.length() > 10){ calc(haplotypes, nsamples, positions, targetAFS, backgroundAFS, external, derived, windowSize, target_h, background_h, currentSeqid); } - clearHaplotypes(haplotypes, nsamples); + clearHaplotypes(haplotypes); positions.clear(); currentSeqid = var.sequenceName; targetAFS.clear(); @@ -390,26 +368,25 @@ int main(int argc, char** argv) { sindex += 1; } - using Detail::makeUnique; - unique_ptr populationTarget ; - unique_ptr populationBackground; + std::unique_ptr populationTarget ; + std::unique_ptr populationBackground; unique_ptr populationTotal ; if(type == "PL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } populationTarget->loadPop(target, var.position); @@ -426,7 +403,7 @@ int main(int argc, char** argv) { targetAFS.push_back(populationTarget->af); backgroundAFS.push_back(populationBackground->af); positions.push_back(var.position); - loadPhased(haplotypes, populationTotal.get(), nsamples); + loadPhased(haplotypes, populationTotal.get()); } diff --git a/src/vcfleftalign.cpp b/src/vcfleftalign.cpp index f370c2f6..23b3fb82 100644 --- a/src/vcfleftalign.cpp +++ b/src/vcfleftalign.cpp @@ -8,16 +8,16 @@ */ #include "Variant.h" -#include "convert.h" #include "join.h" -#include "split.h" -#include "Fasta.h" -#include +#include "LeftAlign.hpp" + +#include #include #include #include #include + using namespace std; using namespace vcflib; @@ -36,8 +36,8 @@ void getAlignment(Variant& var, FastaReference& reference, string& ref, vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - string alt = pad + leftFlank + *a + rightFlank + pad; + for (const auto& a : var.alt) { + string alt = pad + leftFlank + a + rightFlank + pad; CSmithWatermanGotoh sw(matchScore, mismatchScore, gapOpenPenalty, gapExtendPenalty); unsigned int referencePos; string cigar; @@ -178,9 +178,9 @@ int main(int argc, char** argv) { int currentWindow = window; int scale = 2; if (var.ref.size()*scale > currentWindow) currentWindow = var.ref.size()*scale; - for (vector::iterator a = var.alleles.begin(); a != var.alleles.end(); ++a) { - if (a->size()*scale > currentWindow) { - currentWindow = a->size()*scale; + for (const auto& a : var.alleles) { + if (a.size() * scale > currentWindow) { + currentWindow = a.size() * scale; } } diff --git a/src/vcfnull2ref.cpp b/src/vcfnull2ref.cpp index 8a8388e0..10e31162 100644 --- a/src/vcfnull2ref.cpp +++ b/src/vcfnull2ref.cpp @@ -9,8 +9,10 @@ #include "Variant.h" #include "split.h" + #include #include +#include using namespace std; using namespace vcflib; diff --git a/src/vcfnullgenofields.cpp b/src/vcfnullgenofields.cpp index c4d930d7..5324eac4 100644 --- a/src/vcfnullgenofields.cpp +++ b/src/vcfnullgenofields.cpp @@ -10,7 +10,7 @@ #include "Variant.h" -#include "split.h" + #include #include #include @@ -115,12 +115,10 @@ int main(int argc, char** argv) { map > full_null_val; // values to set missing genotypes ('.') with full_null_val.insert(pair >("GT", null_GTval_vector)); - for( map::iterator formats = variantFile.formatTypes.begin(); - formats != variantFile.formatTypes.end(); - ++formats ){ - if( formats->first != "GT" ){ - out_formats.push_back(formats->first); - full_null_val.insert(pair >(formats->first, null_val_vector)); + for(const auto& formats : variantFile.formatTypes){ + if( formats.first != "GT" ){ + out_formats.push_back(formats.first); + full_null_val.insert(pair >(formats.first, null_val_vector)); } } diff --git a/src/vcfnumalt.cpp b/src/vcfnumalt.cpp index 377aafb1..7a06ab10 100644 --- a/src/vcfnumalt.cpp +++ b/src/vcfnumalt.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include #include diff --git a/src/vcfprimers.cpp b/src/vcfprimers.cpp index 28f32e7f..45a401e6 100644 --- a/src/vcfprimers.cpp +++ b/src/vcfprimers.cpp @@ -8,9 +8,10 @@ */ #include "Variant.h" -#include "split.h" -#include "Fasta.h" + +#include #include +#include using namespace std; using namespace vcflib; diff --git a/src/vcfqual2info.cpp b/src/vcfqual2info.cpp index ad2f9bd2..ffe82b8a 100644 --- a/src/vcfqual2info.cpp +++ b/src/vcfqual2info.cpp @@ -7,6 +7,8 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" using namespace std; diff --git a/src/vcfrandom.cpp b/src/vcfrandom.cpp index 2dbb1eea..9a59a7db 100644 --- a/src/vcfrandom.cpp +++ b/src/vcfrandom.cpp @@ -8,7 +8,6 @@ */ #include -#include #include #include "Variant.h" #include diff --git a/src/vcfrandomsample.cpp b/src/vcfrandomsample.cpp index e5e6fd37..b179eed7 100644 --- a/src/vcfrandomsample.cpp +++ b/src/vcfrandomsample.cpp @@ -9,11 +9,13 @@ #include "Variant.h" #include "BedReader.h" +#include "convert.h" +#include "join.h" + #include #include "mt19937ar.h" #include #include -#include "convert.h" using namespace std; using namespace vcflib; @@ -125,6 +127,7 @@ int main(int argc, char** argv) { init_genrand(seed); vector args; + args.reserve(argc); for (int i = 0; i < argc; ++i) { args.push_back(argv[i]); } diff --git a/src/vcfremap.cpp b/src/vcfremap.cpp index 36d51848..7f1ba841 100644 --- a/src/vcfremap.cpp +++ b/src/vcfremap.cpp @@ -9,14 +9,13 @@ #include "Variant.h" #include "BedReader.h" -#include "IntervalTree.h" +#include "cigar.hpp" +#include "join.h" + #include -#include "Fasta.h" -#include +#include #include -#include #include -// #include "ssw_cpp.hpp" using namespace std; @@ -180,6 +179,7 @@ int main(int argc, char** argv) { if (adjustVcf) { vector commandline; + commandline.reserve(argc); for (int i = 0; i < argc; ++i) commandline.push_back(argv[i]); variantFile.addHeaderLine("##INFO="); @@ -343,9 +343,9 @@ int main(int argc, char** argv) { // find the lowest positional difference int pdiff = 0; - for (vector::iterator d = positionDiffs.begin(); d != positionDiffs.end(); ++d) { - if (*d + altwindowsize < pdiff) - pdiff = *d + altwindowsize; + for (const auto diff : positionDiffs) { + if (diff+ altwindowsize < pdiff) + pdiff = diff + altwindowsize; } // adjust the reference string diff --git a/src/vcfremoveaberrantgenotypes.cpp b/src/vcfremoveaberrantgenotypes.cpp index 8d832585..0874abce 100644 --- a/src/vcfremoveaberrantgenotypes.cpp +++ b/src/vcfremoveaberrantgenotypes.cpp @@ -7,11 +7,14 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" -#include "split.h" #include #include #include +#include +#include using namespace std; using namespace vcflib; @@ -23,20 +26,25 @@ void stripAberrant(Variant& var) { map genotype = decomposeGenotype(sample["GT"].front()); int refobs = 0; convert(sample["RO"].front(), refobs); + bool eraseSample = false; if (isHomNonRef(genotype) && refobs > 0) { - var.samples.erase(s); + eraseSample = true; } else if (isHomRef(genotype)) { for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { int alleleIndex = var.altAlleleIndexes[*a]; int altobs = 0; convert(sample["AO"].at(alleleIndex), altobs); if (altobs > 0) { - var.samples.erase(s); + eraseSample = true; break; } } } - ++s; + if (eraseSample) { + s = var.samples.erase(s); + } else { + ++s; + } } } diff --git a/src/vcfremovesamples.cpp b/src/vcfremovesamples.cpp index f91ae352..0fca76ba 100644 --- a/src/vcfremovesamples.cpp +++ b/src/vcfremovesamples.cpp @@ -8,7 +8,7 @@ */ #include "Variant.h" -#include "split.h" + #include #include diff --git a/src/vcfsample2info.cpp b/src/vcfsample2info.cpp index 117fad1b..c504d616 100644 --- a/src/vcfsample2info.cpp +++ b/src/vcfsample2info.cpp @@ -8,8 +8,10 @@ */ #include "Variant.h" -#include "split.h" -#include "Fasta.h" +#include "stats.hpp" +#include "convert.h" + +#include #include #include #include @@ -35,19 +37,6 @@ void printSummary(char** argv) { exit(0); } -double median(vector &v) -{ - size_t n = v.size() / 2; - nth_element(v.begin(), v.begin()+n, v.end()); - return v[n]; -} - -double mean(vector &v) -{ - double sum = accumulate(v.begin(), v.end(), 0.0); - return sum / v.size(); -} - enum StatType { MEAN, MEDIAN, MIN, MAX }; int main(int argc, char** argv) { diff --git a/src/vcfsamplediff.cpp b/src/vcfsamplediff.cpp index f223badd..f055b3ca 100644 --- a/src/vcfsamplediff.cpp +++ b/src/vcfsamplediff.cpp @@ -7,10 +7,10 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" + #include "Variant.h" -#include "split.h" #include -#include #include #include @@ -18,11 +18,9 @@ using namespace std; using namespace vcflib; bool samplesDiffer(vector& samples, Variant& var) { - string genotype; - for (vector::iterator s = samples.begin(); s != samples.end(); ++s) { - string& sampleName = *s; + for (const auto& sampleName : samples) { map > >::iterator f = var.samples.find(sampleName); if (f != var.samples.end()) { map >& sample = f->second; @@ -150,8 +148,8 @@ int main(int argc, char** argv) { // TODO check if AC is present // ensure that AC is listed as an info field string line = "##INFO=::iterator s = samples.begin(); s != samples.end(); ++s) { - line += " " + *s; + for (const auto& sample : samples) { + line += " " + sample; } line += " have different genotypes\">"; variantFile.addHeaderLine(line); diff --git a/src/vcfsamplenames.cpp b/src/vcfsamplenames.cpp index 55cf560c..3193213d 100644 --- a/src/vcfsamplenames.cpp +++ b/src/vcfsamplenames.cpp @@ -41,9 +41,8 @@ Type: transformation return 1; } - for (vector::iterator sample = variantFile.sampleNames.begin(); - sample != variantFile.sampleNames.end(); ++sample) { - cout << *sample << endl; + for (const auto& sample : variantFile.sampleNames) { + cout << sample << endl; } return 0; diff --git a/src/vcfsamplestats.cpp b/src/vcfsamplestats.cpp index a33abbfa..c86ad226 100644 --- a/src/vcfsamplestats.cpp +++ b/src/vcfsamplestats.cpp @@ -7,6 +7,7 @@ This software is published under the MIT License. See the LICENSE file. */ +#include "convert.h" #include "Variant.h" #include "split.h" #include diff --git a/src/vcfsitesummarize.cpp b/src/vcfsitesummarize.cpp index dafc41b7..5dcb6fee 100644 --- a/src/vcfsitesummarize.cpp +++ b/src/vcfsitesummarize.cpp @@ -79,11 +79,11 @@ Type: statistics cout << "CHROM\tPOS\tID\tREF\tQUAL\tFILTER"; // configurable info field - for (vector::iterator i = infofields.begin(); i != infofields.end(); ++i) { - cout << "\t" << *i; + for (const auto& infoField : infofields) { + cout << "\t" << infoField; } - for (vector::iterator i = infoflags.begin(); i != infoflags.end(); ++i) { - cout << "\t" << *i; + for (const auto& infoFlag : infoflags) { + cout << "\t" << infoFlag; } cout << endl; @@ -97,9 +97,8 @@ Type: statistics << var.quality << "\t" << var.filter; - for (vector::iterator i = infofields.begin(); i != infofields.end(); ++i) { + for (const auto& name : infofields) { vector value; - string& name = *i; map >::iterator f = var.info.find(name); if (f != var.info.end()) { value = f->second; @@ -113,9 +112,8 @@ Type: statistics } } - for (vector::iterator i = infoflags.begin(); i != infoflags.end(); ++i) { + for (const auto& name : infoflags) { string value; - string& name = *i; map::iterator f = var.infoFlags.find(name); cout << "\t"; if (f != var.infoFlags.end()) { diff --git a/src/vcfsom.cpp b/src/vcfsom.cpp index 067a207f..6fc9c8f1 100644 --- a/src/vcfsom.cpp +++ b/src/vcfsom.cpp @@ -11,7 +11,9 @@ #include "Variant.h" #include "split.h" +#include "stats.hpp" #include "convert.h" + #include #include #include @@ -23,40 +25,6 @@ using namespace std; using namespace vcflib; -double mean(const vector& data) { - double total = 0; - for (vector::const_iterator i = data.begin(); i != data.end(); ++i) { - total += *i; - } - return total/data.size(); -} - -double median(vector & data) { - double median; - size_t size = data.size(); - // ascending order - sort(data.begin(), data.end()); - // get middle value - if (size % 2 == 0) { - median = (data[size/2-1] + data[size/2]) / 2; - } else { - median = data[size/2]; - } - return median; -} - -double variance(const vector & data, const double mean) { - double total = 0; - for (vector ::const_iterator i = data.begin(); i != data.end(); ++i) { - total += (*i - mean)*(*i - mean); - } - return total / (data.size()); -} - -double standard_deviation(const vector & data, const double mean) { - return sqrt(variance(data, mean)); -} - struct Stats { double mean; double stdev; diff --git a/src/vcfstats.cpp b/src/vcfstats.cpp index ca452713..5cc2d05f 100644 --- a/src/vcfstats.cpp +++ b/src/vcfstats.cpp @@ -8,7 +8,6 @@ */ #include "legacy.h" -#include "split.h" #include "convert.h" #include @@ -507,9 +506,9 @@ int main(int argc, char** argv) { // and maximum mnp int maxmnp = 0; - for (map::iterator i = mnps.begin(); i != mnps.end(); ++i) { - if (i->first > maxmnp) { - maxmnp = i->first; + for (const auto& i : mnps) { + if (i.first > maxmnp) { + maxmnp = i.first; } } diff --git a/src/vcfstreamsort.cpp b/src/vcfstreamsort.cpp index 3bf619f1..74201629 100644 --- a/src/vcfstreamsort.cpp +++ b/src/vcfstreamsort.cpp @@ -8,16 +8,15 @@ */ #include "Variant.h" -#include #include #include "convert.h" using namespace std; using namespace vcflib; -bool listContains(list& l, string& v) { - for (list::iterator i = l.begin(); i != l.end(); ++i) { - if (*i == v) return true; +bool listContains(const list& l, const string& v) { + for (const auto& elm : l) { + if (elm == v) return true; } return false; } @@ -134,12 +133,12 @@ int main(int argc, char** argv) { } } //cerr << "done processing input, cleaning up" << endl; - for (list::iterator s = sequenceNames.begin(); s != sequenceNames.end(); ++s) { - map > >& q = records[*s]; - for (map > >::iterator r = q.begin(); r != q.end(); ++r) { - for (map >::iterator v = r->second.begin(); v != r->second.end(); ++v) { - for (vector::iterator s = v->second.begin(); s != v->second.end(); ++s) { - cout << s->originalLine << endl; + for (const auto& sequenceName : sequenceNames) { + map > >& q = records[sequenceName]; + for (const auto& r : q) { + for (const auto& v : r.second) { + for (const auto& s : v.second) { + cout << s.originalLine << endl; } } --numrecords; diff --git a/src/vcfuniq.cpp b/src/vcfuniq.cpp index 7fef9ee5..d0caaf5d 100644 --- a/src/vcfuniq.cpp +++ b/src/vcfuniq.cpp @@ -52,7 +52,7 @@ Type: filter // Track the previous variant string lastsn; - long int lastpos; + long int lastpos = 0; string lastref; vector lastalt; diff --git a/src/vcfuniqalleles.cpp b/src/vcfuniqalleles.cpp index b4fd8b11..c2a18c10 100644 --- a/src/vcfuniqalleles.cpp +++ b/src/vcfuniqalleles.cpp @@ -50,20 +50,20 @@ Type: filter while (variantFile.getNextVariant(var)) { set alleles; vector alleles_to_remove; - for (vector::iterator a = var.alt.begin(); a != var.alt.end(); ++a) { - if (*a != var.ref) { - if (alleles.find(*a) == alleles.end()) { - alleles.insert(*a); + for (const auto& a : var.alt) { + if (a != var.ref) { + if (alleles.find(a) == alleles.end()) { + alleles.insert(a); } else { - alleles_to_remove.push_back(*a); + alleles_to_remove.push_back(a); } } else { - alleles_to_remove.push_back(*a); // same as ref + alleles_to_remove.push_back(a); // same as ref } } - for (vector::iterator a = alleles_to_remove.begin(); a != alleles_to_remove.end(); ++a) { - cerr << "removing " << *a << " from " << var.sequenceName << ":" << var.position << endl; - var.removeAlt(*a); + for (const auto& a : alleles_to_remove) { + cerr << "removing " << a << " from " << var.sequenceName << ":" << var.position << endl; + var.removeAlt(a); } cout << var << endl; } diff --git a/src/vcfunphase.cpp b/src/vcfunphase.cpp index 897a89d9..a82a0127 100644 --- a/src/vcfunphase.cpp +++ b/src/vcfunphase.cpp @@ -11,6 +11,7 @@ #include "split.h" #include #include +#include using namespace std; using namespace vcflib; diff --git a/src/vcfwave.cpp b/src/vcfwave.cpp index e0db1150..c9f15c61 100644 --- a/src/vcfwave.cpp +++ b/src/vcfwave.cpp @@ -10,9 +10,10 @@ #include #include -#include #include #include +#include +#include #include #ifdef WFA_PARALLEL @@ -22,7 +23,6 @@ #include "Variant.h" #include "vcf-wfa.h" #include "convert.h" -#include "join.h" #include "split.h" #include "progress.h" @@ -39,7 +39,7 @@ double convertStrDbl(const string& s) { } void printSummary(char** argv) { - std::string text = R"( + const std::string text = R"( usage: vcfwave [options] [file] Realign reference and alternate alleles with WFA, parsing out the @@ -101,24 +101,24 @@ int main(int argc, char** argv) { { /* These options set a flag. */ //{"verbose", no_argument, &verbose_flag, 1}, - {"help", no_argument, 0, 'h'}, - {"wf-params", required_argument, 0, 'p'}, - {"max-length", required_argument, 0, 'L'}, - {"inv-kmer", required_argument, 0, 'K'}, - {"inv-min", required_argument, 0, 'I'}, - {"tag-parsed", required_argument, 0, 'f'}, - {"keep-info", no_argument, 0, 'k'}, - {"keep-geno", no_argument, 0, 'g'}, - {"threads", required_argument, 0, 't'}, - {"nextgen", no_argument, 0, 'n'}, - {"quiet", no_argument, 0, 'q'}, - {"debug", no_argument, 0, 'd'}, - {0, 0, 0, 0} + {"help", no_argument, nullptr, 'h'}, + {"wf-params", required_argument, nullptr, 'p'}, + {"max-length", required_argument, nullptr, 'L'}, + {"inv-kmer", required_argument, nullptr, 'K'}, + {"inv-min", required_argument, nullptr, 'I'}, + {"tag-parsed", required_argument, nullptr, 'f'}, + {"keep-info", no_argument, nullptr, 'k'}, + {"keep-geno", no_argument, nullptr, 'g'}, + {"threads", required_argument, nullptr, 't'}, + {"nextgen", no_argument, nullptr, 'n'}, + {"quiet", no_argument, nullptr, 'q'}, + {"debug", no_argument, nullptr, 'd'}, + {nullptr, 0, nullptr, 0} }; /* getopt_long stores the option index here. */ int option_index = 0; - c = getopt_long (argc, argv, "nqdhkt:L:p:t:K:I:f:", + c = getopt_long (argc, argv, "nqdhkt:L:p:K:I:f:", long_options, &option_index); if (c == -1) @@ -191,10 +191,11 @@ int main(int argc, char** argv) { off_t file_size = -1; if (optind < argc) { - string filename = argv[optind]; + const string filename = argv[optind]; variantFile.open(filename); file_size = get_file_size(filename.c_str()); - } else { + } + else { variantFile.open(std::cin); } @@ -205,7 +206,8 @@ int main(int argc, char** argv) { // parse the alignment parameters vector p_str = split(paramString, ','); vector p; - for (auto& s : p_str) { p.push_back(atoi(s.c_str())); } + p.reserve(p_str.size()); + for (const auto& s : p_str) { p.push_back(atoi(s.c_str())); } auto wfa_params = wavefront_aligner_attr_default; wfa_params.memory_mode = wavefront_memory_ultralow; // note this is overridden in Variant.cpp @@ -242,7 +244,7 @@ int main(int argc, char** argv) { // we can't decompose *1* bp events, these are already in simplest-form whether SNPs or indels // we also don't handle anything larger than maxLength bp int max_allele_length = 0; - for (auto allele: var.alt) { + for (const auto& allele: var.alt) { if (debug) cerr << allele << ":" << allele.length() << "," << max_allele_length << endl; if (allele.length() >= max_allele_length) { max_allele_length = allele.length(); @@ -293,22 +295,21 @@ int main(int argc, char** argv) { TrackInfo unique; // Track all alleles // Unpack wavefront results and set values for each unique allele - for (const auto [alt0, wfvalue] : varAlleles) { + for (const auto& [alt0, wfvalue] : varAlleles) { bool is_inv = wfvalue.second; - for (auto wfmatch: wfvalue.first) { - auto ref = wfmatch.ref; - auto aligned = wfmatch.alt; - auto wfpos = wfmatch.position; - int alt_index,AC=-1,AN = -1; + for (const auto& wfmatch: wfvalue.first) { + const auto& ref = wfmatch.ref; + const auto& aligned = wfmatch.alt; + const auto wfpos = wfmatch.position; + int alt_index=-1,AC=-1,AN = -1; string AT; double AF = -1; - string wftag = alt0+":"+to_string(wfpos)+":"+ref+"/"+aligned; if (ref != aligned) { - auto index = [&](vector v, string allele) { + auto index = [&](const vector& v, const string& allele) { //auto check = (is_inv ? reverse_complement(allele) : allele); DISABLED - auto check = allele; + const auto& check = allele; auto it = find(v.begin(), v.end(), check); - return (it == v.end() ? throw std::runtime_error("Unexpected value error for allele (inv="+to_string(is_inv)+ " " +check + ")") : it - v.begin() ); + return it == v.end() ? throw std::runtime_error("Unexpected value error for allele (inv="+to_string(is_inv)+ " " +check + ")") : it - v.begin(); }; alt_index = index(var.alt,alt0); // throws error if missing if (var.info["AC"].size() > alt_index) { @@ -324,38 +325,40 @@ int main(int argc, char** argv) { AN = stoi(var.info["AN"].at(alt_index)); } } - auto relpos = wfpos - var.position; - auto u = &unique[wftag]; - u->pos0 = var.position; - u->ref0 = var.ref; - u->alt0 = alt0; - u->ref1 = ref; - u->algn = aligned; - u->pos1 = wfpos; - u->altidx = alt_index; - u->relpos = relpos; - u->AC = AC; - u->AF = AF; - u->AN = AN; - u->AT = AT; - u->is_inv = is_inv; + const auto relpos = wfpos - var.position; + + const string wftag = alt0 + ":" + to_string(wfpos) + ":" + ref + "/" + aligned; + auto& u = unique[wftag]; + u.pos0 = var.position; + u.ref0 = var.ref; + u.alt0 = alt0; + u.ref1 = ref; + u.algn = aligned; + u.pos1 = wfpos; + u.altidx = alt_index; + u.relpos = relpos; + u.AC = AC; + u.AF = AF; + u.AN = AN; + u.AT = AT; + u.is_inv = is_inv; } } // Collect genotypes for every allele from the main record. This code is // effectively mirrored in Python in realign.py: RecGenotypes genotypes; auto samples = var.samples; - for (auto sname: var.sampleNames) { - auto genotype1 = samples[sname]["GT"].front(); + for (const auto& sname: var.sampleNames) { + const auto& genotype1 = samples[sname]["GT"].front(); vector genotypeStrs = split(genotype1, "|/"); Genotypes gts; - std::transform(genotypeStrs.begin(), genotypeStrs.end(), std::back_inserter(gts), [](auto n){ return (n == "." ? ALLELE_NULL2 : stoi(n)); }); + std::transform(genotypeStrs.begin(), genotypeStrs.end(), std::back_inserter(gts), [](const auto& n){ return (n == "." ? ALLELE_NULL2 : stoi(n)); }); genotypes.push_back(gts); } // Now plug in the new indices for listed genotypes - for (auto [tag,aln]: unique) { + for (auto& [_,aln]: unique) { RecGenotypes aln_genotypes = genotypes; // make a copy - auto altidx1 = aln.altidx+1; + const auto altidx1 = aln.altidx+1; for (auto >: aln_genotypes) { int i = 0; for (auto g: gt) { @@ -366,35 +369,23 @@ int main(int argc, char** argv) { i++; } } - unique[tag].genotypes = aln_genotypes; + aln.genotypes = aln_genotypes; } // Merge records that describe the exact same variant (in // earlier jargon a 'primitive allele' in a new dict named // variants and adjust AC, AF and genotypes: TrackInfo track_variants; - for (auto [key,v] : unique) { - auto ref = v.ref1; - auto aligned = v.algn; + for (const auto& [_,v] : unique) { + const auto& ref = v.ref1; + const auto& aligned = v.algn; if (ref != aligned) { - auto ntag = to_string(v.pos1) + ":" + ref + "/" + aligned + "_" + to_string(v.is_inv); + auto ntag = to_string(v.pos1) + ":" + ref + "/" + aligned + "_" + to_string(v.is_inv) + "_"+ v.AT; if (track_variants.count(ntag)>0 && track_variants[ntag].AN == v.AN) { // this variant already exists track_variants[ntag].AC += v.AC; // Check AN number is equal so we can compute AF by addition //assert(track_variants[ntag].AN == v.AN); track_variants[ntag].AF += v.AF; - // Merge genotypes if they come from different alleles - if (v.altidx != track_variants[ntag].altidx) { - auto track_genotypes = track_variants[ntag].genotypes; - for (auto sample: v.genotypes) { // all samples - int i = 0; - for (auto g: sample) { // all genotypes - if (g && sample[i]>0) - sample[i] = 1; // always one genotype in play - i++; - } - } - } } else { track_variants[ntag] = v; @@ -404,7 +395,7 @@ int main(int argc, char** argv) { unique.clear(); // The following section updates the INFO TYPE and INV field: // Adjust TYPE field to set snp/mnp/ins/del - for (auto [key,v] : track_variants) { + for (auto& [_,v] : track_variants) { auto ref_len = v.ref1.length(); auto aln_len = v.algn.length(); string type; @@ -428,10 +419,9 @@ int main(int argc, char** argv) { v.type = type; v.size = size; v.origin = var.sequenceName+":"+to_string(var.position); - track_variants[key] = v; } // Here we correct for deletions - overlapping cals for SNP and MNP get nullified. - for (auto [key,v]: track_variants) { + for (const auto& [_,v]: track_variants) { if (v.type == "del") { auto del_ref_len = v.ref1.length(); auto del_aln_len = v.algn.length(); @@ -449,7 +439,7 @@ int main(int argc, char** argv) { auto overlap = [] (unsigned int pos,tuple range) { auto start = get<0>(range); auto end = get<1>(range); - return (pos >= start && pos <= end); + return (pos >= start && pos < end); }; if (overlap(pos1,check_range) || overlap(pos2,check_range)) { int i = 0; @@ -473,7 +463,7 @@ int main(int argc, char** argv) { } // The following section outputs all tracked alleles one by one: int ct = 0; - for (auto [key,v]: track_variants) { + for (const auto& [_,v]: track_variants) { ct++; Variant newvar(variantFile); newvar.sequenceName = var.sequenceName; @@ -530,7 +520,7 @@ int main(int argc, char** argv) { cout.precision(2); cout << newvar; cout << "\tGT"; - for (auto gts: v.genotypes) { + for (const auto& gts: v.genotypes) { cout << "\t"; int idx = 0; for (auto gt : gts) { diff --git a/src/wcFst.cpp b/src/wcFst.cpp index a9ec0759..7d87b6c4 100644 --- a/src/wcFst.cpp +++ b/src/wcFst.cpp @@ -8,21 +8,17 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" -#include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" #include #include -#include #include -#include -#include -#include +#include #include +#include + #include "gpatInfo.hpp" -#include "makeUnique.h" using namespace std; using namespace vcflib; @@ -67,17 +63,6 @@ double bound(double v){ return v; } -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; - } -} - int main(int argc, char** argv) { @@ -246,26 +231,25 @@ int main(int argc, char** argv) { continue; } - using Detail::makeUnique; - unique_ptr populationTarget ; - unique_ptr populationBackground ; + std::unique_ptr populationTarget ; + std::unique_ptr populationBackground ; if(type == "PL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); } if(type == "GT"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); } populationTarget->loadPop(target, var.position); diff --git a/src/xpEHH.cpp b/src/xpEHH.cpp index 581cc119..369befcc 100644 --- a/src/xpEHH.cpp +++ b/src/xpEHH.cpp @@ -8,22 +8,24 @@ */ #include "Variant.h" -#include "split.h" -#include "cdflib.hpp" #include "pdflib.hpp" #include "var.hpp" +#include "index.hpp" +#include "phase.hpp" #include #include #include #include -#include #include #include #include +#include using namespace std; -using namespace vcf; +using namespace vcflib; + + void printVersion(void){ cerr << "INFO: version 1.1.0 ; date: April 2014 ; author: Zev Kronenberg; email : zev.kronenberg@utah.edu " << endl; exit(1); @@ -60,26 +62,16 @@ void printHelp(void){ exit(1); } -void clearHaplotypes(string haplotypes[][2], int ntarget){ +void clearHaplotypes(vector>& haplotypes, int ntarget){ for(int i= 0; i < ntarget; i++){ - haplotypes[i][0].clear(); - haplotypes[i][1].clear(); - } -} - -void loadIndices(map & index, string set){ - - vector indviduals = split(set, ","); - vector::iterator it = indviduals.begin(); - - for(; it != indviduals.end(); it++){ - index[ atoi( (*it).c_str() ) ] = 1; + haplotypes[i].first.clear(); + haplotypes[i].second.clear(); } } -void calc(string haplotypes[][2], int nhaps, vector pos, vector afs, vector & target, vector & background, string seqid){ +void calc(const vector>& haplotypes, int /*nhaps*/, vector pos, vector afs, vector & target, vector & background, string seqid){ - for(int snp = 0; snp < haplotypes[0][0].length(); snp++){ + for(int snp = 0; snp < haplotypes[0].first.length(); snp++){ double ehhsat = 1; double ehhsab = 1; @@ -99,7 +91,7 @@ void calc(string haplotypes[][2], int nhaps, vector pos, vector pos, vector::iterator th = targetH.begin(); th != targetH.end(); th++){ - // grabbing the core SNP (*th).first.substr((end-start)/2, 1) == "1" - if( (*th).first.substr((end-start)/2, 1) == "1"){ - sumaT += r8_choose(th->second, 2); - naltT += th->second; - } - else{ - sumrT += r8_choose(th->second, 2); - nrefT += th->second; - } - } + // iterating over the target populations haplotypes + for(const auto&[key, val] : targetH){ + // grabbing the core SNP (*th).first.substr((end-start)/2, 1) == "1" + if( key.substr((end-start)/2, 1) == "1"){ + sumaT += r8_choose(val, 2); + naltT += val; + } + else{ + sumrT += r8_choose(val, 2); + nrefT += val; + } + } // integrating over the background populations haplotypes for( map::iterator bh = backgroundH.begin(); bh != backgroundH.end(); bh++){ @@ -187,19 +179,6 @@ double EHH(string haplotypes[][2], int nhaps){ } -void loadPhased(string haplotypes[][2], genotype * pop, int ntarget){ - - int indIndex = 0; - - for(vector::iterator ind = pop->gts.begin(); ind != pop->gts.end(); ind++){ - string g = (*ind); - vector< string > gs = split(g, "|"); - haplotypes[indIndex][0].append(gs[0]); - haplotypes[indIndex][1].append(gs[1]); - indIndex += 1; - } -} - int main(int argc, char** argv) { // set the random seed for MCMC @@ -353,8 +332,8 @@ int main(int argc, char** argv) { vector positions; vector afs; - string haplotypes [nsamples][2]; - + vector> haplotypes(nsamples); + string currentSeqid = "NA"; while (variantFile.getNextVariant(var)) { @@ -370,7 +349,7 @@ int main(int argc, char** argv) { } if(currentSeqid != var.sequenceName){ - if(haplotypes[0][0].length() > 10){ + if(haplotypes[0].first.length() > 10){ calc(haplotypes, nsamples, positions, afs, target_h, background_h, currentSeqid); } clearHaplotypes(haplotypes, nsamples); @@ -404,24 +383,24 @@ int main(int argc, char** argv) { unique_ptr populationTotal ; if(type == "PL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GL"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GP"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } if(type == "GT"){ - populationTarget = makeUnique(); - populationBackground = makeUnique(); - populationTotal = makeUnique(); + populationTarget = std::make_unique(); + populationBackground = std::make_unique(); + populationTotal = std::make_unique(); } populationTarget->loadPop(target, var.sequenceName, var.position); @@ -439,7 +418,7 @@ int main(int argc, char** argv) { afs.push_back(populationTotal->af); positions.push_back(var.position); - loadPhased(haplotypes, populationTotal, nsamples); + loadPhased(haplotypes, populationTotal); } diff --git a/src/zig/README.md b/src/zig/README.md index b8e086bc..58139d74 100644 --- a/src/zig/README.md +++ b/src/zig/README.md @@ -10,6 +10,10 @@ I think it won't have much impact replacing it with another allocator because vc If anyone wants to try we could replace it. The good thing about the test allocator is that it complains if things do not get cleaned up. +Note that Zig is not supported on all platforms (yet). Guix has a recent version now, as well as +Anaconda. +We expect major distros to start supporting Zig in 2025 because the bootstrap story is more or less resolved with Guix. + ## Build To add zig to your build environment simply download the binary and add it to the path. Next setup the Cmake build environment in the usual way: diff --git a/src/zig/build.zig b/src/zig/build.zig index 6b64d7ae..e94e09ea 100644 --- a/src/zig/build.zig +++ b/src/zig/build.zig @@ -1,4 +1,3 @@ -const zig_version = @import("builtin").zig_version; const std = @import("std"); const test_targets = [_]std.Target.Query{ @@ -10,36 +9,32 @@ pub fn build(b: *std.Build) void { // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); - // const mode = b.standardReleaseOptions(); - const lib = b.addStaticLibrary(.{ - .optimize = optimize, + const lib = b.addLibrary(.{ .name = "zig", - .target = target, - .root_source_file = b.path("vcf.zig"), - .pic = true, + .linkage = .static, + .root_module = b.createModule(.{ + .optimize = optimize, + .target = target, + .root_source_file = b.path("vcf.zig"), + .pic = true, + }), }); - // lib.setBuildMode(optimize); // lib.addObjectFile("../../build/libvcflib.a"); circular dependency - switch (optimize) { - .Debug, .ReleaseSafe => lib.bundle_compiler_rt = true, - .ReleaseFast, .ReleaseSmall => {}, - } - // lib.force_pic = true; - // lib.emit_h = true; future version of zig? b.installArtifact(lib); - // lib.install(); const test_step = b.step("test", "Run unit tests"); for (test_targets) |ttarget| { const unit_tests = b.addTest(.{ - .root_source_file = b.path("vcf.zig"), - .target = b.resolveTargetQuery(ttarget), + .root_module = b.createModule(.{ + .root_source_file = b.path("vcf.zig"), + .target = b.resolveTargetQuery(ttarget), + }), }); const run_unit_tests = b.addRunArtifact(unit_tests); test_step.dependOn(&run_unit_tests.step); } - + } diff --git a/src/zig/compile.sh b/src/zig/compile.sh index a4f25d32..c6bfad8b 100755 --- a/src/zig/compile.sh +++ b/src/zig/compile.sh @@ -4,6 +4,7 @@ # creates library in zig-out echo "ZIG PATH $PATH" zig version +export ZIG_GLOBAL_CACHE_DIR=$PWD # see https://github.com/ziglang/zig/issues/19400 zig build $* exit $? diff --git a/src/zig/samples.zig b/src/zig/samples.zig index cb05a1f2..ca580653 100644 --- a/src/zig/samples.zig +++ b/src/zig/samples.zig @@ -9,8 +9,7 @@ const expectEqual = std.testing.expectEqual; const expectEqualSlices = std.testing.expectEqualSlices; const eql = std.mem.eql; const p = std.debug.print; -var gpa = std.heap.GeneralPurposeAllocator(.{}){}; -const allocator = gpa.allocator(); +const allocator = std.heap.page_allocator; const vcf = @import("vcf.zig"); @@ -26,11 +25,15 @@ pub const VcfSampleError = error{ const GENOTYPE_MISSING = -256; fn split_samples(str: []const u8) *ArrayList([] const u8) { - var list = ArrayList([] const u8).init(allocator); - defer list.deinit(); - var splits = std.mem.split(u8, str, " "); + var list = ArrayList([] const u8){}; + defer list.deinit(allocator); + + var splits = if (@hasDecl(std.mem, "splitScalar")) + std.mem.splitScalar(u8, str, ' ') + else + std.mem.split(u8, str, ' '); while (splits.next()) |chunk| { - list.append(chunk) catch |err| { + list.append(allocator, chunk) catch |err| { std.debug.print("out of memory {}\n", .{err}); }; } @@ -44,7 +47,7 @@ fn split_samples(str: []const u8) *ArrayList([] const u8) { /// ArrayList(genotypes). const Genotypes = struct { // default field values - genos: ArrayList(i64), + genos: ArrayList(i64), phased: bool = false, const Self = @This(); @@ -56,48 +59,51 @@ const Genotypes = struct { fn is_phased(str: [] const u8) bool { return std.mem.containsAtLeast(u8, str, 1, "|"); } - + /// Convert a genotype (sample) string to a list of numbers fn to_num(str: []const u8) !ArrayList(i64) { - var list = ArrayList(i64).init(allocator); - var splits = if (is_phased(str)) - std.mem.split(u8, str, "|") + var list = ArrayList(i64){}; + + var splits = if (@hasDecl(std.mem, "splitScalar")) + std.mem.splitScalar(u8, str, if (is_phased(str)) '|' else '/') else - std.mem.split(u8, str, "/"); + std.mem.split(u8, str, if (is_phased(str)) '|' else '/' ); while (splits.next()) |chunk| { - const i: i64 = - if (chunk[0] == '.') + const i: i64 = + if (chunk[0] == '.') GENOTYPE_MISSING else fmt.parseInt(i64,chunk,10) catch |err| { try expect(err == error.InvalidCharacter); return error.CannotParseSample; }; - list.append(i) catch unreachable; + list.append(allocator, i) catch unreachable; } return list; } - fn init(str: [] const u8) Genotypes { - const parsed = to_num(str) catch unreachable; + fn init(str: [] const u8) !Genotypes { + const parsed = try to_num(str); return Genotypes { .genos = parsed, .phased = is_phased(str) }; } - + fn deinit(self: *const Self) void { - self.genos.deinit(); + var genos_copy = self.genos; + genos_copy.deinit(allocator); } - + /// Take a 0-n indexed genotype and add offset idx. When the /// genotype is 0 (ref) or missing it is not changed. fn renumber(self: *const Self, idx: usize) !void { + var list = self.genos; for (list.items,0..) | g,i | { - list.items[i] = + list.items[i] = switch (g) { 0 => 0, GENOTYPE_MISSING => GENOTYPE_MISSING, @@ -110,10 +116,12 @@ const Genotypes = struct { /// last genotype. FIXME: at this point we are not checking for /// size mismatches fn merge(self: *const Self, genos2: Genotypes) !void { + var base = self.genos; var g_err: VcfSampleError = error.None; - + for (genos2.genos.items,0..) | g2,i | { + if (i >= base.items.len) break; // size mismatch guard const current = base.items[i]; if (g2 == 0 or g2 == GENOTYPE_MISSING) continue; // no update if (current>0) { @@ -124,34 +132,35 @@ const Genotypes = struct { } return g_err; } - + fn to_s(self: *const Self) !ArrayList(u8) { + const list = self.genos.items; const phase_repr = if (self.phased) "|" else "/"; - var s = ArrayList(u8).init(allocator); + var s = ArrayList(u8){}; // concatenate genotypes with their phase separator for (list) | g | { - const result = if (g == GENOTYPE_MISSING) + const result = if (g == GENOTYPE_MISSING) try fmt.allocPrint(allocator, ".{s}", .{phase_repr}) else try fmt.allocPrint(allocator, "{}{s}", .{g,phase_repr}); defer allocator.free(result); - try s.appendSlice(result); + try s.appendSlice(allocator, result); } - s.items = s.items[0..s.items.len-1]; // drop trailing phase character + if (s.items.len > 0) s.items = s.items[0..s.items.len-1]; // drop trailing phase character // p("*{s}*",.{s.items}); return s; } - + fn to_s2(self: *const Self) !ArrayList([] const u8) { // _ = self; - var s = ArrayList([] const u8).init(allocator); + var s = ArrayList([] const u8){}; for (self.genos.items) |g| { // parseInt to go to str // charDigit to int const result = try fmt.allocPrint(allocator, "{}", .{g}); // p("Result is {s}!\n", .{result}); - try s.append(result); + try s.append(allocator, result); } return s; } @@ -168,17 +177,17 @@ const ReturnGenotypes = struct { /// heterozygous only (at this point). pub fn reduce_renumber_genotypes(comptime T: type, vs: ArrayList(T)) !ReturnGenotypes { //pub fn reduce_renumber_genotypes(comptime T: type, vs: ArrayList(T)) !ArrayList([] const u8) { - var samples = ArrayList(Genotypes).init(allocator); // result set + var sample_list = ArrayList(Genotypes){}; // result set var g_err: VcfSampleError = error.None; for (vs.items, 0..) | v,i | { // Fetch the genotypes from each variant for (v.genotypes().items, 0..) | geno,j | { - var geno2 = Genotypes.init(geno); // convert from string to number list + var geno2 = try Genotypes.init(geno); // convert from string to number list try geno2.renumber(i); if (i==0) { - try samples.append(geno2); + try sample_list.append(allocator, geno2); } else { - samples.items[j].merge(geno2) catch |err| { + sample_list.items[j].merge(geno2) catch |err| { if (err != error.None) g_err = err; }; @@ -186,10 +195,10 @@ pub fn reduce_renumber_genotypes(comptime T: type, vs: ArrayList(T)) !ReturnGeno } } // convert to zero terminated strings for vcflib C++ core code - var s_samples = ArrayList([] const u8).init(allocator); - for (samples.items) |g| { + var s_samples = ArrayList([] const u8){}; + for (sample_list.items) |g| { const s = try g.to_s(); - s_samples.append(s.items) catch unreachable; + s_samples.append(allocator, s.items) catch unreachable; } // p("ngeno_s: size {d} {s}\n",.{s_samples.items.len,s_samples.items}); // return s_samples; @@ -202,25 +211,25 @@ test "split genotypes" { } test "genotypes" { - var list = ArrayList(i64).init(allocator); - defer list.deinit(); - try list.append(0); - try list.append(1); + var list = ArrayList(i64){}; + defer list.deinit(allocator); + try list.append(allocator, 0); + try list.append(allocator, 1); var gs = Genotypes{.genos = list, .phased = true}; var genos = try gs.to_s2(); defer { for (genos.items) |item| { allocator.free(item); } - genos.deinit(); + genos.deinit(allocator); } // p("YES {s}",.{genos.items}); - const gs2 = try Genotypes.to_num("1|0"); - defer gs2.deinit(); + var gs2 = try Genotypes.to_num("1|0"); + defer gs2.deinit(allocator); try expect(gs2.items[0]==1); try expectEqual(gs2.items[1],0); - const gs3 = Genotypes.init("1|."); + const gs3 = try Genotypes.init("1|."); defer gs3.deinit(); const list2 = gs3.genos.items; try expectEqual(list2.len,2); @@ -228,20 +237,20 @@ test "genotypes" { try gs3.renumber(1); // try expectEqual(add3.items[0],2); // try expectEqual(add3.items[1],GENOTYPE_MISSING); - const s3 = try gs3.to_s(); - defer s3.deinit(); + var s3 = try gs3.to_s(); + defer s3.deinit(allocator); try expect(eql(u8, s3.items, "2|.")); - const gs4 = try Genotypes.to_num(".|2"); - defer gs4.deinit(); + var gs4 = try Genotypes.to_num(".|2"); + defer gs4.deinit(allocator); try expectEqualSlices(i64, gs4.items, &.{ GENOTYPE_MISSING, 2 }); //const add4 = Genotypes.renumber(1,gs4); //try expectEqualSlices(i64, add4.items, &.{ GENOTYPE_MISSING, 3 }); - const genotypes = Genotypes.init("1|0"); - defer genotypes.deinit(); - // p("{d}",.{genotypes.genos.items}); - const str = try genotypes.to_s(); - defer str.deinit(); + const genotypes_val = try Genotypes.init("1|0"); + defer genotypes_val.deinit(); + // p("{d}",.{genotypes_val.genos.items}); + var str = try genotypes_val.to_s(); + defer str.deinit(allocator); // p("{s}",.{str}); try expect(eql(u8, str.items, "1|0")); } diff --git a/src/zig/vcf.zig b/src/zig/vcf.zig index 537afd31..355cd9b9 100644 --- a/src/zig/vcf.zig +++ b/src/zig/vcf.zig @@ -15,6 +15,7 @@ const ArrayList = std.ArrayList; const StringList = ArrayList([] const u8); const p = @import("std").debug.print; + const VCFError = error{ UnexpectedOrder, MultiAltNotSupported @@ -51,14 +52,13 @@ export fn hello_zig2(msg: [*] const u8) [*]const u8 { return result; } -// const allocator = std.testing.allocator; -var gpa = std.heap.GeneralPurposeAllocator(.{}){}; -const allocator = gpa.allocator(); +// Use page_allocator: GPA's safety checks conflict with C++/zig interop +const allocator = std.heap.page_allocator; var warnings = std.StringHashMap(bool).init(allocator); // Note: not thread safe pub fn warning(str: [] const u8) !void { - try warnings.put(str,true); + try warnings.put(str, true); } /// Called by C++ @@ -117,7 +117,7 @@ const Variant = struct { /// Get the C++ alts pub fn alt(self: *const Self) ArrayList([] const u8) { - var list = ArrayList([] const u8).init(allocator); + var list = ArrayList([] const u8){}; const altsize = var_alt_num(self.v); const buffer = allocator.alloc(*anyopaque, altsize) catch unreachable; defer allocator.free(buffer); @@ -126,15 +126,15 @@ const Variant = struct { while (i < altsize) : (i += 1) { const s = res[i]; const s2 = to_slice(s); - list.append(s2) catch unreachable; + list.append(allocator, s2) catch unreachable; } return list; } - + /// Get the C++ infos pub fn info(self: *const Self, name: [] const u8) ArrayList([] const u8) { const c_name = to_cstr0(name); - var list = ArrayList([] const u8).init(allocator); + var list = ArrayList([] const u8){}; const size = var_info_num(self.v,c_name); const buffer = allocator.alloc(*anyopaque, size) catch unreachable; defer allocator.free(buffer); @@ -147,7 +147,7 @@ const Variant = struct { // p("<{d}:{d}><{any}--{s}--{any}>\n",.{i,altsize,s,s1,buffer[i]}); const s2 = to_slice(s); // p("{s}\n",.{s2}); - list.append(s2) catch unreachable; + list.append(allocator, s2) catch unreachable; } return list; @@ -156,7 +156,7 @@ const Variant = struct { /// Get the C++ genotypes as a list pub fn genotypes(self: *const Self) ArrayList([] const u8) { // p("Inside genotypes:\n",.{}); - var list = ArrayList([] const u8).init(allocator); + var list = ArrayList([] const u8){}; const size = var_samples_num(self.v); const buffer = allocator.alloc(*anyopaque, size) catch unreachable; defer allocator.free(buffer); @@ -166,11 +166,11 @@ const Variant = struct { const s = res[i]; const s2 = to_slice(s); // p("<{s}>",.{s2}); - list.append(s2) catch unreachable; + list.append(allocator, s2) catch unreachable; } return list; } - + /// Set C++ ref pub fn set_ref(self: *const Self, nref: [:0] const u8) void { var_set_ref(self.v,@as([*c]const u8,@ptrCast(nref))); @@ -187,7 +187,7 @@ const Variant = struct { // var x = to_cstr(nalt.items[i]); // var x: [:0] const u8 = // nalt.items[i]; - + // var_set_alt(self.v,@ptrCast([*c] const u8,x),i); // var_set_alt(self.v,x,i); var_set_alt(self.v,nalt.items[i],i); @@ -195,7 +195,7 @@ const Variant = struct { } /// Set C++ infos - pub fn set_info(self: *const Self, name: [] const u8, data: ArrayList([] const u8)) void { + pub fn set_info(self: *const Self, name: [] const u8, data: ArrayList([] const u8)) void { const c_name = to_cstr0(name); var_clear_info(self.v,c_name); var i: usize = 0; @@ -211,7 +211,7 @@ const Variant = struct { const s = nsamples.items[i]; var buffer = allocator.alloc(u8, s.len + 1) catch unreachable; defer allocator.free(buffer); - + for (s, 0..) | c,j | { buffer[j] = c; } @@ -272,63 +272,65 @@ export fn zig_create_multi_allelic2(variant: ?*anyopaque, varlist: [*c]?* anyopa /// and adjusts the metrics for AF, AC, sample genotype index etc. /// export fn zig_create_multi_allelic(variant: ?*anyopaque, varlist: [*c]?* anyopaque, size: usize) *anyopaque { - // Create vs as a list of variants - // var hanging_pointer = ArrayList([] const u8).init(allocator); - // hanging_pointer.append("C") catch unreachable; + const result = zig_create_multi_allelic_inner(variant, varlist, size) catch { + warning("zig_create_multi_allelic error - returning original variant") catch {}; + return variant.?; + }; + return result; +} +fn zig_create_multi_allelic_inner(variant: ?*anyopaque, varlist: [*c]?* anyopaque, size: usize) !*anyopaque { + // Create vs as a list of variants var mvar = Variant{.v = variant.?}; // FIXME: we need to clean this small struct up from C++ - var vs = ArrayList(Variant).init(allocator); - defer vs.deinit(); - + var vs = ArrayList(Variant){}; + defer vs.deinit(allocator); + var i: usize = 0; while (i < size) : (i += 1) { // use index to access *anyopaque const v = Variant{.v = varlist[i].?}; - vs.append(v) catch unreachable; + try vs.append(allocator, v); } // Get the reference and update mvar (multi VCF record containing multiple variants) - var nref = expand_ref(Variant,vs) catch unreachable; - defer nref.deinit(); - const c_nref = nref.toOwnedSliceSentinel(0) catch unreachable; + var nref = try expand_ref(Variant,vs); + defer nref.deinit(allocator); + const c_nref = try nref.toOwnedSliceSentinel(allocator, 0); mvar.set_ref(c_nref); // Get the alts and update mvar const first = vs.items[0]; - const nalt = expand_alt(Variant,first.pos(),c_nref,vs) catch unreachable; - defer nalt.deinit(); + var nalt = try expand_alt(Variant,first.pos(),c_nref,vs); + defer nalt.deinit(allocator); mvar.set_alt(nalt); // Get infos and update mvar const list = [_][] const u8{ "AN","AT","AC","AF","INV","TYPE" }; for (list) |name| { - const at = expand_info(Variant,name,vs) catch unreachable; - defer at.deinit(); + var at = try expand_info(Variant,name,vs); + defer at.deinit(allocator); mvar.set_info(name,at); } // Get genotypes and update mvar - var genotypes = samples.reduce_renumber_genotypes(Variant,vs) catch unreachable; - defer genotypes.s_samples.deinit(); - - mvar.set_samples(genotypes.s_samples); - var ninfo = ArrayList([] const u8).init(allocator); - defer ninfo.deinit(); - - if (genotypes.g_err != samples.VcfSampleError.None) { - ninfo.append("ALTPROBLEM") catch unreachable; + var genotypes_result = try samples.reduce_renumber_genotypes(Variant,vs); + defer genotypes_result.s_samples.deinit(allocator); + + mvar.set_samples(genotypes_result.s_samples); + var ninfo = ArrayList([] const u8){}; + defer ninfo.deinit(allocator); + + if (genotypes_result.g_err != samples.VcfSampleError.None) { + ninfo.append(allocator, "ALTPROBLEM") catch {}; mvar.set_info("MULTI",ninfo); } - + return mvar.v; } /// The C++ code should call this to cleanup -export fn zig_cleanup() void { +export fn zig_cleanup() void { warnings.deinit(); - - // ---- Not cleaning up the GPA unless we are debugging - // std.debug.assert(!gpa.deinit()); } @@ -378,12 +380,12 @@ const MockVariant = struct { /// Expands reference to overlap all variants fn expand_ref(comptime T: type, list: ArrayList(T)) !ArrayList(u8) { - var res = ArrayList(u8).init(allocator); - // defer res.deinit(); - // try res.append('T'); + var res = ArrayList(u8){}; + // defer alDeinit(u8, &res, allocator); + // try alAppend(u8, &res, allocator, 'T'); const first = list.items[0]; // concat2(&res,first.ref); - try res.appendSlice(first.ref()); + try res.appendSlice(allocator, first.ref()); // p("!{s}!",.{res}); // defer allocator.free(result); @@ -397,26 +399,31 @@ fn expand_ref(comptime T: type, list: ArrayList(T)) !ArrayList(u8) { // ref1 |AAAAAAAAAAAAA| // |--->| append | // pdiff - + if (right1 > right0) { - - const sdiff = right1 - right0; // diff between ref0 and ref1 right positions - const pdiff = right0 - left1; // diff between ref0 right and ref1 left - // newref = ref + append - try res.appendSlice(v.ref()[pdiff..pdiff+sdiff]); + if (right0 >= left1) { + const sdiff = right1 - right0; // diff between ref0 and ref1 right positions + const pdiff = right0 - left1; // diff between ref0 right and ref1 left + // newref = ref + append + try res.appendSlice(allocator, v.ref()[pdiff..pdiff+sdiff]); + } else { + // non-overlapping variant: append entire ref + try res.appendSlice(allocator, v.ref()); + } } } return res; } -fn expand_alt(comptime T: type, pos: usize, ref: [] const u8, list: ArrayList(T)) !ArrayList([*:0] const u8) { +fn expand_alt(comptime T: type, pos: usize, ref_seq: [] const u8, list: ArrayList(T)) !ArrayList([*:0] const u8) { // add alternates and splice them into the reference. It does not modify the ref. - var nalt = ArrayList([*:0] const u8).init(allocator); + var nalt = ArrayList([*:0] const u8){}; for (list.items) |v| { - const p5diff = v.pos() - pos; // always >= 0 - will raise error otherwise - const before = ref[0..p5diff]; // leading ref - + if (v.pos() < pos) continue; // skip variants before the reference start + const p5diff = v.pos() - pos; + const before = ref_seq[0..@min(p5diff, ref_seq.len)]; // leading ref + // ref0 has been expanded in a previous step to cover the full variant. // the original code only deals with p3diff > 0. // @@ -437,39 +444,39 @@ fn expand_alt(comptime T: type, pos: usize, ref: [] const u8, list: ArrayList(T) // ref0 |AAAAA| // p5diff p3diff = +2 (start = 5-2 = 3 // ref1 |AA|-- - - const right0 = pos + ref.len; + + const right0 = pos + ref_seq.len; const right1 = v.pos() + v.ref().len; const p3diff:i64 = @as(i64, @intCast(right0)) - @as(i64, @intCast(right1)); - + var after: [] const u8 = undefined; - if (p3diff > 0 and p3diff < ref.len) { - const last = ref.len - @as(usize, @intCast(p3diff)); - after = ref[last..]; + if (p3diff > 0 and p3diff < ref_seq.len) { + const last = ref_seq.len - @as(usize, @intCast(p3diff)); + after = ref_seq[last..]; } else after = ""; if (v.alt().items.len > 1) { warning("This code only supports one ALT allele per record: bailing out\nTry normalising the data with `bcftools norm -m-`") catch unreachable; // p("Error: this code only supports one ALT allele per record (WIP/FIXME)\n",.{}); - return error.MultiAltNotSupported; + continue; } - - for (v.alt().items) | alt | { - var n = ArrayList(u8).init(allocator); - defer n.deinit(); + + for (v.alt().items) | a | { + var n = ArrayList(u8){}; + defer n.deinit(allocator); if (p3diff != 0 or p5diff != 0) { // p("{any}-{s},{s}\n",.{p3diff,before,after}); - try n.appendSlice(before); - try n.appendSlice(alt); - try n.appendSlice(after); + try n.appendSlice(allocator, before); + try n.appendSlice(allocator, a); + try n.appendSlice(allocator, after); // try nalt.append(n.items); // n copied to nalt and emptied (no longer in care of n) - try nalt.append(n.toOwnedSliceSentinel(0) catch unreachable); + try nalt.append(allocator, n.toOwnedSliceSentinel(allocator, 0) catch unreachable); // p("new alt={s}\n",.{new.items}); } else { - try n.appendSlice(alt); + try n.appendSlice(allocator, a); // try n.toOwnedslice(alt); - try nalt.append(n.toOwnedSliceSentinel(0) catch unreachable); + try nalt.append(allocator, n.toOwnedSliceSentinel(allocator, 0) catch unreachable); // try nalt.append(n.items); } } @@ -478,12 +485,12 @@ fn expand_alt(comptime T: type, pos: usize, ref: [] const u8, list: ArrayList(T) } fn expand_info(comptime T: type, name: [] const u8, list: ArrayList(T)) !ArrayList([] const u8) { - var ninfo = ArrayList([] const u8).init(allocator); + var ninfo = ArrayList([] const u8){}; for (list.items) |v| { - for (v.info(name).items) | info | { - // try ninfo.append(info); - // p("{s}",.{info}); - ninfo.append(info) catch unreachable; + for (v.info(name).items) | info_item | { + // try alAppend([] const u8, &ninfo, allocator, info); + // p("{s}",.{info_item}); + ninfo.append(allocator, info_item) catch unreachable; } } return ninfo; @@ -505,17 +512,18 @@ test "variant ref expansion" { } -test "mock variant" { - var list = ArrayList(MockVariant).init(std.testing.allocator); - defer list.deinit(); +test "mock variant" { + const talloc = std.testing.allocator; + var list = ArrayList(MockVariant){}; + defer list.deinit(talloc); const v1 = MockVariant{ .pos_ = 10, .ref_ = "AAAA" }; try expect(std.mem.eql(u8, v1.id(), "TEST")); - try list.append(v1); + try list.append(talloc, v1); const v2 = MockVariant{ .pos_ = 10, .ref_ = "AAAAA" }; - try list.append(v2); + try list.append(talloc, v2); const v3 = MockVariant{ .pos_ = 10, .ref_ = "AAAAACC" }; - try list.append(v3); + try list.append(talloc, v3); const maxpos = refs_maxpos(MockVariant,list); p("<{any}>",.{maxpos}); try expect(maxpos == 17); @@ -526,46 +534,49 @@ test "mock variant" { // p("!{s}!",.{nref}); try expect(nref.items.len == 7); try expect(std.mem.eql(u8, nref.items, "AAAAACC")); - nref.deinit(); + // expand_ref uses global allocator internally + var nref_mut = nref; + nref_mut.deinit(allocator); } test "variant alt expansion" { - // var hanging_pointer = ArrayList([] const u8).init(std.testing.allocator); - // hanging_pointer.append("C") catch unreachable; + // var hanging_pointer = alInit([] const u8, std.testing.allocator); + // alAppend([] const u8, &hanging_pointer, std.testing.allocator, "C") catch unreachable; - var list = std.ArrayList(MockVariant).init(std.testing.allocator); + const talloc = std.testing.allocator; + var list = ArrayList(MockVariant){}; defer { - list.deinit(); + list.deinit(talloc); } - var alt1 = std.ArrayList([] u8).init(std.testing.allocator); - defer alt1.deinit(); + var alt1 = ArrayList([] u8){}; + defer alt1.deinit(talloc); var a1 = [_]u8{'c', 'c'}; - try alt1.append(a1[0..]); + try alt1.append(talloc, a1[0..]); const v1 = MockVariant{ .pos_ = 10, .ref_ = "AAAA", .alt_ = alt1 }; try expect(std.mem.eql(u8, v1.id(), "TEST")); - try list.append(v1); + try list.append(talloc, v1); - var alt2 = std.ArrayList([] u8).init(std.testing.allocator); - defer alt2.deinit(); + var alt2 = ArrayList([] u8){}; + defer alt2.deinit(talloc); var a2 = [_]u8{'c'}; - try alt2.append(a2[0..]); + try alt2.append(talloc, a2[0..]); const v2 = MockVariant{ .pos_ = 10, .ref_ = "AAAAA", .alt_ = alt2 }; - try list.append(v2); + try list.append(talloc, v2); - var alt3 = std.ArrayList([] u8).init(std.testing.allocator); - defer alt3.deinit(); + var alt3 = ArrayList([] u8){}; + defer alt3.deinit(talloc); var a3 = [_]u8{'c', 'c', 'c', 'c'}; - try alt3.append(a3[0..]); + try alt3.append(talloc, a3[0..]); const v3 = MockVariant{ .pos_ = 10, .ref_ = "CC", .alt_ = alt3 }; - try list.append(v3); + try list.append(talloc, v3); // const nalt = try expand_alt(MockVariant,10,"AAAAACC",list); // defer { // for (nalt.items) |item| { // std.testing.allocator.free(item); // } // std.testing.allocator.free(nalt); - // nalt.deinit(); + // nalt.deinit(allocator); // } // expect(nalt.items.len == 3) catch |e| { // p("{e}: {d}",.{e,nalt.items.len}); diff --git a/test/data/regression/vcfwave_4.vcf b/test/data/regression/vcfwave_4.vcf index c19cf105..a6e77241 100644 --- a/test/data/regression/vcfwave_4.vcf +++ b/test/data/regression/vcfwave_4.vcf @@ -75,7 +75,7 @@ grch38#chr8 36360289 >158>161 C T 60 . AC=1;AF=0.011236;AN=89;AT=>158>159>161,>1 grch38#chr8 36360355 >161>164 A C 60 . AC=3;AF=0.0337079;AN=89;AT=>161>162>164,>161>163>164;NS=45;LV=0 GT 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|1 0|0 0|0 1|1 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 grch38#chr8 36360567 >164>167 G T 60 . AC=1;AF=0.011236;AN=89;AT=>164>166>167,>164>165>167;NS=45;LV=0 GT 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 1|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 grch38#chr8 36360625 >167>170_1 ATAGACC A 60 . AC=2;AF=0.022472;AN=89;AT=>167>168>170;NS=45;LV=0;ORIGIN=grch38#chr8:36360625;LEN=6;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0 -grch38#chr8 36360632 >167>170_2 C A 60 . AC=2;AF=0.022472;AN=89;AT=>167>168>170;NS=45;LV=0;ORIGIN=grch38#chr8:36360625;LEN=1;TYPE=snp GT 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|0 0 +grch38#chr8 36360632 >167>170_2 C A 60 . AC=2;AF=0.022472;AN=89;AT=>167>168>170;NS=45;LV=0;ORIGIN=grch38#chr8:36360625;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0 grch38#chr8 36360638 >170>172 T TC 60 . AC=1;AF=0.011236;AN=89;AT=>170>172,>170>171>172;NS=45;LV=0 GT 0|1 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|0 0|0 0 grch38#chr8 36360821 >172>175 A C 60 . AC=8;AF=0.0898876;AN=89;AT=>172>174>175,>172>173>175;NS=45;LV=0 GT 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 1|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|1 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0 grch38#chr8 36360899 >175>178 C T 60 . AC=7;AF=0.0786517;AN=89;AT=>175>176>178,>175>177>178;NS=45;LV=0 GT 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 1|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|1 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0 @@ -273,22 +273,29 @@ grch38#chr8 36379502 >656>660_2 C CATAT 60 . AC=3;AF=0.033708;AN=89;AT=>656>657> grch38#chr8 36379502 >656>660_3 C CAT 60 . AC=5;AF=0.056180;AN=89;AT=>656>660;NS=45;LV=0;ORIGIN=grch38#chr8:36379502;LEN=2;TYPE=ins GT 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|1 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|1 0|0 0|0 0 grch38#chr8 36379785 >660>662 CCT C 60 . AC=6;AF=0.0674157;AN=89;AT=>660>661>662,>660>662;NS=45;LV=0 GT 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|1 0|0 0|0 1|1 0|0 0|0 0|1 0|0 0|0 0|1 0|1 0|0 0|0 0|0 0 grch38#chr8 36379801 >662>682_1 TCCATATATATATATATATATATATAT T 60 . AC=3;AF=0.033708;AN=89;AT=>662>664>665>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=26;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 0|0 0|0 0 -grch38#chr8 36379802 >662>682_2 C A 60 . AC=10;AF=0.112360;AN=89;AT=>662>663>665>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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|1 0|0 0|0 .|. 0|0 0|0 0|1 0|0 0|0 .|. .|. 0|0 0|0 0|0 0 -grch38#chr8 36379802 >662>682_3 CCATATATATATATATATATA C 60 . AC=1;AF=0.011236;AN=89;AT=>662>663>665>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=20;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr8 36379805 >662>682_4 TATATATATATATATATATATATAT T 60 . AC=5;AF=0.056180;AN=89;AT=>662>663>665>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=24;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr8 36379809 >662>682_5 TATATATATATATATATATAT T 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>676>677>679>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=20;TYPE=del GT 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 1|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 -grch38#chr8 36379811 >662>682_6 TATATATATATATATATAT T 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=18;TYPE=del GT 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|1 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|1 0 -grch38#chr8 36379817 >662>682_7 TATATATATATAT T 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>665>667>668>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=12;TYPE=del GT 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 1|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 -grch38#chr8 36379821 >662>682_8 TATATATAT T 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>665>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=8;TYPE=del GT 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 1|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 -grch38#chr8 36379823 >662>682_9 TATATAT T 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=6;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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 1|0 0|0 0 -grch38#chr8 36379825 >662>682_10 T C 60 . AC=1;AF=0.011236;AN=89;AT=>662>663>665>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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 -grch38#chr8 36379825 >662>682_11 TATAT T 60 . AC=8;AF=0.089888;AN=89;AT=>662>664>665>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=4;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 1|1 0|0 0|0 0|1 1|0 0|0 0|1 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|1 0|0 0 -grch38#chr8 36379827 >662>682_12 TAT T 60 . AC=12;AF=0.134832;AN=89;AT=>662>663>665>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=2;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr8 36379829 >662>682_13 T C 60 . AC=3;AF=0.033708;AN=89;AT=>662>664>665>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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|1 0|0 .|. .|. 0|0 0|0 0|1 0|1 0|0 .|. .|. 0 -grch38#chr8 36379829 >662>682_14 T TATATATAT 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=8;TYPE=ins GT 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr8 36379829 >662>682_15 T TATATAT 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>665>668>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=6;TYPE=ins GT 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 1|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 -grch38#chr8 36379829 >662>682_16 T TATAT 60 . AC=4;AF=0.044944;AN=89;AT=>662>663>665>677>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=4;TYPE=ins GT 0|0 0|1 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|1 0|0 0|0 1|1 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 -grch38#chr8 36379829 >662>682_17 T TAT 60 . AC=27;AF=0.303371;AN=89;AT=>662>663>665>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=2;TYPE=ins GT 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|1 0|0 0|0 0|0 0|0 0|0 1|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 1|0 1|0 0|0 0|0 0|0 0|0 0 +grch38#chr8 36379802 >662>682_2 C A 60 . AC=2;AF=0.022472;AN=89;AT=>662>663>665>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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|1 0|0 0|0 .|. 0|0 0|0 0|1 0|0 0|0 .|. .|. 0|0 0|0 0|0 0 +grch38#chr8 36379802 >662>682_3 C A 60 . AC=5;AF=0.056180;AN=89;AT=>662>663>665>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|1 0|0 .|. 0|0 0|1 0|0 0|0 0|0 .|. .|. 0|0 0|0 0|0 0 +grch38#chr8 36379802 >662>682_4 C A 60 . AC=4;AF=0.044944;AN=89;AT=>662>663>665>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 0|0 1|0 .|. .|. 0|0 0|0 0|0 0 +grch38#chr8 36379802 >662>682_5 C A 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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|1 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|1 0 +grch38#chr8 36379802 >662>682_6 C A 60 . AC=4;AF=0.044944;AN=89;AT=>662>664>665>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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 1|0 0|1 1|0 0|0 0|0 .|. 0|0 0|0 0|0 0|0 0|0 .|. .|. 0|1 0|0 0|0 0 +grch38#chr8 36379802 >662>682_7 C A 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>676>677>679>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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 1|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 +grch38#chr8 36379802 >662>682_8 CCATATATATATATATATATA C 60 . AC=1;AF=0.011236;AN=89;AT=>662>663>665>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=20;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr8 36379805 >662>682_9 TATATATATATATATATATATATAT T 60 . AC=5;AF=0.056180;AN=89;AT=>662>663>665>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=24;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr8 36379809 >662>682_10 TATATATATATATATATATAT T 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>676>677>679>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=20;TYPE=del GT 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 1|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 +grch38#chr8 36379811 >662>682_11 TATATATATATATATATAT T 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=18;TYPE=del GT 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|1 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|1 0 +grch38#chr8 36379817 >662>682_12 TATATATATATAT T 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>665>667>668>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=12;TYPE=del GT 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 1|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 +grch38#chr8 36379821 >662>682_13 TATATATAT T 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>665>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=8;TYPE=del GT 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 1|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 +grch38#chr8 36379823 >662>682_14 TATATAT T 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=6;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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 1|0 0|0 0 +grch38#chr8 36379825 >662>682_15 T C 60 . AC=1;AF=0.011236;AN=89;AT=>662>663>665>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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 +grch38#chr8 36379825 >662>682_16 TATAT T 60 . AC=8;AF=0.089888;AN=89;AT=>662>664>665>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=4;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 1|1 0|0 0|0 0|1 1|0 0|0 0|1 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|1 0|0 0 +grch38#chr8 36379827 >662>682_17 TAT T 60 . AC=2;AF=0.022472;AN=89;AT=>662>663>665>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=2;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr8 36379827 >662>682_18 TAT T 60 . AC=10;AF=0.112360;AN=89;AT=>662>663>665>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=2;TYPE=del GT 0|0 0|0 1|0 0|1 0|0 0|0 0|0 0|0 1|0 0|1 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 1|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 1|0 0|0 0|0 0 +grch38#chr8 36379829 >662>682_19 T C 60 . AC=3;AF=0.033708;AN=89;AT=>662>664>665>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=1;TYPE=snp GT 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|1 0|0 .|. .|. 0|0 0|0 0|1 0|1 .|. .|. .|. 0 +grch38#chr8 36379829 >662>682_20 T TATATATAT 60 . AC=2;AF=0.022472;AN=89;AT=>662>664>665>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=8;TYPE=ins GT 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr8 36379829 >662>682_21 T TATATAT 60 . AC=1;AF=0.011236;AN=89;AT=>662>664>665>668>669>670>671>672>673>674>675>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=6;TYPE=ins GT 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 1|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 +grch38#chr8 36379829 >662>682_22 T TATAT 60 . AC=4;AF=0.044944;AN=89;AT=>662>663>665>677>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=4;TYPE=ins GT 0|0 0|1 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|1 0|0 0|0 1|1 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 +grch38#chr8 36379829 >662>682_23 T TAT 60 . AC=23;AF=0.258427;AN=89;AT=>662>663>665>666>677>678>680>681>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=2;TYPE=ins GT 1|1 0|0 0|1 0|0 1|1 0|1 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 1|1 1|0 0|0 0|0 0|0 0|0 1|0 0|0 0|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|1 0|0 0|1 1|0 1|0 1|1 0|1 0|0 1|0 0|0 0|0 1|0 0 +grch38#chr8 36379829 >662>682_24 T TAT 60 . AC=4;AF=0.044944;AN=89;AT=>662>663>665>682;NS=45;LV=0;ORIGIN=grch38#chr8:36379801;LEN=2;TYPE=ins GT 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|1 0|0 0|0 0|0 0|0 0|0 1|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 1|0 1|0 0|0 0|0 0|0 0|0 0 grch38#chr8 36379845 >682>685 T C 60 . AC=1;AF=0.011236;AN=89;AT=>682>683>685,>682>684>685;NS=45;LV=0 GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr8 36379851 >685>688 T C 60 . AC=7;AF=0.0786517;AN=89;AT=>685>687>688,>685>686>688;NS=45;LV=0 GT 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 1|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|1 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr8 36379956 >688>691 G A 60 . AC=3;AF=0.0337079;AN=89;AT=>688>690>691,>688>689>691;NS=45;LV=0 GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0 @@ -502,14 +509,22 @@ grch38#chr8 36398201 >1247>1251_3 A AA 60 . AC=12;AF=0.136364;AN=88;AT=>1247>124 grch38#chr8 36398215 >1251>1254 A T 60 . AC=33;AF=0.375;AN=88;AT=>1251>1253>1254,>1251>1252>1254;NS=45;LV=1;PS=>959>1545 GT 1|0 1|1 0|0 1|1 0|0 0|0 0|. 1|0 1|1 0|0 1|1 0|0 0|0 1|1 1|1 0|0 0|0 1|1 1|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 1|0 1|0 1|1 0|0 0|1 0|1 1|0 0|1 1|0 1 grch38#chr8 36398216 >1254>1264_1 A AA 60 . AC=10;AF=0.113636;AN=88;AT=>1254>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=ins GT 0|1 0|0 0|0 0|0 0|1 0|0 0|. 0|1 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|1 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 grch38#chr8 36398216 >1254>1264_2 AT A 60 . AC=4;AF=0.045455;AN=88;AT=>1254>1256>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=del GT 0|0 0|0 1|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|1 0|0 0|0 1|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|1 0|0 0|0 0 -grch38#chr8 36398216 >1254>1264_3 ATATAT A 60 . AC=10;AF=0.113636;AN=88;AT=>1254>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=5;TYPE=del GT 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 1|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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr8 36398217 >1254>1264_4 T A 60 . AC=5;AF=0.056818;AN=88;AT=>1254>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 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 1|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 -grch38#chr8 36398218 >1254>1264_5 ATATATA A 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=6;TYPE=del GT 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 1|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 -grch38#chr8 36398219 >1254>1264_6 TATATAT T 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1258>1259>1261>1263>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=6;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr8 36398221 >1254>1264_7 TATAT T 60 . AC=36;AF=0.409091;AN=88;AT=>1254>1256>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=4;TYPE=del GT 0|0 1|1 0|0 1|1 1|0 0|0 0|. 1|0 0|0 0|0 1|1 0|0 0|0 1|1 1|1 1|0 0|0 1|1 1|1 0|0 0|0 1|1 1|0 0|1 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 1|0 1|0 1|1 0|0 1|1 1|1 1|0 0|1 0|0 1 -grch38#chr8 36398223 >1254>1264_8 T A 60 . AC=8;AF=0.090909;AN=88;AT=>1254>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 0|0 .|. 0|0 .|. .|. 0|0 0|. .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. .|. 0|0 .|. .|. 1|0 0|0 .|. .|. .|. .|. 0|0 0|0 .|. 0|0 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|0 . -grch38#chr8 36398225 >1254>1264_9 T A 60 . AC=3;AF=0.034091;AN=88;AT=>1254>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 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 . -grch38#chr8 36398225 >1254>1264_10 T TAT 60 . AC=5;AF=0.056818;AN=88;AT=>1254>1258>1259>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=2;TYPE=ins GT 0|0 0|0 0|1 0|0 0|0 0|0 0|. 0|0 1|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 1|0 0|0 0|0 1|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 1|0 0 +grch38#chr8 36398216 >1254>1264_3 ATATAT A 60 . AC=6;AF=0.068182;AN=88;AT=>1254>1256>1259>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=5;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|1 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0 +grch38#chr8 36398216 >1254>1264_4 ATATAT A 60 . AC=2;AF=0.022727;AN=88;AT=>1254>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=5;TYPE=del GT 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 1|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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr8 36398216 >1254>1264_5 ATATAT A 60 . AC=2;AF=0.022727;AN=88;AT=>1254>1258>1259>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=5;TYPE=del GT 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|1 0|0 1|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 +grch38#chr8 36398217 >1254>1264_6 T A 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 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 1|0 .|. .|. 0|0 .|. .|. .|. 0|0 0|0 0|0 0|0 .|. .|. 0|0 0|0 0|0 0|0 .|. 0|0 .|. 0 +grch38#chr8 36398217 >1254>1264_7 T A 60 . AC=2;AF=0.022727;AN=88;AT=>1254>1258>1259>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 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 .|. .|. .|. 1|1 0|0 0|0 0|0 .|. .|. 0|0 0|0 0|0 0|0 .|. 0|0 .|. 0 +grch38#chr8 36398217 >1254>1264_8 T A 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1258>1259>1261>1263>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 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 1|0 0|0 .|. .|. 0|0 0|0 0|0 0|0 .|. 0|0 .|. 0 +grch38#chr8 36398217 >1254>1264_9 T A 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1258>1259>1261>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 0|0 0|0 .|. 0|0 0|0 0|0 1|. 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 +grch38#chr8 36398218 >1254>1264_10 ATATATA A 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=6;TYPE=del GT 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 1|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 +grch38#chr8 36398219 >1254>1264_11 TATATAT T 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1258>1259>1261>1263>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=6;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr8 36398221 >1254>1264_12 TATAT T 60 . AC=36;AF=0.409091;AN=88;AT=>1254>1256>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=4;TYPE=del GT 0|0 1|1 0|0 1|1 1|0 0|0 0|. 1|0 0|0 0|0 1|1 0|0 0|0 1|1 1|1 1|0 0|0 1|1 1|1 0|0 0|0 1|1 1|0 0|1 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 1|0 1|0 1|1 0|0 1|1 1|1 1|0 0|1 0|0 1 +grch38#chr8 36398221 >1254>1264_13 TATAT T 60 . AC=2;AF=0.022727;AN=88;AT=>1254>1258>1259>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=4;TYPE=del GT 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 1|1 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 +grch38#chr8 36398223 >1254>1264_14 T A 60 . AC=6;AF=0.068182;AN=88;AT=>1254>1256>1259>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 0|0 .|. 0|0 .|. .|. 0|0 0|. .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. .|. 0|0 .|. .|. 0|1 0|0 .|. .|. .|. .|. 0|0 0|1 .|. 0|0 0|1 0|1 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 . +grch38#chr8 36398223 >1254>1264_15 T A 60 . AC=2;AF=0.022727;AN=88;AT=>1254>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 0|0 .|. 0|0 .|. .|. 0|0 0|. .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. .|. 0|0 .|. .|. 1|0 0|0 .|. .|. .|. .|. 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|0 . +grch38#chr8 36398225 >1254>1264_16 T A 60 . AC=1;AF=0.011364;AN=88;AT=>1254>1257>1258>1260>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 0|0 .|. 0|0 .|. .|. 0|0 0|. .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 1|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|0 . +grch38#chr8 36398225 >1254>1264_17 T A 60 . AC=2;AF=0.022727;AN=88;AT=>1254>1257>1258>1260>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=1;TYPE=snp GT 0|0 .|. 0|0 .|. .|. 0|0 0|. .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. .|. 0|0 .|. .|. 1|0 0|0 .|. .|. .|. 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|0 . +grch38#chr8 36398225 >1254>1264_18 T TAT 60 . AC=5;AF=0.056818;AN=88;AT=>1254>1258>1259>1261>1262>1264;NS=45;LV=1;PS=>959>1545;ORIGIN=grch38#chr8:36398216;LEN=2;TYPE=ins GT 0|0 0|0 0|1 0|0 0|0 0|0 0|. 0|0 1|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 1|0 0|0 0|0 1|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 1|0 0 grch38#chr8 36398227 >1264>1267 T A 60 . AC=1;AF=0.0113636;AN=88;AT=>1264>1265>1267,>1264>1266>1267;NS=45;LV=1;PS=>959>1545 GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr8 36398239 >1267>1270 T C 60 . AC=1;AF=0.0113636;AN=88;AT=>1267>1268>1270,>1267>1269>1270;NS=45;LV=1;PS=>959>1545 GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr8 36398241 >1270>1273 T C 60 . AC=4;AF=0.0454545;AN=88;AT=>1270>1271>1273,>1270>1272>1273;NS=45;LV=1;PS=>959>1545 GT 0|0 0|0 0|0 0|0 0|0 0|0 1|. 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 1|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 1|0 0|0 0|0 0|1 0|0 0|0 0 diff --git a/test/data/regression/vcfwave_5.vcf b/test/data/regression/vcfwave_5.vcf index c47c0043..212c0001 100644 --- a/test/data/regression/vcfwave_5.vcf +++ b/test/data/regression/vcfwave_5.vcf @@ -115,7 +115,8 @@ grch38#chr4 10092028 >218>221 G C 60 . AC=49;AF=0.550562;AN=89;AT=>218>220>221,> grch38#chr4 10092091 >221>224 T C 60 . AC=50;AF=0.561798;AN=89;AT=>221>223>224,>221>222>224;NS=45;LV=0 GT 1|1 1|1 0|0 1|1 1|1 1|0 1|1 1|1 1|1 0|0 0|1 0|0 1|1 0|1 1|1 0|0 0|0 0|0 1|1 1|1 1|1 0|1 0|0 1|1 0|1 1|0 1|1 0|0 0|0 0|1 0|0 1|0 0|0 1|1 1|1 0|1 1|1 1|1 1|0 0|1 0|0 0|1 0|0 0|1 1 grch38#chr4 10092183 >224>227 C T 60 . AC=1;AF=0.011236;AN=89;AT=>224>225>227,>224>226>227;NS=45;LV=0 GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr4 10092186 >227>231_1 CT C 60 . AC=49;AF=0.550562;AN=89;AT=>227>228>229>231;NS=45;LV=0;ORIGIN=grch38#chr4:10092186;LEN=1;TYPE=del GT 1|1 1|1 0|0 1|1 1|1 1|0 1|1 1|1 1|1 0|0 0|1 0|0 1|1 0|1 1|1 0|0 0|0 0|0 1|1 1|1 1|1 0|1 0|0 1|1 0|1 1|0 1|1 0|0 0|0 0|1 0|0 1|0 0|0 1|1 0|1 0|1 1|1 1|1 1|0 0|1 0|0 0|1 0|0 0|1 1 -grch38#chr4 10092188 >227>231_2 G A 60 . AC=1;AF=0.011236;AN=89;AT=>227>229>231;NS=45;LV=0;ORIGIN=grch38#chr4:10092186;LEN=1;TYPE=snp GT .|. .|. 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 .|. . +grch38#chr4 10092186 >227>231_2 CT C 60 . AC=1;AF=0.011236;AN=89;AT=>227>229>231;NS=45;LV=0;ORIGIN=grch38#chr4:10092186;LEN=1;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10092188 >227>231_3 G A 60 . AC=1;AF=0.011236;AN=89;AT=>227>229>231;NS=45;LV=0;ORIGIN=grch38#chr4:10092186;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr4 10092419 >231>234 G A 60 . AC=1;AF=0.011236;AN=89;AT=>231>233>234,>231>232>234;NS=45;LV=0 GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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 grch38#chr4 10092482 >234>237 G A 60 . AC=15;AF=0.168539;AN=89;AT=>234>236>237,>234>235>237;NS=45;LV=0 GT 0|0 0|0 1|1 0|0 0|0 0|0 0|0 0|0 0|0 1|1 1|0 1|0 0|0 1|0 0|0 0|0 1|1 1|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 1|0 0 grch38#chr4 10092510 >237>240 G C 60 . AC=38;AF=0.426966;AN=89;AT=>237>238>240,>237>239>240;NS=45;LV=0 GT 1|0 0|1 0|0 1|0 1|1 0|0 0|1 0|1 1|1 0|0 0|1 0|0 1|1 0|1 1|1 0|0 0|0 0|0 1|1 1|0 1|0 0|0 0|0 1|1 0|1 1|0 1|1 0|0 0|0 0|1 0|0 1|0 0|0 1|1 0|1 0|0 1|1 1|1 0|0 0|1 0|0 0|1 0|0 0|1 1 @@ -232,17 +233,22 @@ grch38#chr4 10103249 >549>552 C T 60 . AC=49;AF=0.550562;AN=89;AT=>549>550>552,> grch38#chr4 10103284 >552>555 C G 60 . AC=1;AF=0.011236;AN=89;AT=>552>553>555,>552>554>555;NS=45;LV=0 GT 0|0 0|0 0|0 0|0 1|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 grch38#chr4 10103287 >555>572_1 ACA A 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=2;TYPE=del GT 0|0 0|0 0|1 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 grch38#chr4 10103287 >555>572_2 ACAGACACACACACACACACA A 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>565>567>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=20;TYPE=del GT 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|1 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 -grch38#chr4 10103288 >555>572_3 C G 60 . AC=12;AF=0.134832;AN=89;AT=>555>557>568>569>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT 0|0 0|0 .|. 0|0 0|0 0|0 0|0 0|0 0|1 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10103289 >555>572_4 AGACA A 60 . AC=2;AF=0.022472;AN=89;AT=>555>557>568>569>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=4;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10103289 >555>572_5 AGACACA A 60 . AC=26;AF=0.292135;AN=89;AT=>555>556>558>559>563>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=6;TYPE=del GT 1|0 0|1 0|0 1|0 0|1 0|0 0|0 0|1 1|0 0|0 0|0 0|0 1|1 0|0 1|1 0|0 0|0 0|0 1|1 1|0 0|0 0|0 0|0 1|1 0|1 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 1|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|1 1 -grch38#chr4 10103289 >555>572_6 AGACACACA A 60 . AC=27;AF=0.303371;AN=89;AT=>555>557>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=8;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 1|0 1|0 0|0 1|0 0|1 1|1 0|0 0|0 1|0 0|1 0|0 0|1 1|0 1|0 1|0 1|0 0|0 0 -grch38#chr4 10103302 >555>572_7 CACACAC C 60 . AC=4;AF=0.044944;AN=89;AT=>555>556>558>559>560>562>563>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=6;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 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 -grch38#chr4 10103304 >555>572_8 C G 60 . AC=10;AF=0.112360;AN=89;AT=>555>557>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT .|. .|. 0|0 .|. 0|0 .|. .|. .|. 0|0 0|0 0|1 0|0 0|0 0|1 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. 0|0 0|0 .|. 0|1 0|0 .|. 0|1 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0 -grch38#chr4 10103304 >555>572_9 CACAC C 60 . AC=10;AF=0.112360;AN=89;AT=>555>557>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=4;TYPE=del GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|1 0|1 0|1 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 -grch38#chr4 10103306 >555>572_10 CAC C 60 . AC=2;AF=0.022472;AN=89;AT=>555>557>558>561>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=2;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10103308 >555>572_11 C CACAC 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>558>559>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=4;TYPE=ins GT 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|1 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 -grch38#chr4 10103308 >555>572_12 C CAC 60 . AC=1;AF=0.011236;AN=89;AT=>555>557>558>561>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=2;TYPE=ins GT 0|0 0|0 1|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 0 -grch38#chr4 10103308 >555>572_13 C G 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>565>567>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT .|. .|. 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 +grch38#chr4 10103288 >555>572_3 C G 60 . AC=26;AF=0.292135;AN=89;AT=>555>556>558>559>563>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT 1|0 0|1 .|. 1|0 0|1 0|0 0|0 0|1 1|0 0|0 0|0 0|0 1|1 0|0 1|1 0|0 0|0 0|0 1|1 1|0 0|0 0|0 .|. 1|1 0|1 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 1|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|1 1 +grch38#chr4 10103288 >555>572_4 C G 60 . AC=17;AF=0.191011;AN=89;AT=>555>557>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT 0|0 0|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 1|0 0|0 0|0 1|0 1|0 0|0 1|0 0|1 1|1 0|0 0|0 1|0 0|1 0|0 0|1 1|0 1|0 1|0 1|0 0|0 0 +grch38#chr4 10103288 >555>572_5 C G 60 . AC=2;AF=0.022472;AN=89;AT=>555>557>568>569>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT 0|0 0|0 .|. 0|0 0|0 0|0 0|0 0|0 0|1 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10103288 >555>572_6 C G 60 . AC=10;AF=0.112360;AN=89;AT=>555>557>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT 0|0 0|0 .|. 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 .|. 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0 +grch38#chr4 10103289 >555>572_7 AGACA A 60 . AC=2;AF=0.022472;AN=89;AT=>555>557>568>569>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=4;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10103289 >555>572_8 AGACACA A 60 . AC=26;AF=0.292135;AN=89;AT=>555>556>558>559>563>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=6;TYPE=del GT 1|0 0|1 0|0 1|0 0|1 0|0 0|0 0|1 1|0 0|0 0|0 0|0 1|1 0|0 1|1 0|0 0|0 0|0 1|1 1|0 0|0 0|0 0|0 1|1 0|1 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 1|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|1 1 +grch38#chr4 10103289 >555>572_9 AGACACA A 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>558>559>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=6;TYPE=del GT 0|0 0|0 0|0 0|0 1|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 +grch38#chr4 10103289 >555>572_10 AGACACACA A 60 . AC=17;AF=0.191011;AN=89;AT=>555>557>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=8;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 1|0 1|0 0|0 1|0 0|1 1|1 0|0 0|0 1|0 0|1 0|0 0|1 1|0 1|0 1|0 1|0 0|0 0 +grch38#chr4 10103289 >555>572_11 AGACACACA A 60 . AC=10;AF=0.112360;AN=89;AT=>555>557>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=8;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0 +grch38#chr4 10103302 >555>572_12 CACACAC C 60 . AC=4;AF=0.044944;AN=89;AT=>555>556>558>559>560>562>563>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=6;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 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 +grch38#chr4 10103304 >555>572_13 C G 60 . AC=10;AF=0.112360;AN=89;AT=>555>557>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT .|. .|. 0|0 .|. 0|0 .|. .|. .|. 0|0 0|0 0|1 0|0 0|0 0|1 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. 0|0 0|0 .|. 0|1 0|0 .|. 0|1 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0 +grch38#chr4 10103304 >555>572_14 CACAC C 60 . AC=10;AF=0.112360;AN=89;AT=>555>557>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=4;TYPE=del GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|1 0|1 0|1 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 +grch38#chr4 10103306 >555>572_15 CAC C 60 . AC=2;AF=0.022472;AN=89;AT=>555>557>558>561>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=2;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10103308 >555>572_16 C CACAC 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>558>559>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=4;TYPE=ins GT 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|1 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 +grch38#chr4 10103308 >555>572_17 C CAC 60 . AC=1;AF=0.011236;AN=89;AT=>555>557>558>561>564>565>566>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=2;TYPE=ins GT 0|0 0|0 1|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 0 +grch38#chr4 10103308 >555>572_18 C G 60 . AC=1;AF=0.011236;AN=89;AT=>555>556>565>567>568>570>571>572;NS=45;LV=0;ORIGIN=grch38#chr4:10103287;LEN=1;TYPE=snp GT .|. .|. 0|0 .|. 0|0 .|. .|. .|. 0|0 0|0 .|. 0|0 0|0 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. 0|1 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 grch38#chr4 10103304 >568>571 C G 60 . AC=10;AF=0.113636;AN=88;AT=>568>570>571,>568>569>571;NS=45;LV=1;PS=>555>572 GT 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|. 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0 grch38#chr4 10103782 >572>575 C G 60 . AC=1;AF=0.011236;AN=89;AT=>572>574>575,>572>573>575;NS=45;LV=0 GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr4 10103805 >575>578 C T 60 . AC=1;AF=0.011236;AN=89;AT=>575>576>578,>575>577>578;NS=45;LV=0 GT 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|1 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 @@ -563,6 +569,7 @@ grch38#chr4 10123912 >1463>1466 G C 60 . AC=2;AF=0.0224719;AN=89;AT=>1463>1464>1 grch38#chr4 10124029 >1466>1468 AGGT A 60 . AC=1;AF=0.011236;AN=89;AT=>1466>1467>1468,>1466>1468;NS=45;LV=0 GT 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|1 0|0 0|0 0|0 0 grch38#chr4 10124150 >1468>1472_1 T TTC 60 . AC=29;AF=0.325843;AN=89;AT=>1468>1469>1472;NS=45;LV=0;ORIGIN=grch38#chr4:10124150;LEN=2;TYPE=ins GT 1|0 0|1 0|0 1|0 1|1 0|1 0|0 0|1 1|1 0|0 0|0 0|0 1|1 0|0 1|1 0|0 0|0 0|0 1|1 1|0 0|0 0|0 0|0 1|1 0|1 1|0 1|0 0|0 0|1 0|0 0|0 0|0 0|0 1|1 0|1 0|0 1|1 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0 grch38#chr4 10124151 >1468>1472_2 C T 60 . AC=29;AF=0.325843;AN=89;AT=>1468>1469>1472;NS=45;LV=0;ORIGIN=grch38#chr4:10124150;LEN=1;TYPE=snp GT 1|0 0|1 0|0 1|0 1|1 0|1 0|0 0|1 1|1 0|0 0|0 0|0 1|1 0|0 1|1 0|0 0|0 0|0 1|1 1|0 0|0 0|0 0|0 1|1 0|1 1|0 1|0 0|0 0|1 0|0 0|0 0|0 0|0 1|1 0|1 0|0 1|1 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0 +grch38#chr4 10124151 >1468>1472_3 C T 60 . AC=10;AF=0.112360;AN=89;AT=>1468>1470>1471>1472;NS=45;LV=0;ORIGIN=grch38#chr4:10124150;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|0 0|0 0 grch38#chr4 10124159 >1472>1475 T C 60 . AC=39;AF=0.438202;AN=89;AT=>1472>1474>1475,>1472>1473>1475;NS=45;LV=0 GT 1|0 0|1 0|0 1|0 1|1 0|1 0|1 0|1 1|1 0|0 0|1 0|0 1|1 0|1 1|1 0|0 0|0 0|0 1|1 1|0 1|0 0|0 0|0 1|1 0|1 1|0 1|1 0|0 0|1 0|1 0|0 1|0 0|0 1|1 0|1 0|0 1|1 1|1 0|0 0|1 0|0 0|1 0|0 0|1 0 grch38#chr4 10124185 >1475>1478 C T 60 . AC=39;AF=0.438202;AN=89;AT=>1475>1476>1478,>1475>1477>1478;NS=45;LV=0 GT 1|0 0|1 0|0 1|0 1|1 0|1 0|1 0|1 1|1 0|0 0|1 0|0 1|1 0|1 1|1 0|0 0|0 0|0 1|1 1|0 1|0 0|0 0|0 1|1 0|1 1|0 1|1 0|0 0|1 0|1 0|0 1|0 0|0 1|1 0|1 0|0 1|1 1|1 0|0 0|1 0|0 0|1 0|0 0|1 0 grch38#chr4 10124192 >1478>1480 T TA 60 . AC=39;AF=0.438202;AN=89;AT=>1478>1480,>1478>1479>1480;NS=45;LV=0 GT 1|0 0|1 0|0 1|0 1|1 0|1 0|1 0|1 1|1 0|0 0|1 0|0 1|1 0|1 1|1 0|0 0|0 0|0 1|1 1|0 1|0 0|0 0|0 1|1 0|1 1|0 1|1 0|0 0|1 0|1 0|0 1|0 0|0 1|1 0|1 0|0 1|1 1|1 0|0 0|1 0|0 0|1 0|0 0|1 0 @@ -740,14 +747,15 @@ grch38#chr4 10131509 >1949>1968_1 ACCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTC grch38#chr4 10131531 >1949>1968_2 CTCCCCAGTGACTGACGTGGACTCTC C 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=25;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr4 10131532 >1949>1968_3 TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT T 60 . AC=4;AF=0.044944;AN=89;AT=>1949>1950>1951>1952>1954>1955>1956>1957>1958>1959>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=46;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 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 grch38#chr4 10131547 >1949>1968_4 G A 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10131555 >1949>1968_5 TCCCCAGTGACTGACGTGGACTCT T 60 . AC=12;AF=0.134832;AN=89;AT=>1949>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=23;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10131578 >1949>1968_6 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=2;AF=0.022472;AN=89;AT=>1949>1950>1951>1952>1954>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=138;TYPE=ins GT 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|1 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 1|0 0|0 0|0 0 -grch38#chr4 10131578 >1949>1968_7 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1955>1956>1957>1960>1961>1962>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=115;TYPE=ins GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10131578 >1949>1968_8 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=5;AF=0.056180;AN=89;AT=>1949>1950>1951>1952>1954>1955>1956>1957>1958>1959>1960>1961>1963>1964>1965>1966>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=92;TYPE=ins GT 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0 -grch38#chr4 10131578 >1949>1968_9 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=9;AF=0.101124;AN=89;AT=>1949>1952>1954>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=69;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 1|0 0|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|1 0|1 0|0 0|0 0 -grch38#chr4 10131578 >1949>1968_10 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=8;AF=0.089888;AN=89;AT=>1949>1955>1956>1957>1960>1961>1963>1964>1965>1966>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=46;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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|1 0|0 1|1 0|1 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 1 -grch38#chr4 10131578 >1949>1968_11 T TCCCCAGTGACTGACGTGGACTCTTCCCCAGTGACTGACGTGGACTCTTCCCCAGTGACTGACGTGGACTCTT 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=72;TYPE=ins GT 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|1 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 -grch38#chr4 10131578 >1949>1968_12 T TCCCCAGTGACTGACGTGGACTCT 60 . AC=21;AF=0.235955;AN=89;AT=>1949>1951>1952>1954>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=23;TYPE=ins GT 1|0 1|0 1|1 0|1 1|1 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|1 0|0 0|0 1|0 0|1 1|0 0|0 0|0 0|1 0|0 0|0 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 1|1 0 +grch38#chr4 10131555 >1949>1968_5 TCCCCAGTGACTGACGTGGACTCT T 60 . AC=11;AF=0.123596;AN=89;AT=>1949>1951>1952>1954>1955>1956>1957>1958>1959>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=23;TYPE=del GT 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 1|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10131555 >1949>1968_6 TCCCCAGTGACTGACGTGGACTCT T 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=23;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10131578 >1949>1968_7 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=2;AF=0.022472;AN=89;AT=>1949>1950>1951>1952>1954>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=138;TYPE=ins GT 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|1 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 1|0 0|0 0|0 0 +grch38#chr4 10131578 >1949>1968_8 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1955>1956>1957>1960>1961>1962>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=115;TYPE=ins GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10131578 >1949>1968_9 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=5;AF=0.056180;AN=89;AT=>1949>1950>1951>1952>1954>1955>1956>1957>1958>1959>1960>1961>1963>1964>1965>1966>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=92;TYPE=ins GT 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0 +grch38#chr4 10131578 >1949>1968_10 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=9;AF=0.101124;AN=89;AT=>1949>1952>1954>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=69;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 1|0 0|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|1 0|1 0|0 0|0 0 +grch38#chr4 10131578 >1949>1968_11 T TCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTCT 60 . AC=8;AF=0.089888;AN=89;AT=>1949>1955>1956>1957>1960>1961>1963>1964>1965>1966>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=46;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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|1 0|0 1|1 0|1 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 1 +grch38#chr4 10131578 >1949>1968_12 T TCCCCAGTGACTGACGTGGACTCTTCCCCAGTGACTGACGTGGACTCTTCCCCAGTGACTGACGTGGACTCTT 60 . AC=1;AF=0.011236;AN=89;AT=>1949>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=72;TYPE=ins GT 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|1 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 +grch38#chr4 10131578 >1949>1968_13 T TCCCCAGTGACTGACGTGGACTCT 60 . AC=21;AF=0.235955;AN=89;AT=>1949>1951>1952>1954>1955>1956>1957>1960>1961>1963>1964>1967>1968;NS=45;LV=0;ORIGIN=grch38#chr4:10131509;LEN=23;TYPE=ins GT 1|0 1|0 1|1 0|1 1|1 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|1 0|0 0|0 1|0 0|1 1|0 0|0 0|0 0|1 0|0 0|0 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 1|1 0 grch38#chr4 10131528 >1955>1957 ACT A 60 . AC=1;AF=0.0121951;AN=82;AT=>1955>1956>1957,>1955>1957;NS=45;LV=1;PS=>1949>1968 GT 0|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|1 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 grch38#chr4 10131531 >1957>1960_1 C CTCCCCAGTGACTGACGTGGACTCTCCCCAGTGACTGACGTGGACTC 60 . AC=7;AF=0.085366;AN=82;AT=>1957>1960;NS=45;LV=1;PS=>1949>1968;ORIGIN=grch38#chr4:10131531;LEN=46;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 1|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|. 1|0 0|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 1|0 1|0 0|0 0|0 0 grch38#chr4 10131531 >1957>1960_2 C CT 60 . AC=1;AF=0.012195;AN=82;AT=>1957>1958>1959>1960;NS=45;LV=1;PS=>1949>1968;ORIGIN=grch38#chr4:10131531;LEN=1;TYPE=ins GT 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|1 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 @@ -815,68 +823,108 @@ grch38#chr4 10134479 >2123>2125 G GGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGCATCCCA grch38#chr4 10134484 >2125>2211_1 CATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=153;TYPE=del GT 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|1 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 grch38#chr4 10134487 >2125>2211_2 C CTCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATC 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=918;TYPE=ins GT 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|1 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 grch38#chr4 10134492 >2125>2211_3 TTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA GTGATGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGCATCCCAAGTGATGTAGC 60 . AC=11;AF=0.123596;AN=89;AT=>2125>2126>2128>2132>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=17;TYPE=del GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134498 >2125>2211_4 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134501 >2125>2211_5 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134515 >2125>2211_6 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134518 >2125>2211_7 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134532 >2125>2211_8 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134535 >2125>2211_9 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134535 >2125>2211_10 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2139>2140>2142>2144>2145>2147>2148>2150>2151>2153>2154>2156>2157>2159>2160>2161>2163>2164>2166>2167>2169>2171>2173>2174>2176>2177>2178>2180>2182>2184>2185>2187>2188>2189>2191>2193>2195>2196>2198>2199>2201>2202>2203>2205>2206>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=102;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10134549 >2125>2211_11 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134552 >2125>2211_12 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134552 >2125>2211_13 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2126>2128>2132>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=85;TYPE=del GT 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 1|0 0|0 0|0 1|0 1|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 -grch38#chr4 10134566 >2125>2211_14 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134569 >2125>2211_15 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134569 >2125>2211_16 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2129>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=68;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 1|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 1|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 -grch38#chr4 10134578 >2125>2211_17 T TAATT 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr4 10134583 >2125>2211_18 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134586 >2125>2211_19 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134586 >2125>2211_20 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2126>2127>2129>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=51;TYPE=del GT 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 1|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 -grch38#chr4 10134595 >2125>2211_21 T TAATT 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr4 10134600 >2125>2211_22 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134603 >2125>2211_23 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134612 >2125>2211_24 T TAATT 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr4 10134617 >2125>2211_25 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 -grch38#chr4 10134619 >2125>2211_26 GAATCCCAATTGATGGAG G 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=17;TYPE=del GT 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|1 0|0 0|0 0|0 0 -grch38#chr4 10134620 >2125>2211_27 AATCCCAATTGATGGAGA A 60 . AC=38;AF=0.426966;AN=89;AT=>2125>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=17;TYPE=del GT 0|0 0|1 0|1 0|0 0|1 0|0 0|0 0|0 0|0 1|0 1|1 0|1 1|1 0|0 0|0 0|0 0|1 0|1 1|1 1|0 0|0 0|0 1|0 1|1 0|0 0|0 1|1 0|1 0|1 0|1 0|1 1|1 1|1 1|0 0|1 0|0 1|1 0|1 1|1 1|0 1|0 1|0 1|0 0|0 0 -grch38#chr4 10134634 >2125>2211_28 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10134637 >2125>2211_29 A AATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGA 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=646;TYPE=ins GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10134637 >2125>2211_30 A AATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGA 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=527;TYPE=ins GT 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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr4 10134637 >2125>2211_31 A AATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGA 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=425;TYPE=ins GT 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|0 0|1 0|0 0 -grch38#chr4 10134637 >2125>2211_32 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10134498 >2125>2211_4 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134498 >2125>2211_5 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134498 >2125>2211_6 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134498 >2125>2211_7 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134501 >2125>2211_8 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134515 >2125>2211_9 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134515 >2125>2211_10 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134515 >2125>2211_11 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134515 >2125>2211_12 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134518 >2125>2211_13 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134532 >2125>2211_14 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134532 >2125>2211_15 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134532 >2125>2211_16 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134532 >2125>2211_17 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134535 >2125>2211_18 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134535 >2125>2211_19 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2139>2140>2142>2144>2145>2147>2148>2150>2151>2153>2154>2156>2157>2159>2160>2161>2163>2164>2166>2167>2169>2171>2173>2174>2176>2177>2178>2180>2182>2184>2185>2187>2188>2189>2191>2193>2195>2196>2198>2199>2201>2202>2203>2205>2206>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=102;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134549 >2125>2211_20 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134549 >2125>2211_21 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134549 >2125>2211_22 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|1 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 +grch38#chr4 10134549 >2125>2211_23 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134552 >2125>2211_24 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134552 >2125>2211_25 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2126>2128>2132>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=85;TYPE=del GT 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 1|0 0|0 0|0 1|0 1|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 +grch38#chr4 10134566 >2125>2211_26 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134566 >2125>2211_27 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134566 >2125>2211_28 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|1 .|. .|. 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|1 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 +grch38#chr4 10134566 >2125>2211_29 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134569 >2125>2211_30 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134569 >2125>2211_31 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2129>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=68;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 1|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 1|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 +grch38#chr4 10134578 >2125>2211_32 T TAATT 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134583 >2125>2211_33 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134583 >2125>2211_34 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134583 >2125>2211_35 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|1 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 +grch38#chr4 10134583 >2125>2211_36 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134586 >2125>2211_37 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134586 >2125>2211_38 AATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGA A 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2126>2127>2129>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=51;TYPE=del GT 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 1|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 +grch38#chr4 10134595 >2125>2211_39 T TAATT 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134600 >2125>2211_40 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134600 >2125>2211_41 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134600 >2125>2211_42 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|1 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 +grch38#chr4 10134600 >2125>2211_43 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134603 >2125>2211_44 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134612 >2125>2211_45 T TAATT 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134617 >2125>2211_46 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10134617 >2125>2211_47 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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|1 0|0 0 +grch38#chr4 10134617 >2125>2211_48 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|1 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 +grch38#chr4 10134617 >2125>2211_49 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT 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 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134619 >2125>2211_50 GAATCCCAATTGATGGAG G 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=17;TYPE=del GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134620 >2125>2211_51 AATCCCAATTGATGGAGA A 60 . AC=38;AF=0.426966;AN=89;AT=>2125>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=17;TYPE=del GT 0|0 0|1 0|1 0|0 0|1 0|0 0|0 0|0 0|0 1|0 1|1 0|1 1|1 0|0 0|0 0|0 0|1 0|1 1|1 1|0 0|0 0|0 1|0 1|1 0|0 0|0 1|1 0|1 0|1 0|1 0|1 1|1 1|1 1|0 0|1 0|0 1|1 0|1 1|1 1|0 1|0 1|0 1|0 0|0 0 +grch38#chr4 10134634 >2125>2211_52 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2130>2131>2132>2133>2135>2136>2137>2139>2141>2142>2144>2145>2146>2148>2149>2151>2153>2154>2155>2157>2158>2160>2161>2163>2165>2166>2168>2169>2171>2173>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10134634 >2125>2211_53 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10134634 >2125>2211_54 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10134634 >2125>2211_55 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10134637 >2125>2211_56 A AATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGA 60 . AC=2;AF=0.022472;AN=89;AT=>2125>2133>2135>2136>2138>2148>2149>2151>2153>2154>2156>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=646;TYPE=ins GT 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 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134637 >2125>2211_57 A AATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGA 60 . AC=3;AF=0.033708;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=527;TYPE=ins GT 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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134637 >2125>2211_58 A AATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGAATCCCAATTGATGTAGA 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2134>2136>2137>2139>2140>2142>2143>2145>2146>2148>2150>2151>2152>2154>2155>2157>2159>2160>2162>2163>2165>2166>2167>2169>2171>2172>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208>2210>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=425;TYPE=ins GT 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|0 0|1 0|0 0 +grch38#chr4 10134637 >2125>2211_59 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2125>2133>2135>2136>2138>2139>2141>2142>2144>2145>2147>2148>2149>2151>2153>2154>2156>2157>2158>2160>2161>2163>2164>2166>2168>2169>2171>2173>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208>2209>2211;NS=45;LV=0;ORIGIN=grch38#chr4:10134484;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 . grch38#chr4 10134509 >2133>2136 T G 60 . AC=11;AF=0.125;AN=88;AT=>2133>2135>2136,>2133>2134>2136;NS=45;LV=1;PS=>2125>2211 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134515 >2136>2148_1 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 -grch38#chr4 10134515 >2136>2148_2 GAGAATCCCAATTGATGG G 60 . AC=3;AF=0.034091;AN=88;AT=>2136>2138>2139>2140>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=17;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10134518 >2136>2148_3 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 -grch38#chr4 10134526 >2136>2148_4 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 -grch38#chr4 10134532 >2136>2148_5 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134515 >2136>2148_1 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2136>2137>2139>2140>2142>2143>2145>2146>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 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 1|1 0|0 .|. 0|0 0|0 0|0 0|0 0|1 0|0 .|. 0|1 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134515 >2136>2148_2 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134515 >2136>2148_3 GAGAATCCCAATTGATGG G 60 . AC=3;AF=0.034091;AN=88;AT=>2136>2138>2139>2140>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=17;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134518 >2136>2148_4 A C 60 . AC=1;AF=0.011364;AN=88;AT=>2136>2137>2139>2141>2142>2144>2145>2146>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134518 >2136>2148_5 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134526 >2136>2148_6 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134532 >2136>2148_7 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2136>2137>2139>2140>2142>2143>2145>2146>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 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 1|1 0|0 .|. 0|0 0|0 0|0 0|0 0|1 0|0 .|. 0|1 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134532 >2136>2148_8 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2136>2138>2139>2141>2142>2144>2145>2147>2148;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134514;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|. 0|0 0|1 0|1 0|1 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 1 grch38#chr4 10134518 >2139>2142 A C 60 . AC=12;AF=0.141176;AN=85;AT=>2139>2141>2142,>2139>2140>2142;NS=45;LV=2;PS=>2136>2148 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|0 0|0 0|1 0|1 0|1 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 .|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134526 >2142>2145 T G 60 . AC=11;AF=0.129412;AN=85;AT=>2142>2144>2145,>2142>2143>2145;NS=45;LV=2;PS=>2136>2148 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 .|0 0|0 0|1 0|1 0|1 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 .|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134535 >2148>2151 A C 60 . AC=12;AF=0.136364;AN=88;AT=>2148>2149>2151,>2148>2150>2151;NS=45;LV=1;PS=>2125>2211 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134543 >2151>2154 T G 60 . AC=11;AF=0.125;AN=88;AT=>2151>2153>2154,>2151>2152>2154;NS=45;LV=1;PS=>2125>2211 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134549 >2154>2166_1 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 -grch38#chr4 10134549 >2154>2166_2 GAGAATCCCAATTGATGG G 60 . AC=4;AF=0.045455;AN=88;AT=>2154>2156>2157>2159>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=17;TYPE=del GT 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 1|. 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10134552 >2154>2166_3 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 -grch38#chr4 10134560 >2154>2166_4 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 -grch38#chr4 10134566 >2154>2166_5 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134549 >2154>2166_1 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2154>2155>2157>2159>2160>2162>2163>2165>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 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 1|1 .|. 0|0 0|0 0|0 0|0 0|0 0|1 0|0 .|. 0|1 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134549 >2154>2166_2 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134549 >2154>2166_3 GAGAATCCCAATTGATGG G 60 . AC=4;AF=0.045455;AN=88;AT=>2154>2156>2157>2159>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=17;TYPE=del GT 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 1|. 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134552 >2154>2166_4 A C 60 . AC=1;AF=0.011364;AN=88;AT=>2154>2155>2157>2158>2160>2161>2163>2165>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134552 >2154>2166_5 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134560 >2154>2166_6 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 +grch38#chr4 10134566 >2154>2166_7 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2154>2155>2157>2159>2160>2162>2163>2165>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 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 1|1 .|. 0|0 0|0 0|0 0|0 0|0 0|1 0|0 .|. 0|1 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134566 >2154>2166_8 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2154>2156>2157>2158>2160>2161>2163>2164>2166;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134548;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 0|0 .|. 0|0 0|0 0|1 0|1 0|1 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 1 grch38#chr4 10134552 >2157>2160 A C 60 . AC=12;AF=0.142857;AN=84;AT=>2157>2158>2160,>2157>2159>2160;NS=44;LV=2;PS=>2154>2166 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 . 0|0 0|0 .|0 0|0 0|0 0|1 0|1 0|1 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 .|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134560 >2160>2163 T G 60 . AC=11;AF=0.130952;AN=84;AT=>2160>2161>2163,>2160>2162>2163;NS=44;LV=2;PS=>2154>2166 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 . 0|0 0|0 .|0 0|0 0|0 0|1 0|1 0|1 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 .|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134569 >2166>2169 A C 60 . AC=12;AF=0.136364;AN=88;AT=>2166>2168>2169,>2166>2167>2169;NS=45;LV=1;PS=>2125>2211 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134574 >2169>2171 C CAATT 60 . AC=1;AF=0.0113636;AN=88;AT=>2169>2171,>2169>2170>2171;NS=45;LV=1;PS=>2125>2211 GT 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr4 10134577 >2171>2174 T G 60 . AC=11;AF=0.125;AN=88;AT=>2171>2173>2174,>2171>2172>2174;NS=45;LV=1;PS=>2125>2211 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|. 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134583 >2174>2208_1 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134583 >2174>2208_2 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=9;AF=0.102273;AN=88;AT=>2174>2176>2177>2178>2180>2182>2184>2185>2187>2188>2189>2191>2193>2195>2196>2198>2199>2201>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=51;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 1|. 1|0 0|0 1|0 1|0 0|0 0|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10134586 >2174>2208_3 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134594 >2174>2208_4 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134595 >2174>2208_5 T TAATT 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2176>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr4 10134600 >2174>2208_6 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134603 >2174>2208_7 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134611 >2174>2208_8 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134612 >2174>2208_9 T TAATT 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2176>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 -grch38#chr4 10134617 >2174>2208_10 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134620 >2174>2208_11 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134628 >2174>2208_12 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 -grch38#chr4 10134634 >2174>2208_13 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134583 >2174>2208_1 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134583 >2174>2208_2 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134583 >2174>2208_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=9;AF=0.102273;AN=88;AT=>2174>2176>2177>2178>2180>2182>2184>2185>2187>2188>2189>2191>2193>2195>2196>2198>2199>2201>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=51;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 1|. 1|0 0|0 1|0 1|0 0|0 0|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10134586 >2174>2208_4 A C 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134586 >2174>2208_5 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134594 >2174>2208_6 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134595 >2174>2208_7 T TAATT 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2176>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134600 >2174>2208_8 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134600 >2174>2208_9 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134603 >2174>2208_10 A C 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134603 >2174>2208_11 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134611 >2174>2208_12 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134612 >2174>2208_13 T TAATT 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2176>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=4;TYPE=ins GT 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10134617 >2174>2208_14 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134617 >2174>2208_15 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134620 >2174>2208_16 A C 60 . AC=1;AF=0.011364;AN=88;AT=>2174>2175>2177>2179>2180>2182>2184>2185>2186>2188>2190>2191>2193>2195>2196>2197>2199>2200>2202>2203>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 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|1 0|0 0|0 0|0 0 +grch38#chr4 10134620 >2174>2208_17 A C 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134628 >2174>2208_18 T G 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 +grch38#chr4 10134634 >2174>2208_19 G T 60 . AC=7;AF=0.079546;AN=88;AT=>2174>2175>2177>2178>2180>2182>2183>2185>2186>2188>2189>2191>2193>2194>2196>2197>2199>2201>2202>2204>2205>2207>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 0|0 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. 1|0 0|0 0|0 0|0 0|0 0|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 +grch38#chr4 10134634 >2174>2208_20 G T 60 . AC=11;AF=0.125000;AN=88;AT=>2174>2176>2177>2179>2180>2182>2184>2185>2187>2188>2190>2191>2193>2195>2196>2198>2199>2200>2202>2203>2205>2206>2208;NS=45;LV=1;PS=>2125>2211;ORIGIN=grch38#chr4:10134582;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 0|1 0|1 .|. 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 1 grch38#chr4 10134586 >2177>2180 A C 60 . AC=12;AF=0.151899;AN=79;AT=>2177>2179>2180,>2177>2178>2180;NS=44;LV=2;PS=>2174>2208 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|0 0|0 . .|0 0|0 .|0 .|0 0|0 0|1 0|1 .|1 0|0 0|0 .|0 0|0 0|0 .|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134591 >2180>2182 C CAATT 60 . AC=1;AF=0.0126582;AN=79;AT=>2180>2182,>2180>2181>2182;NS=44;LV=2;PS=>2174>2208 GT 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr4 10134594 >2182>2185 T G 60 . AC=11;AF=0.139241;AN=79;AT=>2182>2184>2185,>2182>2183>2185;NS=44;LV=2;PS=>2174>2208 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|0 0|0 . .|0 0|0 .|0 .|0 0|0 0|1 0|1 .|1 0|0 0|0 .|0 0|0 0|0 .|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 @@ -888,14 +936,19 @@ grch38#chr4 10134617 >2196>2199 G T 60 . AC=18;AF=0.227848;AN=79;AT=>2196>2198>2 grch38#chr4 10134620 >2199>2202 A C 60 . AC=12;AF=0.151899;AN=79;AT=>2199>2200>2202,>2199>2201>2202;NS=44;LV=2;PS=>2174>2208 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|0 0|0 . .|0 0|0 .|0 .|0 0|0 0|1 0|1 .|1 0|0 0|0 .|0 0|0 0|0 .|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134628 >2202>2205 T G 60 . AC=11;AF=0.139241;AN=79;AT=>2202>2203>2205,>2202>2204>2205;NS=44;LV=2;PS=>2174>2208 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 .|0 0|0 . .|0 0|0 .|0 .|0 0|0 0|1 0|1 .|1 0|0 0|0 .|0 0|0 0|0 .|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134645 >2211>2214 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2211>2212>2214,>2211>2213>2214;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134651 >2214>2235_1 G T 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 -grch38#chr4 10134651 >2214>2235_2 GAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=26;AF=0.292135;AN=89;AT=>2214>2215>2217>2218>2220>2221>2223>2225>2226>2227>2229>2230>2232>2233>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=34;TYPE=del GT 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 0|1 1|1 1|1 1|1 1|0 0|0 1|0 1|0 0|0 1|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 1|1 0|1 0|0 0|0 0|1 0|0 1|0 0|0 1|0 0|1 0|0 0|0 1|0 1|0 0|1 0|0 0|0 0 -grch38#chr4 10134654 >2214>2235_3 A C 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 -grch38#chr4 10134662 >2214>2235_4 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 -grch38#chr4 10134668 >2214>2235_5 G T 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 -grch38#chr4 10134671 >2214>2235_6 A C 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 -grch38#chr4 10134679 >2214>2235_7 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 -grch38#chr4 10134685 >2214>2235_8 G T 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134651 >2214>2235_1 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2214>2215>2217>2219>2220>2222>2223>2225>2226>2228>2229>2231>2232>2233>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. 0|0 .|. 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 1|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|1 0|0 0 +grch38#chr4 10134651 >2214>2235_2 G T 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134651 >2214>2235_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=26;AF=0.292135;AN=89;AT=>2214>2215>2217>2218>2220>2221>2223>2225>2226>2227>2229>2230>2232>2233>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=34;TYPE=del GT 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 0|1 1|1 1|1 1|1 1|0 0|0 1|0 1|0 0|0 1|0 0|0 1|0 0|0 0|0 1|0 0|0 0|0 1|1 0|1 0|0 0|0 0|1 0|0 1|0 0|0 1|0 0|1 0|0 0|0 1|0 1|0 0|1 0|0 0|0 0 +grch38#chr4 10134654 >2214>2235_4 A C 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134654 >2214>2235_5 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2214>2216>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 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 +grch38#chr4 10134662 >2214>2235_6 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134668 >2214>2235_7 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2214>2215>2217>2219>2220>2222>2223>2225>2226>2228>2229>2231>2232>2233>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. 0|0 .|. 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 1|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|1 0|0 0 +grch38#chr4 10134668 >2214>2235_8 G T 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134671 >2214>2235_9 A C 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134671 >2214>2235_10 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2214>2216>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 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 +grch38#chr4 10134679 >2214>2235_11 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 +grch38#chr4 10134685 >2214>2235_12 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2214>2215>2217>2219>2220>2222>2223>2225>2226>2228>2229>2231>2232>2233>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. 0|0 .|. 0|0 .|. 0|1 0|0 .|. 0|1 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 1|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|1 0|0 0 +grch38#chr4 10134685 >2214>2235_13 G T 60 . AC=11;AF=0.123596;AN=89;AT=>2214>2216>2217>2218>2220>2221>2223>2224>2226>2227>2229>2230>2232>2234>2235;NS=45;LV=0;ORIGIN=grch38#chr4:10134650;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. 0|1 .|. 0|0 0|0 .|. 0|0 0|0 .|. .|. 0|0 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 0|0 1 grch38#chr4 10134654 >2217>2220 A C 60 . AC=12;AF=0.190476;AN=63;AT=>2217>2218>2220,>2217>2219>2220;NS=41;LV=1;PS=>2214>2235 GT .|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|0 0|. 0|. . . . .|0 0|0 .|0 .|0 0|0 .|1 0|1 .|1 0|0 0|0 .|0 0|0 0|0 . 0|. 0|0 0|0 0|. 0|0 .|0 0|0 .|1 0|. 0|0 0|0 .|0 .|1 0|. 0|0 0|0 1 grch38#chr4 10134662 >2220>2223 T G 60 . AC=11;AF=0.174603;AN=63;AT=>2220>2221>2223,>2220>2222>2223;NS=41;LV=1;PS=>2214>2235 GT .|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|0 0|. 0|. . . . .|0 0|0 .|0 .|0 0|0 .|1 0|1 .|1 0|0 0|0 .|0 0|0 0|0 . 0|. 0|0 0|0 0|. 0|0 .|0 0|0 .|1 0|. 0|0 0|0 .|0 .|0 0|. 0|0 0|0 1 grch38#chr4 10134668 >2223>2226 G T 60 . AC=18;AF=0.285714;AN=63;AT=>2223>2224>2226,>2223>2225>2226;NS=41;LV=1;PS=>2214>2235 GT .|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 .|0 0|. 0|. . . . .|0 1|1 .|0 .|0 0|0 .|1 0|1 .|1 0|1 0|0 .|0 0|1 0|0 . 1|. 0|0 0|0 0|. 0|0 .|0 1|0 .|1 0|. 0|0 0|0 .|0 .|0 0|. 0|1 0|0 1 @@ -904,23 +957,30 @@ grch38#chr4 10134679 >2229>2232 T G 60 . AC=11;AF=0.174603;AN=63;AT=>2229>2230>2 grch38#chr4 10134688 >2235>2238 A C 60 . AC=12;AF=0.134831;AN=89;AT=>2235>2237>2238,>2235>2236>2238;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134696 >2238>2241 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2238>2240>2241,>2238>2239>2241;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134701 >2241>2289_1 GGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATG G 60 . AC=6;AF=0.067416;AN=89;AT=>2241>2243>2244>2245>2247>2249>2250>2251>2253>2254>2256>2258>2259>2260>2262>2264>2265>2266>2268>2270>2271>2272>2274>2276>2277>2279>2280>2281>2283>2284>2286>2288>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=85;TYPE=del GT 0|1 0|0 0|0 0|1 0|0 0|0 1|0 1|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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134702 >2241>2289_2 G T 60 . AC=12;AF=0.134831;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10134702 >2241>2289_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=47;AF=0.528090;AN=89;AT=>2241>2242>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=85;TYPE=del GT 1|0 0|0 1|1 1|0 0|0 0|1 0|1 0|1 1|0 1|1 0|1 1|1 1|1 1|1 1|1 0|0 1|1 1|0 1|1 1|0 0|0 1|0 0|0 1|0 1|0 0|0 0|0 1|1 0|1 1|0 0|0 0|1 0|0 1|0 0|0 1|0 0|1 1|1 0|1 1|1 1|1 1|1 0|0 1|1 0 -grch38#chr4 10134705 >2241>2289_4 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134713 >2241>2289_5 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134719 >2241>2289_6 G T 60 . AC=12;AF=0.134831;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10134722 >2241>2289_7 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134730 >2241>2289_8 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134736 >2241>2289_9 G T 60 . AC=12;AF=0.134831;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10134739 >2241>2289_10 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134747 >2241>2289_11 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134753 >2241>2289_12 G T 60 . AC=12;AF=0.134831;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10134756 >2241>2289_13 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134764 >2241>2289_14 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134770 >2241>2289_15 G T 60 . AC=12;AF=0.134831;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10134773 >2241>2289_16 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134781 >2241>2289_17 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10134787 >2241>2289_18 G T 60 . AC=12;AF=0.134831;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134702 >2241>2289_2 G T 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134702 >2241>2289_3 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134702 >2241>2289_4 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=47;AF=0.528090;AN=89;AT=>2241>2242>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=85;TYPE=del GT 1|0 0|0 1|1 1|0 0|0 0|1 0|1 0|1 1|0 1|1 0|1 1|1 1|1 1|1 1|1 0|0 1|1 1|0 1|1 1|0 0|0 1|0 0|0 1|0 1|0 0|0 0|0 1|1 0|1 1|0 0|0 0|1 0|0 1|0 0|0 1|0 0|1 1|1 0|1 1|1 1|1 1|1 0|0 1|1 0 +grch38#chr4 10134705 >2241>2289_5 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134713 >2241>2289_6 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134719 >2241>2289_7 G T 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134719 >2241>2289_8 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134722 >2241>2289_9 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134730 >2241>2289_10 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134736 >2241>2289_11 G T 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134736 >2241>2289_12 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134739 >2241>2289_13 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134747 >2241>2289_14 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134753 >2241>2289_15 G T 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134753 >2241>2289_16 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134756 >2241>2289_17 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134764 >2241>2289_18 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134770 >2241>2289_19 G T 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134770 >2241>2289_20 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134773 >2241>2289_21 A C 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134781 >2241>2289_22 T G 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134787 >2241>2289_23 G T 60 . AC=5;AF=0.056180;AN=89;AT=>2241>2242>2244>2245>2247>2249>2250>2252>2253>2254>2256>2258>2259>2261>2262>2264>2265>2266>2268>2269>2271>2272>2274>2276>2277>2278>2280>2281>2283>2284>2286>2287>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. 0 +grch38#chr4 10134787 >2241>2289_24 G T 60 . AC=6;AF=0.067416;AN=89;AT=>2241>2243>2244>2245>2247>2249>2250>2251>2253>2254>2256>2258>2259>2260>2262>2264>2265>2266>2268>2270>2271>2272>2274>2276>2277>2279>2280>2281>2283>2284>2286>2288>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. 1 +grch38#chr4 10134787 >2241>2289_25 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2241>2243>2289;NS=45;LV=0;ORIGIN=grch38#chr4:10134701;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. 0|0 .|. 0|1 .|. .|. 0|1 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. 0|1 .|. 0 grch38#chr4 10134705 >2244>2247 A C 60 . AC=5;AF=0.138889;AN=36;AT=>2244>2245>2247,>2244>2246>2247;NS=25;LV=1;PS=>2241>2289 GT . 1|0 . . 0|0 1|. . . .|0 . 0|. . . . . 0|0 . .|0 . .|1 0|1 .|1 0|0 .|0 .|0 0|0 0|0 . 0|. .|0 0|0 0|. 0|0 .|0 0|0 . 0|. . 0|. . . . 0|0 . . grch38#chr4 10134713 >2247>2250 T G 60 . AC=5;AF=0.138889;AN=36;AT=>2247>2249>2250,>2247>2248>2250;NS=25;LV=1;PS=>2241>2289 GT . 1|0 . . 0|0 1|. . . .|0 . 0|. . . . . 0|0 . .|0 . .|1 0|1 .|1 0|0 .|0 .|0 0|0 0|0 . 0|. .|0 0|0 0|. 0|0 .|0 0|0 . 0|. . 0|. . . . 0|0 . . grch38#chr4 10134719 >2250>2253 G T 60 . AC=12;AF=0.333333;AN=36;AT=>2250>2251>2253,>2250>2252>2253;NS=25;LV=1;PS=>2241>2289 GT . 1|0 . . 0|0 1|. . . .|0 . 0|. . . . . 1|1 . .|0 . .|1 0|1 .|1 0|1 .|0 .|0 0|1 0|0 . 1|. .|0 0|0 0|. 0|0 .|0 1|0 . 0|. . 0|. . . . 0|1 . . @@ -938,23 +998,30 @@ grch38#chr4 10134781 >2283>2286 T G 60 . AC=5;AF=0.138889;AN=36;AT=>2283>2284>22 grch38#chr4 10134790 >2289>2292 A C 60 . AC=12;AF=0.134831;AN=89;AT=>2289>2291>2292,>2289>2290>2292;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134798 >2292>2295 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2292>2294>2295,>2292>2293>2295;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134803 >2295>2343_1 GGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATG G 60 . AC=10;AF=0.112360;AN=89;AT=>2295>2297>2298>2300>2301>2303>2304>2306>2307>2309>2310>2312>2313>2314>2316>2317>2319>2320>2322>2324>2325>2326>2328>2330>2331>2332>2334>2335>2337>2338>2340>2341>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=85;TYPE=del GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134804 >2295>2343_2 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134804 >2295>2343_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=65;AF=0.730337;AN=89;AT=>2295>2296>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=85;TYPE=del GT 1|0 0|0 1|1 1|0 1|1 0|1 0|1 0|1 1|0 1|1 1|1 1|1 1|1 1|1 1|1 0|0 1|1 1|1 1|1 1|0 1|0 1|0 1|0 1|1 1|1 1|0 0|1 1|1 0|1 1|1 1|0 1|1 1|1 1|1 0|0 1|0 1|1 1|1 0|1 1|1 1|1 1|1 1|0 1|1 0 -grch38#chr4 10134807 >2295>2343_4 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134815 >2295>2343_5 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134821 >2295>2343_6 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134824 >2295>2343_7 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134832 >2295>2343_8 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134838 >2295>2343_9 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134841 >2295>2343_10 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134849 >2295>2343_11 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134855 >2295>2343_12 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134858 >2295>2343_13 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134866 >2295>2343_14 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134872 >2295>2343_15 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134875 >2295>2343_16 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134883 >2295>2343_17 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134889 >2295>2343_18 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134804 >2295>2343_2 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134804 >2295>2343_3 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134804 >2295>2343_4 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=65;AF=0.730337;AN=89;AT=>2295>2296>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=85;TYPE=del GT 1|0 0|0 1|1 1|0 1|1 0|1 0|1 0|1 1|0 1|1 1|1 1|1 1|1 1|1 1|1 0|0 1|1 1|1 1|1 1|0 1|0 1|0 1|0 1|1 1|1 1|0 0|1 1|1 0|1 1|1 1|0 1|1 1|1 1|1 0|0 1|0 1|1 1|1 0|1 1|1 1|1 1|1 1|0 1|1 0 +grch38#chr4 10134807 >2295>2343_5 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134815 >2295>2343_6 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134821 >2295>2343_7 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134821 >2295>2343_8 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134824 >2295>2343_9 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134832 >2295>2343_10 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134838 >2295>2343_11 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134838 >2295>2343_12 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134841 >2295>2343_13 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134849 >2295>2343_14 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134855 >2295>2343_15 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134855 >2295>2343_16 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134858 >2295>2343_17 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134866 >2295>2343_18 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134872 >2295>2343_19 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134872 >2295>2343_20 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134875 >2295>2343_21 A C 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134883 >2295>2343_22 T G 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134889 >2295>2343_23 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2295>2296>2298>2300>2301>2303>2304>2305>2307>2309>2310>2312>2313>2315>2316>2317>2319>2320>2322>2323>2325>2326>2328>2330>2331>2333>2334>2335>2337>2338>2340>2342>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0 +grch38#chr4 10134889 >2295>2343_24 G T 60 . AC=10;AF=0.112360;AN=89;AT=>2295>2297>2298>2300>2301>2303>2304>2306>2307>2309>2310>2312>2313>2314>2316>2317>2319>2320>2322>2324>2325>2326>2328>2330>2331>2332>2334>2335>2337>2338>2340>2341>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 1 +grch38#chr4 10134889 >2295>2343_25 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2295>2297>2343;NS=45;LV=0;ORIGIN=grch38#chr4:10134803;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0 grch38#chr4 10134807 >2298>2301 A C 60 . AC=1;AF=0.0714286;AN=14;AT=>2298>2300>2301,>2298>2299>2301;NS=12;LV=1;PS=>2295>2343 GT . .|0 . . . . . . .|0 . . . . . . 0|0 . . . . .|1 . .|0 . . .|0 0|. . 0|. . .|0 . . . 0|0 . . . 0|. . . . .|0 . . grch38#chr4 10134815 >2301>2304 T G 60 . AC=1;AF=0.0714286;AN=14;AT=>2301>2303>2304,>2301>2302>2304;NS=12;LV=1;PS=>2295>2343 GT . .|0 . . . . . . .|0 . . . . . . 0|0 . . . . .|1 . .|0 . . .|0 0|. . 0|. . .|0 . . . 0|0 . . . 0|. . . . .|0 . . grch38#chr4 10134821 >2304>2307 G T 60 . AC=8;AF=0.571429;AN=14;AT=>2304>2306>2307,>2304>2305>2307;NS=12;LV=1;PS=>2295>2343 GT . .|0 . . . . . . .|0 . . . . . . 1|1 . . . . .|1 . .|1 . . .|1 0|. . 1|. . .|0 . . . 1|0 . . . 0|. . . . .|1 . . @@ -972,20 +1039,26 @@ grch38#chr4 10134883 >2337>2340 T G 60 . AC=1;AF=0.0714286;AN=14;AT=>2337>2338>2 grch38#chr4 10134892 >2343>2346 A C 60 . AC=12;AF=0.134831;AN=89;AT=>2343>2345>2346,>2343>2344>2346;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134900 >2346>2349 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2346>2348>2349,>2346>2347>2349;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134905 >2349>2388_1 GGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATG G 60 . AC=8;AF=0.089888;AN=89;AT=>2349>2350>2352>2353>2355>2356>2358>2360>2361>2362>2364>2365>2367>2369>2370>2372>2373>2375>2376>2377>2379>2380>2382>2383>2385>2387>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=68;TYPE=del GT 0|1 1|0 0|0 0|1 0|0 0|0 1|0 1|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|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134906 >2349>2388_2 G T 60 . AC=10;AF=0.112360;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134906 >2349>2388_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=64;AF=0.719101;AN=89;AT=>2349>2351>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=68;TYPE=del GT 1|0 0|0 1|1 1|0 1|1 0|1 0|0 0|1 1|0 1|1 1|1 1|1 1|1 1|1 1|1 0|0 1|1 1|1 1|1 1|0 1|0 1|0 1|0 1|0 1|1 1|0 1|1 1|1 0|1 1|1 1|0 1|1 1|1 1|1 0|0 1|0 1|1 1|1 0|1 1|1 1|1 1|1 1|0 1|1 0 -grch38#chr4 10134909 >2349>2388_4 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134917 >2349>2388_5 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134923 >2349>2388_6 G T 60 . AC=10;AF=0.112360;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134926 >2349>2388_7 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134934 >2349>2388_8 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134940 >2349>2388_9 G T 60 . AC=10;AF=0.112360;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134943 >2349>2388_10 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134951 >2349>2388_11 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134957 >2349>2388_12 G T 60 . AC=10;AF=0.112360;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134960 >2349>2388_13 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134968 >2349>2388_14 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10134974 >2349>2388_15 G T 60 . AC=10;AF=0.112360;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134906 >2349>2388_2 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134906 >2349>2388_3 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134906 >2349>2388_4 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=64;AF=0.719101;AN=89;AT=>2349>2351>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=68;TYPE=del GT 1|0 0|0 1|1 1|0 1|1 0|1 0|0 0|1 1|0 1|1 1|1 1|1 1|1 1|1 1|1 0|0 1|1 1|1 1|1 1|0 1|0 1|0 1|0 1|0 1|1 1|0 1|1 1|1 0|1 1|1 1|0 1|1 1|1 1|1 0|0 1|0 1|1 1|1 0|1 1|1 1|1 1|1 1|0 1|1 0 +grch38#chr4 10134909 >2349>2388_5 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134917 >2349>2388_6 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134923 >2349>2388_7 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134923 >2349>2388_8 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134926 >2349>2388_9 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134934 >2349>2388_10 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134940 >2349>2388_11 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134940 >2349>2388_12 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134943 >2349>2388_13 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134951 >2349>2388_14 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134957 >2349>2388_15 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134957 >2349>2388_16 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134960 >2349>2388_17 A C 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134968 >2349>2388_18 T G 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. . +grch38#chr4 10134974 >2349>2388_19 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2349>2350>2352>2353>2355>2356>2358>2360>2361>2362>2364>2365>2367>2369>2370>2372>2373>2375>2376>2377>2379>2380>2382>2383>2385>2387>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 1 +grch38#chr4 10134974 >2349>2388_20 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2349>2350>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. 1|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0 +grch38#chr4 10134974 >2349>2388_21 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2349>2351>2352>2353>2355>2356>2358>2359>2361>2362>2364>2365>2367>2368>2370>2372>2373>2375>2376>2378>2379>2380>2382>2383>2385>2386>2388;NS=45;LV=0;ORIGIN=grch38#chr4:10134905;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0 grch38#chr4 10134909 >2352>2355 A C 60 . AC=3;AF=0.176471;AN=17;AT=>2352>2353>2355,>2352>2354>2355;NS=15;LV=1;PS=>2349>2388 GT . .|0 . . . 1|. .|0 . .|0 . . . . . . 0|0 . . . .|1 .|1 . .|0 .|0 . .|0 . . 0|. . .|0 . . . 0|0 . . . 0|. . . . .|0 . . grch38#chr4 10134917 >2355>2358 T G 60 . AC=3;AF=0.176471;AN=17;AT=>2355>2356>2358,>2355>2357>2358;NS=15;LV=1;PS=>2349>2388 GT . .|0 . . . 1|. .|0 . .|0 . . . . . . 0|0 . . . .|1 .|1 . .|0 .|0 . .|0 . . 0|. . .|0 . . . 0|0 . . . 0|. . . . .|0 . . grch38#chr4 10134923 >2358>2361 G T 60 . AC=10;AF=0.588235;AN=17;AT=>2358>2360>2361,>2358>2359>2361;NS=15;LV=1;PS=>2349>2388 GT . .|0 . . . 1|. .|0 . .|0 . . . . . . 1|1 . . . .|1 .|1 . .|1 .|0 . .|1 . . 1|. . .|0 . . . 1|0 . . . 0|. . . . .|1 . . @@ -1000,14 +1073,18 @@ grch38#chr4 10134968 >2382>2385 T G 60 . AC=3;AF=0.176471;AN=17;AT=>2382>2383>23 grch38#chr4 10134977 >2388>2391 A C 60 . AC=12;AF=0.134831;AN=89;AT=>2388>2390>2391,>2388>2389>2391;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10134985 >2391>2394 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2391>2393>2394,>2391>2392>2394;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10134990 >2394>2415_1 GGAGAATCCCAATTGATGGAGAATCCCAATTGATG G 60 . AC=9;AF=0.101124;AN=89;AT=>2394>2396>2397>2399>2400>2401>2403>2404>2406>2407>2409>2410>2412>2414>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=34;TYPE=del GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 -grch38#chr4 10134991 >2394>2415_2 G T 60 . AC=9;AF=0.101124;AN=89;AT=>2394>2396>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. 1|0 .|. .|. .|. 0|0 .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10134991 >2394>2415_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=42;AF=0.471910;AN=89;AT=>2394>2395>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=34;TYPE=del GT 1|0 0|0 1|1 1|0 0|0 0|1 0|0 0|0 0|1 0|1 1|0 1|0 0|0 1|1 1|1 0|0 1|0 1|1 0|0 1|0 1|0 1|0 0|0 0|1 1|0 1|0 1|1 1|0 0|0 1|0 0|1 1|1 0|0 0|1 0|0 1|0 1|1 0|0 0|1 1|1 1|1 1|1 0|0 1|1 0 -grch38#chr4 10134994 >2394>2415_4 A C 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10135002 >2394>2415_5 T G 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10135008 >2394>2415_6 G T 60 . AC=9;AF=0.101124;AN=89;AT=>2394>2396>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. 1|0 .|. .|. .|. 0|0 .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. . -grch38#chr4 10135011 >2394>2415_7 A C 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10135019 >2394>2415_8 T G 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . -grch38#chr4 10135025 >2394>2415_9 G T 60 . AC=9;AF=0.101124;AN=89;AT=>2394>2396>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. 1|0 .|. .|. .|. 0|0 .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134991 >2394>2415_2 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10134991 >2394>2415_3 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2394>2396>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. 1|0 .|. .|. .|. 0|0 .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10134991 >2394>2415_4 GAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=42;AF=0.471910;AN=89;AT=>2394>2395>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=34;TYPE=del GT 1|0 0|0 1|1 1|0 0|0 0|1 0|0 0|0 0|1 0|1 1|0 1|0 0|0 1|1 1|1 0|0 1|0 1|1 0|0 1|0 1|0 1|0 0|0 0|1 1|0 1|0 1|1 1|0 0|0 1|0 0|1 1|1 0|0 0|1 0|0 1|0 1|1 0|0 0|1 1|1 1|1 1|1 0|0 1|1 0 +grch38#chr4 10134994 >2394>2415_5 A C 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10135002 >2394>2415_6 T G 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10135008 >2394>2415_7 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10135008 >2394>2415_8 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2394>2396>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. 1|0 .|. .|. .|. 0|0 .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. . +grch38#chr4 10135011 >2394>2415_9 A C 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10135019 >2394>2415_10 T G 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. . +grch38#chr4 10135025 >2394>2415_11 G T 60 . AC=2;AF=0.022472;AN=89;AT=>2394>2395>2397>2399>2400>2401>2403>2405>2406>2407>2409>2410>2412>2413>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. 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 +grch38#chr4 10135025 >2394>2415_12 G T 60 . AC=9;AF=0.101124;AN=89;AT=>2394>2396>2397>2399>2400>2401>2403>2404>2406>2407>2409>2410>2412>2414>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. 1|0 .|. .|. 0|0 .|. 1|0 1|0 .|. .|. .|. .|. 0|0 .|. .|. 0|0 .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. 1 +grch38#chr4 10135025 >2394>2415_13 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2394>2396>2415;NS=45;LV=0;ORIGIN=grch38#chr4:10134990;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. 0|0 .|. 0|0 0|0 .|. .|. .|. .|. 0|0 .|. .|. 1|1 .|. .|. 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. 1|0 .|. .|. .|. 0|0 .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|1 .|. 0 grch38#chr4 10134994 >2397>2400 A C 60 . AC=2;AF=0.0526316;AN=38;AT=>2397>2399>2400,>2397>2398>2400;NS=28;LV=1;PS=>2394>2415 GT . .|0 . . 0|0 . .|0 .|0 0|. 0|. .|0 .|0 0|0 . . 0|0 .|0 . 0|0 . .|1 .|1 0|0 0|. .|0 .|0 . .|0 0|0 .|0 0|. . 0|0 0|. 0|0 . . 0|0 0|. . . . 0|0 . . grch38#chr4 10135002 >2400>2403 T G 60 . AC=2;AF=0.0526316;AN=38;AT=>2400>2401>2403,>2400>2402>2403;NS=28;LV=1;PS=>2394>2415 GT . .|0 . . 0|0 . .|0 .|0 0|. 0|. .|0 .|0 0|0 . . 0|0 .|0 . 0|0 . .|1 .|1 0|0 0|. .|0 .|0 . .|0 0|0 .|0 0|. . 0|0 0|. 0|0 . . 0|0 0|. . . . 0|0 . . grch38#chr4 10135008 >2403>2406 G T 60 . AC=9;AF=0.236842;AN=38;AT=>2403>2404>2406,>2403>2405>2406;NS=28;LV=1;PS=>2394>2415 GT . .|0 . . 0|0 . .|0 .|0 0|. 0|. .|0 .|0 0|0 . . 1|1 .|0 . 0|0 . .|1 .|1 0|1 0|. .|0 .|1 . .|0 1|0 .|0 0|. . 0|0 0|. 1|0 . . 0|0 0|. . . . 0|1 . . @@ -1016,17 +1093,22 @@ grch38#chr4 10135019 >2409>2412 T G 60 . AC=2;AF=0.0526316;AN=38;AT=>2409>2410>2 grch38#chr4 10135028 >2415>2418 A C 60 . AC=12;AF=0.134831;AN=89;AT=>2415>2417>2418,>2415>2416>2418;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 1 grch38#chr4 10135036 >2418>2421 T G 60 . AC=11;AF=0.123596;AN=89;AT=>2418>2420>2421,>2418>2419>2421;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10135041 >2421>2451_1 GGAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATG G 60 . AC=3;AF=0.033708;AN=89;AT=>2421>2423>2424>2426>2427>2429>2430>2432>2433>2435>2436>2438>2439>2441>2442>2444>2445>2447>2448>2450>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=51;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 1|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|1 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 1 -grch38#chr4 10135042 >2421>2451_2 G T 60 . AC=15;AF=0.168539;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135042 >2421>2451_3 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=37;AF=0.415730;AN=89;AT=>2421>2422>2424>2426>2427>2429>2430>2431>2433>2435>2436>2438>2439>2440>2442>2444>2445>2447>2448>2449>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=51;TYPE=del GT 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 1|0 1|1 1|0 1|1 0|0 0|0 1|1 1|0 0|0 1|0 0|0 1|0 1|0 0|0 1|0 1|0 1|1 1|0 0|1 0|1 0|1 1|0 1|1 0|0 0|1 1|0 1|1 0|0 0|1 1|0 1|1 1|1 1|0 0|0 0 -grch38#chr4 10135045 >2421>2451_4 A C 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135053 >2421>2451_5 T G 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135059 >2421>2451_6 G T 60 . AC=15;AF=0.168539;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135062 >2421>2451_7 A C 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135070 >2421>2451_8 T G 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135076 >2421>2451_9 G T 60 . AC=15;AF=0.168539;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135079 >2421>2451_10 A C 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135087 >2421>2451_11 T G 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . -grch38#chr4 10135093 >2421>2451_12 G T 60 . AC=15;AF=0.168539;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135042 >2421>2451_2 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135042 >2421>2451_3 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135042 >2421>2451_4 GAGAATCCCAATTGATGGAGAATCCCAATTGATGGAGAATCCCAATTGATGG G 60 . AC=37;AF=0.415730;AN=89;AT=>2421>2422>2424>2426>2427>2429>2430>2431>2433>2435>2436>2438>2439>2440>2442>2444>2445>2447>2448>2449>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=51;TYPE=del GT 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 1|0 1|1 1|0 1|1 0|0 0|0 1|1 1|0 0|0 1|0 0|0 1|0 1|0 0|0 1|0 1|0 1|1 1|0 0|1 0|1 0|1 1|0 1|1 0|0 0|1 1|0 1|1 0|0 0|1 1|0 1|1 1|1 1|0 0|0 0 +grch38#chr4 10135045 >2421>2451_5 A C 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135053 >2421>2451_6 T G 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135059 >2421>2451_7 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135059 >2421>2451_8 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135062 >2421>2451_9 A C 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135070 >2421>2451_10 T G 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135076 >2421>2451_11 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 .|. 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135076 >2421>2451_12 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135079 >2421>2451_13 A C 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135087 >2421>2451_14 T G 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 .|. 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 . +grch38#chr4 10135093 >2421>2451_15 G T 60 . AC=7;AF=0.078652;AN=89;AT=>2421>2422>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 1|1 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 0 +grch38#chr4 10135093 >2421>2451_16 G T 60 . AC=3;AF=0.033708;AN=89;AT=>2421>2423>2424>2426>2427>2429>2430>2432>2433>2435>2436>2438>2439>2441>2442>2444>2445>2447>2448>2450>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|0 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 1 +grch38#chr4 10135093 >2421>2451_17 G T 60 . AC=8;AF=0.089888;AN=89;AT=>2421>2423>2451;NS=45;LV=0;ORIGIN=grch38#chr4:10135041;LEN=1;TYPE=snp GT .|. 1|0 0|0 0|1 0|0 0|0 1|0 1|0 0|0 .|. .|. .|. .|. .|. 0|0 0|0 .|. .|. 0|0 .|. 0|1 .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. 0|0 0 grch38#chr4 10135045 >2424>2427 A C 60 . AC=8;AF=0.163265;AN=49;AT=>2424>2426>2427,>2424>2425>2427;NS=34;LV=1;PS=>2421>2451 GT .|1 1|0 0|0 0|1 0|0 .|0 1|0 1|0 0|0 . .|0 . .|0 . 0|0 0|0 . .|0 0|0 . 0|1 .|1 .|0 0|0 .|0 .|0 . .|0 0|. 0|. 0|. .|0 . 0|0 0|. .|1 . 0|0 0|. .|0 . . .|0 0|0 . grch38#chr4 10135053 >2427>2430 T G 60 . AC=8;AF=0.163265;AN=49;AT=>2427>2429>2430,>2427>2428>2430;NS=34;LV=1;PS=>2421>2451 GT .|1 1|0 0|0 0|1 0|0 .|0 1|0 1|0 0|0 . .|0 . .|0 . 0|0 0|0 . .|0 0|0 . 0|1 .|1 .|0 0|0 .|0 .|0 . .|0 0|. 0|. 0|. .|0 . 0|0 0|. .|1 . 0|0 0|. .|0 . . .|0 0|0 . grch38#chr4 10135059 >2430>2433 G T 60 . AC=15;AF=0.306122;AN=49;AT=>2430>2432>2433,>2430>2431>2433;NS=34;LV=1;PS=>2421>2451 GT .|1 1|0 0|0 0|1 0|0 .|0 1|0 1|0 0|0 . .|0 . .|0 . 0|0 1|1 . .|0 0|0 . 0|1 .|1 .|1 0|0 .|0 .|1 . .|0 1|. 0|. 0|. .|0 . 0|0 1|. .|1 . 0|0 0|. .|0 . . .|1 0|0 . @@ -1059,7 +1141,8 @@ grch38#chr4 10135984 >2503>2506 A C 60 . AC=38;AF=0.426966;AN=89;AT=>2503>2505>2 grch38#chr4 10136075 >2506>2508 CA C 60 . AC=1;AF=0.011236;AN=89;AT=>2506>2507>2508,>2506>2508;NS=45;LV=0 GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr4 10136088 >2508>2511 C A 60 . AC=6;AF=0.0674157;AN=89;AT=>2508>2510>2511,>2508>2509>2511;NS=45;LV=0 GT 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0|0 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 1|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 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0 grch38#chr4 10136132 >2511>2516_1 T TCTTTC 60 . AC=1;AF=0.011236;AN=89;AT=>2511>2515>2516;NS=45;LV=0;ORIGIN=grch38#chr4:10136132;LEN=5;TYPE=ins GT 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|1 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 -grch38#chr4 10136133 >2511>2516_2 T C 60 . AC=1;AF=0.011236;AN=89;AT=>2511>2515>2516;NS=45;LV=0;ORIGIN=grch38#chr4:10136132;LEN=1;TYPE=snp GT 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|1 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 +grch38#chr4 10136133 >2511>2516_2 T C 60 . AC=37;AF=0.415730;AN=89;AT=>2511>2513>2516;NS=45;LV=0;ORIGIN=grch38#chr4:10136132;LEN=1;TYPE=snp GT 0|1 1|1 0|0 0|1 0|1 1|0 1|0 1|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 1|1 0|0 0|0 1|1 0|1 0|1 0|1 0|0 1|1 0|0 1|1 1|0 0|0 1|0 0|0 0|0 0|0 1|0 0|1 1|1 0|1 1|0 0|0 0|1 0|0 1|1 1|0 0|1 0|1 1 +grch38#chr4 10136133 >2511>2516_3 T C 60 . AC=1;AF=0.011236;AN=89;AT=>2511>2515>2516;NS=45;LV=0;ORIGIN=grch38#chr4:10136132;LEN=1;TYPE=snp GT 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|1 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 grch38#chr4 10136167 >2516>2519 T A 60 . AC=11;AF=0.123596;AN=89;AT=>2516>2518>2519,>2516>2517>2519;NS=45;LV=0 GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1 grch38#chr4 10136203 >2519>2522 G T 60 . AC=1;AF=0.011236;AN=89;AT=>2519>2521>2522,>2519>2520>2522;NS=45;LV=0 GT 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|1 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 grch38#chr4 10136325 >2522>2528_1 G GAGGGAAGGGA 60 . AC=1;AF=0.011236;AN=89;AT=>2522>2523>2524>2525>2527>2528;NS=45;LV=0;ORIGIN=grch38#chr4:10136325;LEN=10;TYPE=ins GT 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|1 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 @@ -1167,14 +1250,16 @@ grch38#chr4 10140033 >2765>2768_2 G GG 60 . AC=1;AF=0.011236;AN=89;AT=>2765>2768 grch38#chr4 10140069 >2768>2783_1 GTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC G 60 . AC=1;AF=0.011236;AN=89;AT=>2768>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=57;TYPE=del GT 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|1 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 grch38#chr4 10140085 >2768>2783_2 C T 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=1;TYPE=snp GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr4 10140088 >2768>2783_3 CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC C 60 . AC=45;AF=0.505618;AN=89;AT=>2768>2775>2776>2778>2779>2780>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=38;TYPE=del GT 1|0 0|0 1|1 1|0 1|0 0|1 0|1 0|1 0|1 1|1 1|1 1|1 0|1 1|1 0|1 0|0 1|1 1|1 0|0 1|0 1|0 1|0 1|0 0|0 1|1 0|0 0|0 1|1 0|0 1|0 1|1 0|0 0|1 1|0 0|1 1|0 0|1 1|1 0|0 1|1 0|0 0|0 1|0 1|0 0 -grch38#chr4 10140105 >2768>2783_4 G A 60 . AC=24;AF=0.269663;AN=89;AT=>2768>2771>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=1;TYPE=snp GT .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|1 .|. .|. 1|1 .|. .|. .|. .|. 1|1 .|. 1|0 1|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|1 .|. 1|0 1|0 .|. .|. 0 -grch38#chr4 10140107 >2768>2783_5 CTCCAGCCTCCCTGCGCGTC C 60 . AC=24;AF=0.269663;AN=89;AT=>2768>2771>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=19;TYPE=del GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|1 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 1|0 0|0 0|0 0|0 1|0 0|1 1|0 0|0 1|0 0|0 0|1 0|0 1|0 1|0 0|1 0|1 0 -grch38#chr4 10140126 >2768>2783_6 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=1;AF=0.011236;AN=89;AT=>2768>2773>2774>2775>2776>2778>2779>2781>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=114;TYPE=ins GT 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|1 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 -grch38#chr4 10140126 >2768>2783_7 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2769>2770>2771>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=95;TYPE=ins GT 0|0 0|0 0|0 0|1 0|0 0|0 1|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 -grch38#chr4 10140126 >2768>2783_8 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=5;AF=0.056180;AN=89;AT=>2768>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=76;TYPE=ins GT 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 1 -grch38#chr4 10140126 >2768>2783_9 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=57;TYPE=ins GT 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10140126 >2768>2783_10 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2775>2777>2778>2779>2780>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=38;TYPE=ins GT 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|1 0|1 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 -grch38#chr4 10140126 >2768>2783_11 C CTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=19;TYPE=ins GT 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|1 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|1 0|0 0|0 0|0 0 +grch38#chr4 10140105 >2768>2783_4 G A 60 . AC=22;AF=0.247191;AN=89;AT=>2768>2771>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=1;TYPE=snp GT .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|1 .|. .|. 1|1 .|. .|. .|. .|. 1|1 .|. 1|0 1|0 .|. 1|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|1 .|. 1|0 1|0 .|. .|. 0 +grch38#chr4 10140105 >2768>2783_5 G A 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=1;TYPE=snp GT .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. 0|0 .|. .|. .|. .|. 0|0 .|. 0|1 0|0 .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 .|. 0|0 0|0 .|. .|. 0 +grch38#chr4 10140107 >2768>2783_6 CTCCAGCCTCCCTGCGCGTC C 60 . AC=22;AF=0.247191;AN=89;AT=>2768>2771>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=19;TYPE=del GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|1 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 1|0 0|0 0|0 0|0 1|0 0|1 1|0 0|0 1|0 0|0 0|1 0|0 1|0 1|0 0|1 0|1 0 +grch38#chr4 10140107 >2768>2783_7 CTCCAGCCTCCCTGCGCGTC C 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=19;TYPE=del GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10140126 >2768>2783_8 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=1;AF=0.011236;AN=89;AT=>2768>2773>2774>2775>2776>2778>2779>2781>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=114;TYPE=ins GT 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|1 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 +grch38#chr4 10140126 >2768>2783_9 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2769>2770>2771>2772>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=95;TYPE=ins GT 0|0 0|0 0|0 0|1 0|0 0|0 1|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 +grch38#chr4 10140126 >2768>2783_10 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=5;AF=0.056180;AN=89;AT=>2768>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=76;TYPE=ins GT 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 1 +grch38#chr4 10140126 >2768>2783_11 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2773>2774>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=57;TYPE=ins GT 0|1 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10140126 >2768>2783_12 C CTCCAGCCTCCCTGCGCGTCTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2775>2777>2778>2779>2780>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=38;TYPE=ins GT 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|1 0|1 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 +grch38#chr4 10140126 >2768>2783_13 C CTCCAGCCTCCCTGCGCGTC 60 . AC=2;AF=0.022472;AN=89;AT=>2768>2775>2776>2778>2782>2783;NS=45;LV=0;ORIGIN=grch38#chr4:10140069;LEN=19;TYPE=ins GT 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|1 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|1 0|0 0|0 0|0 0 grch38#chr4 10140123 >2775>2778 C T 60 . AC=2;AF=0.0227273;AN=88;AT=>2775>2776>2778,>2775>2777>2778;NS=45;LV=1;PS=>2768>2783 GT 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 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr4 10140124 >2778>2782_1 G GTCTCCAGCCTCCCTGCGCA 60 . AC=24;AF=0.272727;AN=88;AT=>2778>2782;NS=45;LV=1;PS=>2768>2783;ORIGIN=grch38#chr4:10140124;LEN=19;TYPE=ins GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 1|1 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|1 1|0 0|0 1|0 0|0 0|0 0|. 1|0 0|1 1|0 0|0 1|0 0|0 0|1 0|0 1|0 1|0 0|1 0|1 0 grch38#chr4 10140124 >2778>2782_2 G GTCTCCAGCCTCCCTGCGCG 60 . AC=2;AF=0.022727;AN=88;AT=>2778>2779>2780>2782;NS=45;LV=1;PS=>2768>2783;ORIGIN=grch38#chr4:10140124;LEN=19;TYPE=ins GT 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|1 0|1 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 @@ -1282,10 +1367,14 @@ grch38#chr4 10145473 >3045>3049_2 A G 60 . AC=29;AF=0.325843;AN=89;AT=>3045>3047 grch38#chr4 10145473 >3045>3049_3 ATCCCGTGCACCTGACTAAATGCGTCCCGTGCACCTGACTAAATGCG A 60 . AC=37;AF=0.415730;AN=89;AT=>3045>3047>3048>3049;NS=45;LV=0;ORIGIN=grch38#chr4:10145472;LEN=46;TYPE=del GT 0|1 1|1 0|0 0|1 0|1 1|0 1|0 1|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 1|1 0|0 0|0 1|1 0|1 0|1 0|1 0|1 1|1 0|0 1|1 1|0 0|0 1|0 0|0 0|0 0|0 1|0 0|1 1|1 0|1 1|0 0|0 0|1 0|0 1|0 1|0 0|1 0|1 1 grch38#chr4 10145542 >3049>3052 G A 60 . AC=37;AF=0.41573;AN=89;AT=>3049>3050>3052,>3049>3051>3052;NS=45;LV=0 GT 0|1 1|1 0|0 0|1 0|1 1|0 1|0 1|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 1|1 0|0 0|0 1|1 0|1 0|1 0|1 0|1 1|1 0|0 1|1 1|0 0|0 1|0 0|0 0|0 0|0 1|0 0|1 1|1 0|1 1|0 0|0 0|1 0|0 1|0 1|0 0|1 0|1 1 grch38#chr4 10145564 >3052>3061_1 CGTCCCGTGCACCTGACTAAATGC C 60 . AC=3;AF=0.033708;AN=89;AT=>3052>3054>3055>3056>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=23;TYPE=del GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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|1 0|0 1|0 0|0 0|0 0|0 0 -grch38#chr4 10145565 >3052>3061_2 G A 60 . AC=16;AF=0.179775;AN=89;AT=>3052>3054>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 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|1 .|. 0|0 0|0 0|0 0 -grch38#chr4 10145565 >3052>3061_3 GTCCCGTGCACCTGACTAAATGCG G 60 . AC=1;AF=0.011236;AN=89;AT=>3052>3054>3055>3057>3058>3059>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=23;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 -grch38#chr4 10145573 >3052>3061_4 C T 60 . AC=15;AF=0.168539;AN=89;AT=>3052>3054>3055>3057>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 .|. 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 .|. 0|0 .|. 0|0 .|. 0|0 0|0 0|1 0 -grch38#chr4 10145588 >3052>3061_5 G A 60 . AC=15;AF=0.168539;AN=89;AT=>3052>3054>3055>3057>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 .|. 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 .|. 0|0 .|. 0|0 .|. 0|0 0|0 0|1 0 +grch38#chr4 10145565 >3052>3061_2 G A 60 . AC=19;AF=0.213483;AN=89;AT=>3052>3053>3055>3057>3058>3059>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|1 0|1 0|1 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|1 .|. 0|0 .|. 0|0 .|. 1|0 0|1 0|0 1 +grch38#chr4 10145565 >3052>3061_3 G A 60 . AC=15;AF=0.168539;AN=89;AT=>3052>3054>3055>3057>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 .|. 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 .|. 0|0 .|. 0|0 .|. 0|0 0|0 0|1 0 +grch38#chr4 10145565 >3052>3061_4 G A 60 . AC=1;AF=0.011236;AN=89;AT=>3052>3054>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 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|1 .|. 0|0 0|0 0|0 0 +grch38#chr4 10145565 >3052>3061_5 GTCCCGTGCACCTGACTAAATGCG G 60 . AC=1;AF=0.011236;AN=89;AT=>3052>3054>3055>3057>3058>3059>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=23;TYPE=del GT 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|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0 +grch38#chr4 10145573 >3052>3061_6 C T 60 . AC=15;AF=0.168539;AN=89;AT=>3052>3054>3055>3057>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 .|. 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 .|. 0|0 .|. 0|0 .|. 0|0 0|0 0|1 0 +grch38#chr4 10145588 >3052>3061_7 G A 60 . AC=19;AF=0.213483;AN=89;AT=>3052>3053>3055>3057>3058>3059>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|1 1|0 0|0 0|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|1 0|1 0|1 0|1 0|0 0|0 0|1 0|0 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|1 .|. 0|0 0|0 0|0 0|0 1|0 0|1 0|0 1 +grch38#chr4 10145588 >3052>3061_8 G A 60 . AC=3;AF=0.033708;AN=89;AT=>3052>3054>3055>3056>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|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|1 0|0 1|0 0|0 0|0 0|0 0 +grch38#chr4 10145588 >3052>3061_9 G A 60 . AC=15;AF=0.168539;AN=89;AT=>3052>3054>3055>3057>3058>3060>3061;NS=45;LV=0;ORIGIN=grch38#chr4:10145564;LEN=1;TYPE=snp GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 0|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0 grch38#chr4 10145573 >3055>3058 C T 60 . AC=15;AF=0.176471;AN=85;AT=>3055>3057>3058,>3055>3056>3058;NS=45;LV=1;PS=>3052>3061 GT 0|0 0|1 0|0 0|0 0|1 0|0 0|0 .|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 0|0 0|0 0|0 1|1 0|0 0|0 0|0 0|0 1|1 0|0 1|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|1 0|0 1|. 0|0 0|. 0|0 .|0 0|0 0|0 0|1 0 grch38#chr4 10145610 >3061>3079_1 CGTCCCGTGCACCTGACTAAATGCGTCCCGTGCACCTGACTAAATGCGTCCCGTGCACCTGACTAAATGCGTCCCGTGCACCTGACTAAATGC C 60 . AC=32;AF=0.359551;AN=89;AT=>3061>3062>3064>3065>3067>3068>3070>3072>3073>3074>3078>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=92;TYPE=del GT 0|1 1|1 0|0 0|1 0|1 1|0 1|0 1|0 1|0 0|0 0|0 0|0 1|0 0|0 1|0 1|0 0|0 0|0 1|1 0|1 0|1 0|1 0|1 1|1 0|0 1|1 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 0|1 0|0 1|0 0|0 0|1 0|0 1|0 1|0 0|0 0|1 1 grch38#chr4 10145611 >3061>3079_2 G A 60 . AC=5;AF=0.056180;AN=89;AT=>3061>3063>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 0|0 0|0 .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 1|0 0|0 0|0 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. . @@ -1294,8 +1383,9 @@ grch38#chr4 10145634 >3061>3079_4 G A 60 . AC=5;AF=0.056180;AN=89;AT=>3061>3063> grch38#chr4 10145657 >3061>3079_5 G A 60 . AC=5;AF=0.056180;AN=89;AT=>3061>3063>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 0|0 0|0 .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 1|0 0|0 0|0 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. . grch38#chr4 10145680 >3061>3079_6 G A 60 . AC=5;AF=0.056180;AN=89;AT=>3061>3063>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 0|0 0|0 .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 1|0 0|0 0|0 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. . grch38#chr4 10145702 >3061>3079_7 C T 60 . AC=6;AF=0.067416;AN=89;AT=>3061>3062>3064>3065>3067>3068>3070>3072>3073>3074>3076>3077>3078>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. 1|1 1|0 0|0 .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|1 0|0 1|0 1|0 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10145703 >3061>3079_8 G A 60 . AC=5;AF=0.056180;AN=89;AT=>3061>3063>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. .|. .|. .|. .|. .|. .|. .|. .|. 0|0 0|0 0|0 .|. 0|0 .|. .|. .|. 0|0 .|. .|. .|. .|. .|. .|. 0|0 .|. .|. 0|0 1|0 0|0 0|0 0|0 .|. .|. .|. 0|1 .|. .|. .|. .|. .|. .|. .|. .|. . -grch38#chr4 10145703 >3061>3079_9 G GTCCCGTGCACCTGACTAAATGCGTCCCGTGCACCTGACTAAATGTG 60 . AC=3;AF=0.033708;AN=89;AT=>3061>3062>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=46;TYPE=ins GT 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|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 +grch38#chr4 10145703 >3061>3079_8 G A 60 . AC=32;AF=0.359551;AN=89;AT=>3061>3062>3064>3065>3067>3068>3070>3072>3073>3074>3078>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. 1|1 .|. 0|1 .|. 1|0 .|. .|. 1|0 0|0 0|0 0|0 1|0 0|0 1|0 1|0 .|. 0|0 1|1 0|1 0|1 0|1 0|1 1|1 0|0 1|1 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 0|1 0|0 .|. .|. 0|1 .|. .|. 1|0 .|. 0|1 1 +grch38#chr4 10145703 >3061>3079_9 G A 60 . AC=5;AF=0.056180;AN=89;AT=>3061>3063>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=1;TYPE=snp GT .|. 0|0 .|. 0|0 .|. 0|0 .|. .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 .|. 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 1|0 0|1 .|. .|. 0|0 .|. .|. 0|0 .|. 0|0 0 +grch38#chr4 10145703 >3061>3079_10 G GTCCCGTGCACCTGACTAAATGCGTCCCGTGCACCTGACTAAATGTG 60 . AC=3;AF=0.033708;AN=89;AT=>3061>3062>3079;NS=45;LV=0;ORIGIN=grch38#chr4:10145610;LEN=46;TYPE=ins GT 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|1 0|0 0|0 0|0 0|0 1|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 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 grch38#chr4 10145634 >3064>3067 G A 60 . AC=5;AF=0.108696;AN=46;AT=>3064>3065>3067,>3064>3066>3067;NS=34;LV=1;PS=>3061>3079 GT . . 0|. 0|. . .|0 . . .|0 0|0 0|0 0|0 .|0 0|0 .|0 .|1 0|. 0|0 . 0|. 0|. 0|. 0|. . 0|0 . .|0 0|0 1|0 0|0 0|0 0|0 .|0 0|. 1|. 0|1 . 0|. 0|. 0|. . .|0 .|1 0|. . grch38#chr4 10145657 >3067>3070 G A 60 . AC=5;AF=0.108696;AN=46;AT=>3067>3068>3070,>3067>3069>3070;NS=34;LV=1;PS=>3061>3079 GT . . 0|. 0|. . .|0 . . .|0 0|0 0|0 0|0 .|0 0|0 .|0 .|1 0|. 0|0 . 0|. 0|. 0|. 0|. . 0|0 . .|0 0|0 1|0 0|0 0|0 0|0 .|0 0|. 1|. 0|1 . 0|. 0|. 0|. . .|0 .|1 0|. . grch38#chr4 10145680 >3070>3073 G A 60 . AC=5;AF=0.108696;AN=46;AT=>3070>3072>3073,>3070>3071>3073;NS=34;LV=1;PS=>3061>3079 GT . . 0|. 0|. . .|0 . . .|0 0|0 0|0 0|0 .|0 0|0 .|0 .|1 0|. 0|0 . 0|. 0|. 0|. 0|. . 0|0 . .|0 0|0 1|0 0|0 0|0 0|0 .|0 0|. 1|. 0|1 . 0|. 0|. 0|. . .|0 .|1 0|. . diff --git a/test/data/regression/vcfwave_6.vcf b/test/data/regression/vcfwave_6.vcf new file mode 100644 index 00000000..6afb1b7f --- /dev/null +++ b/test/data/regression/vcfwave_6.vcf @@ -0,0 +1,20 @@ +##fileformat=VCFv4.2 +##FILTER= +##FORMAT= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##contig= +##INFO= +##INFO= +##INFO= +##INFO= +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT DBVPG6044 SK1 UWOPS034614 Y12 YPS128 +chrVII 545097 >225698>225707_1 A ATATTGAGAAATGTATGG 60 . NS=4;LV=0;AF=0.500000;AT=>225698>225699>225707;AN=4;AC=2;ORIGIN=chrVII:545097;LEN=17;TYPE=ins GT 1 1 . 0 0 +chrVII 545098 >225698>225707_2 C T 60 . NS=4;LV=0;AF=0.500000;AT=>225698>225699>225707;AN=4;AC=2;ORIGIN=chrVII:545097;LEN=1;TYPE=snp GT 1 1 . 0 0 +chrVII 545098 >225698>225707_3 C T 60 . NS=4;LV=0;AF=0.500000;AT=>225698>225700>225701>225702>225703>225704>225705>225706>225707;AN=4;AC=2;ORIGIN=chrVII:545097;LEN=1;TYPE=snp GT 0 0 . 1 1 diff --git a/test/pytest/rtest.py b/test/pytest/rtest.py index 785548ae..e22516f3 100644 --- a/test/pytest/rtest.py +++ b/test/pytest/rtest.py @@ -6,8 +6,6 @@ import re from subprocess import Popen, PIPE -bindir = "../build" - regressiondir = "data/regression" tmpdir = "tmp" @@ -18,11 +16,9 @@ def cat(cmd): def head(cmd, lines=4): cmd2 = cmd.split(" ") - # print("-------------------->",cmd2,file=sys.stderr) cmd1 = cmd2[0] - if not os.path.isfile(cmd1): - cmd1 = f"{bindir}/{cmd1}" cmds = [cmd1]+cmd2[1:] + print("-------------------->",cmds,file=sys.stderr) p = Popen(cmds, stdout=PIPE, stderr=PIPE, close_fds=True) output = p.communicate() out = output[0] @@ -33,11 +29,11 @@ def head(cmd, lines=4): header = out.decode().expandtabs(tabsize=8).split("\n")[0:lines] header = ['>' if l=='' else l for l in header] header = [l.replace(VERSION+" ", "") for l in header] - header = [l.replace("../build/", "") for l in header] print("\n".join(header)) def sh(cmd): - cmds = ['bash','-c',cmd] + cmds = ['bash','-c']+[cmd] + print("-------------------->",cmds,file=sys.stderr) p = Popen(cmds, stdout=PIPE, stderr=PIPE, close_fds=True) output = p.communicate() out = output[0] @@ -72,7 +68,7 @@ def run_stdout(cmd, ext = "vcf", uniq = None): name += "." + ext tmpfn = tmpdir + "/" + name - os.system(f"{bindir}/{cmd} > {tmpfn}") + os.system(f"{cmd} > {tmpfn}") cmpfn = regressiondir+"/"+name sys.stdout.writelines(difflib.unified_diff(open(cmpfn).readlines(),open(tmpfn).readlines(),cmpfn,tmpfn,n=1)) print(f"output in {name}") diff --git a/test/pytest/vcfallelicprimitives.md b/test/pytest/vcfallelicprimitives.md index 4e64c247..00e39747 100644 --- a/test/pytest/vcfallelicprimitives.md +++ b/test/pytest/vcfallelicprimitives.md @@ -105,7 +105,7 @@ and adjusts the genotypes accordingly splitting into two records using the origi ```python ->>> sh("../build/vcfallelicprimitives -a SW -m -L 1000 ../samples/10158243.vcf|grep -v ^\#") +>>> sh("vcfallelicprimitives -a SW -m -L 1000 ../samples/10158243.vcf|grep -v ^\#") grch38#chr4 10158243 >3655>3662_1 ACCCCCACCCCCAC ACCCCCAC,ACAC,AC,A 60 . AC=3,1,64,3;AF=0.0337079,0.011236,0.719101,0.0337079;LEN=6,10,12,13;ORIGIN=grch38#chr4:10158243,grch38#chr4:10158243,grch38#chr4:10158243,grch38#chr4:10158243;TYPE=del,del,del,del GT 0|0 3|3 3|3 3|0 2|3 0|1 0|3 0|3 3|3 3|3 3|3 3|3 3|3 3|3 3|3 1|0 3|3 3|3 3|3 3|0 3|0 3|0 3|0 3|3 3|3 3|1 3|3 3|3 0|0 3|0 3|3 0|3 3|3 3|3 4|3 3|4 3|3 3|3 0|3 3|3 3|3 3|0 3|4 3|3 0 grch38#chr4 10158255 >3655>3662_2 ACC AC,A 60 . AC=2,1;AF=0.0224719,0.011236;LEN=1,2;ORIGIN=grch38#chr4:10158243,grch38#chr4:10158243;TYPE=del,del GT 0|0 .|. .|. .|0 2|. 0|0 0|. 0|. .|. .|. .|. .|. .|. .|. .|. 0|1 .|. .|. .|. .|0 .|0 .|0 .|0 .|. .|. .|0 .|. .|. 1|0 .|0 .|. 0|. .|. .|. .|. .|. .|. .|. 0|. .|. .|. .|0 .|. .|. 0 @@ -123,7 +123,7 @@ With the default wavefront algorithm we get a different result ```python ->>> sh("../build/vcfallelicprimitives -m -L 1000 ../samples/10158243.vcf|grep -v ^\#") +>>> sh("vcfallelicprimitives -m -L 1000 ../samples/10158243.vcf|grep -v ^\#") grch38#chr4 10158244 >3655>3662_1 CCCCCACCCCCACC CC,C 60 . AC=1,3;AF=0.011236,0.0337079;LEN=12,13;ORIGIN=grch38#chr4:10158243,grch38#chr4:10158243;TYPE=del,del GT 0|0 0|0 0|0 0|0 1|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 2|0 0|2 0|0 0|0 0|0 0|0 0|0 0|0 0|2 0|0 0 grch38#chr4 10158245 >3655>3662_2 CCCCACCCCCACC C 60 . AC=64;AF=0.719101;LEN=12;ORIGIN=grch38#chr4:10158243;TYPE=del GT 0|0 1|1 1|1 1|0 .|1 0|0 0|1 0|1 1|1 1|1 1|1 1|1 1|1 1|1 1|1 0|0 1|1 1|1 1|1 1|0 1|0 1|0 1|0 1|1 1|1 1|0 1|1 1|1 0|0 1|0 1|1 0|1 1|1 1|1 .|1 1|. 1|1 1|1 0|1 1|1 1|1 1|0 1|. 1|1 0 grch38#chr4 10158251 >3655>3662_3 CCCCACC C 60 . AC=3;AF=0.0337079;LEN=6;ORIGIN=grch38#chr4:10158243;TYPE=del GT 0|0 .|. .|. .|0 .|. 0|1 0|. 0|. .|. .|. .|. .|. .|. .|. .|. 1|0 .|. .|. .|. .|0 .|0 .|0 .|0 .|. .|. .|1 .|. .|. 0|0 .|0 .|. 0|. .|. .|. .|. .|. .|. .|. 0|. .|. .|. .|0 .|. .|. 0 @@ -305,4 +305,4 @@ Output produced by test/tests/realign.py # LICENSE -Copyright 2011-2024 (C) Erik Garrison, Pjotr Prins and vcflib contributors. MIT licensed. +Copyright 2011-2025 (C) Erik Garrison, Pjotr Prins and vcflib contributors. MIT licensed. diff --git a/test/pytest/vcfcreatemulti.md b/test/pytest/vcfcreatemulti.md index a79107ce..8ecda567 100644 --- a/test/pytest/vcfcreatemulti.md +++ b/test/pytest/vcfcreatemulti.md @@ -79,7 +79,7 @@ this now gets converted into the following: ```python ->>> sh("../build/vcfcreatemulti ../samples/10158243-after-vcfwave.vcf|grep -v ^\#") +>>> sh("vcfcreatemulti ../samples/10158243-after-vcfwave.vcf|grep -v ^\#") grch38#chr4 10158244 >3655>3662_1 CCCCCACCCCCACC CC,C,CC,CCCCCACC,CCCCCACCCCCAC,CCCCCACCCCCACA 60 . AC=1,3,64,3,2,1;AF=0.011236,0.033708,0.719101,0.033708,0.022472,0.011236;AN=89,89,89,89,89,89;AT=>3655>3656>3657>3660>3662,>3655>3656>3660>3662,>3655>3656>3657>3658>3659>3660>3662,>3655>3656>3657>3658>3660>3662,>3655>3660>3662,>3655>3656>3657>3660>3662;NS=45;LV=0;ORIGIN=grch38#chr4:10158243;LEN=12;INV=0,0,0,0,0,0;TYPE=del,del,del,del,del,snp;combined=10158244-10158257 GT 0|0 3|3 3|3 3|0 1|3 0|4 0|3 0|3 3|3 3|3 3|3 3|3 3|3 3|3 3|3 4|5 3|3 3|3 3|3 3|0 3|0 3|0 3|0 3|3 3|3 3|4 3|3 3|3 5|0 3|0 3|3 0|3 3|3 3|3 2|3 3|2 3|3 3|3 0|3 3|3 3|3 3|0 3|2 3|3 0 ``` @@ -182,7 +182,7 @@ output in vcfcreatemulti_3.vcf Check if the legacy version is still the same. Note it only retains the first genotype and has duplicate 'CC' alt alleles. INFO fields are not correct either. ```python ->>> sh("../build/vcfcreatemulti --legacy ../samples/10158243-after-vcfwave.vcf|grep -v ^\#") +>>> sh("vcfcreatemulti --legacy ../samples/10158243-after-vcfwave.vcf|grep -v ^\#") grch38#chr4 10158244 >3655>3662_1 CCCCCACCCCCACC CC,C,CC,CCCCCACC,CCCCCACCCCCAC,CCCCCACCCCCACA 60 . AC=1;AF=0.011236;AN=89;AT=>3655>3656>3657>3660>3662;NS=45;LV=0;ORIGIN=grch38#chr4:10158243;LEN=12;INV=0;TYPE=del;combined=10158244-10158257 GT 0|0 0|0 0|0 0|0 1|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 ``` @@ -208,4 +208,4 @@ Your VCF already contains multi-allele entries - bring them back to one single A # LICENSE -Copyright 2022-2024 (C) Erik Garrison, Pjotr Prins and vcflib contributors. MIT licensed. +Copyright 2022-2025 (C) Erik Garrison, Pjotr Prins and vcflib contributors. MIT licensed. diff --git a/test/pytest/vcffilter.md b/test/pytest/vcffilter.md index 5cf99709..524f84e9 100644 --- a/test/pytest/vcffilter.md +++ b/test/pytest/vcffilter.md @@ -81,7 +81,7 @@ type: filter Filter VCF records that have an allele count > 10 results in 1471 matches for ```python ->>> sh("../build/vcffilter -f 'AC > 10' ../samples/grch38#chr4_10083863-10181258.vcf|wc -l") +>>> sh("vcffilter -f 'AC > 10' ../samples/grch38#chr4_10083863-10181258.vcf|wc -l") 546 ``` diff --git a/test/pytest/vcfwave.md b/test/pytest/vcfwave.md index 1eba3823..8bc996b3 100644 --- a/test/pytest/vcfwave.md +++ b/test/pytest/vcfwave.md @@ -112,7 +112,7 @@ This aligns and adjusts the genotypes accordingly splitting into multiple record ```python ->>> sh("../build/vcfwave -L 1000 ../samples/10158243.vcf|grep -v ^\#") +>>> sh("vcfwave -L 1000 ../samples/10158243.vcf|grep -v ^\#") grch38#chr4 10158244 >3655>3662_1 CCCCCACCCCCAC C 60 . AC=1;AF=0.011236;AN=89;AT=>3655>3656>3657>3660>3662;NS=45;LV=0;ORIGIN=grch38#chr4:10158243;LEN=12;TYPE=del GT 0|0 0|0 0|0 0|0 1|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 grch38#chr4 10158244 >3655>3662_2 CCCCCACCCCCACC C 60 . AC=3;AF=0.033708;AN=89;AT=>3655>3656>3660>3662;NS=45;LV=0;ORIGIN=grch38#chr4:10158243;LEN=13;TYPE=del GT 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 1|0 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0 0 grch38#chr4 10158245 >3655>3662_3 CCCCACCCCCACC C 60 . AC=64;AF=0.719101;AN=89;AT=>3655>3656>3657>3658>3659>3660>3662;NS=45;LV=0;ORIGIN=grch38#chr4:10158243;LEN=12;TYPE=del GT 0|0 1|1 1|1 1|0 0|1 0|0 0|1 0|1 1|1 1|1 1|1 1|1 1|1 1|1 1|1 0|0 1|1 1|1 1|1 1|0 1|0 1|0 1|0 1|1 1|1 1|0 1|1 1|1 0|0 1|0 1|1 0|1 1|1 1|1 0|1 1|0 1|1 1|1 0|1 1|1 1|1 1|0 1|0 1|1 0 @@ -140,6 +140,10 @@ output in vcfwave_4.vcf >>> run_stdout("vcfwave -L 10000 ../samples/grch38#chr4_10083863-10181258.vcf", ext="vcf") output in vcfwave_5.vcf +# ./vcfwave -L 10000 ../samples/test_variant_drop.vcf > ../test/data/regression/vcfwave_6.vcf +>>> run_stdout("vcfwave -L 10000 ../samples/test_variant_drop.vcf", ext="vcf") +output in vcfwave_6.vcf + ``` ## Inversions @@ -157,7 +161,7 @@ a 281 >1>9 AGCCGGGGCAGAAAGTTCTTCCTTGAATGTGGTCATCTGCATTTCAGCTCAGGAAT To ```python ->>> sh("../build/vcfwave ../samples/inversion.vcf|grep INV") +>>> sh("vcfwave ../samples/inversion.vcf|grep INV") ##INFO= a 281 >1>9 AGCCGGGGCAGAAAGTTCTTCCTTGAATGTGGTCATCTGCATTTCAGCTCAGGAATCCTGCAAAAGACAG CTGTCTTTTGCAGGATTCCTGTGCTGAAATGCAGATGACCGCATTCAAGGAAGAACTATCTGCCCCGGCT 60 . AC=1;AF=1.000000;AN=1;AT=>1>2>3>4>5>6>7>8>9;NS=1;LV=0;LEN=70;INV=YES;TYPE=mnp GT 1 @@ -167,4 +171,4 @@ Note the `INV=YES' info. # LICENSE -Copyright 2022-2024 (C) Erik Garrison, Pjotr Prins and vcflib contributors. MIT licensed. +Copyright 2022-2025 (C) Erik Garrison, Pjotr Prins and vcflib contributors. MIT licensed. diff --git a/vcflib.pc.in b/vcflib.pc.in new file mode 100644 index 00000000..a29ef099 --- /dev/null +++ b/vcflib.pc.in @@ -0,0 +1,11 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/vcflib + +Name: vcflib +Version: @BUILD_NUMBER@ +Requires: libwfa2, smithwaterman, fastahack, tabixpp +Description: C++ library for parsing and manipulating VCF files +Libs: -L${libdir} -lvcflib +Cflags: -I${includedir}